Проблемы с frxDBDataset
alecsandr Izhevsk
Удмуртия, г. Ижевск
При переходе с тестовой версии FastReport 3 на версию FastReport 3 Pro (зарегистрированная) или FastReport 3 basic в абсолютно во всех отчетах появляется сообщение об ошибке: "Rich1: поле не найдено: frxDBDataset1."имя_поля"!" До этого все отчеты работали без проблем
Комментарии
Есть БД MSSQL Server к нему по подключается ADOConnection. Далее подключаем ADOQuery в нем пишем запрос в БД и делаем активной ADOQuery. Далее берем компонент frxDBDataSet поключаем к ADOQuery, затем берем frxReport. В дизайнере выбираем Memo, Rich не суть, в нем пишем допустим: "Поле 1 из БД [frxDBDataset1."fio"]". Сохраняем отчет! Запускаем приложение и при открытии отчета появляется сообщение "Rich1: поле не найдено: frxDBDataset1."fio"" хотя в Trial все это работает, проверил. Как только устанавливаешь новую версию все отчеты "летят"
frxDBSet.pas:
function TfrxDBDataset.GetDisplayText(Index: String): String;
var
i: Integer;
begin
if not FInitialized then
Initialize1;
if DataSetActive then
if Fields.Count = 0 then
Result := FDS.FieldByName(Index).DisplayText
else
begin
i := Fields.IndexOf(Index);
if i <> -1 then
Result := TField(Fields.Objects).DisplayText
else
begin
Result := frxResources.Get('dbFldNotFound') + ' ' + UserName + '."' +
Index + '"';
ReportRef.Errors.Add(ReportRef.CurObject + ': ' + Result);
end;
end
else
Result := UserName + '."' + Index + '"';
end;
function TfrxDBDataset.GetValue(Index: String): Variant;
var
i: Integer;
begin
if not FInitialized then
Initialize1;
i := Fields.IndexOf(Index);
if i <> -1 then
Result := TField(Fields.Objects).Value
else
begin
Result := Null;
ReportRef.Errors.Add(ReportRef.CurObject + ': ' +
frxResources.Get('dbFldNotFound') + ' ' + UserName + '."' + Index + '"');
end;
end;