Проблемы с frxDBDataset

alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
отредактировано 14:28 Раздел: FastReport 3.0
При переходе с тестовой версии FastReport 3 на версию FastReport 3 Pro (зарегистрированная) или FastReport 3 basic в абсолютно во всех отчетах появляется сообщение об ошибке: "Rich1: поле не найдено: frxDBDataset1."имя_поля"!" До этого все отчеты работали без проблем

Комментарии

  • отредактировано 14:28
    В релизе ошибка - поля БД могут находиться только на дата-бэндах. Будет поправлено в следующем релизе, через неделю.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 14:28
    AlexTZ написал:
    В релизе ошибка - поля БД могут находиться только на дата-бэндах. Будет поправлено в следующем релизе, через неделю.
    <span style='color:red'>Значит мне нужно опять переходить на тестовую версию</span>?
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано September 2004
    Как-то не очень хорошо получается, пользователи покупают новую версию, а она не до работанная и приходиться опять переходить на Trial версию!
  • отредактировано 14:28
    Ну что вы хотите, чтобы сразу и без единой ошибки? Так не бывает. На этой неделе очередной релиз, там ошибка исправлена.
  • отредактировано 14:28
    я думаю где нибудь будет сообщено о выходе, нового релиза, в котором данная проблема будет устранена ;)
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано September 2004
    ;) <span style='color:red'>Релиз вышел, а проблема с ошибкой: "Rich1: Поле не найдено frxDBDataset."имя поля"" и это по всем абсолютно полям без исключения, так и не устранена!</span> ;) Что делать? ;) Опять в Trial?
  • отредактировано 14:28
    Ну нет у меня этой ошибки! Да, была в 3.0, а в 3.01 нет. Давайте демку, чтобы можно было проверить, может мы о разных вещах говорим.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 14:28
    Я руссифицировал сразу же весь FastReport после его установки, соответственно загрузка компонентов идет из папки \Source, а не \LibD7. Сейчас протестирую без перекомпиляции компонентов!
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 14:28
    Куда скинуть демку?
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 14:28
    Можно написать подробнее об ошибке!
    Есть БД MSSQL Server к нему по подключается ADOConnection. Далее подключаем ADOQuery в нем пишем запрос в БД и делаем активной ADOQuery. Далее берем компонент frxDBDataSet поключаем к ADOQuery, затем берем frxReport. В дизайнере выбираем Memo, Rich не суть, в нем пишем допустим: "Поле 1 из БД [frxDBDataset1."fio"]". Сохраняем отчет! Запускаем приложение и при открытии отчета появляется сообщение "Rich1: поле не найдено: frxDBDataset1."fio"" хотя в Trial все это работает, проверил. Как только устанавливаешь новую версию все отчеты "летят"
  • отредактировано 14:28
    кидайте на tz at fast-report.com
  • отредактировано 14:28
    Наконец нашел, в чем дело. Ошибка есть, если на момент запуска отчета датасет активен. Фикс:

    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;
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 14:28
    ;) Ура! Наконец-то все работает! ;) Только есть еще одно замечание: Когда перекомпилируем Export, возникает ошибка что не найден файл frxrcExports.dcu, ошибка исправляется копированием файла из папки \LibD7 в папку \Source\ExportPack
  • отредактировано 14:28
    Если перекомпилировали строго по инструкции в install_rus.txt (Шаг 2. Добавление путей) - проблем быть не должно.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 14:28
    <span style='color:red'>Все делал строго по инструкции</span>, за эти дни я её уже выучил наизусть и с закрытыми глазами мог перекомпилировать FastReport!
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 14:28
    AlexTZ написал:
    Если перекомпилировали строго по инструкции в install_rus.txt (Шаг 2. Добавление путей) - проблем быть не должно.
    Этого файла реально нет в указанной папке
  • отредактировано 14:28
    Он есть в папке FR3\Source. Почему его не видит компилятор при прописанных путях - загадка. Ну да ладно, положите его в fr3\Source\ExportPack.
  • alecsandr Izhevskalecsandr Izhevsk Удмуртия, г. Ижевск
    отредактировано 14:28
    ;) А мне теперь каждый раз при выходе новой версии исправлять файл frxDBSet.pas - сейчас это опять проделал после установки fr 3.02. ;) И еще хочу сказать ограмное спасибо за небольшую утилитку как рекомпирятор, очень удобно в использовании

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.