Наследование. Проблемы с БД

отредактировано 16:42 Раздел: FastReport 4.0
Есть базовый отчет ReportGen (содержит Логотип и название)
От него наследуется ReportChild (подключение к БД IBXDatabase & IBXQuery)
И наследуемый от ReportChild => ReportChild_Ch (Содержит данные из БД)
Все это находится на одной форме (3 компонента frxReport)

В Design-time Delphi Работает более-менее
Но когда запускаю отчет ReportChild пишет--IBXQuery1 does not exist
Если вызываю DesignReport -- исчезает закладка Page1, а закладка Data становится пустой (а до этого содержала IBXDatabase & IBXQuery)
Че за лажа?*

Комментарии

  • отредактировано September 2007
    У вас пути к шаблонам разные в design-time и run-time.
    При загрузке шаблона FR не может найти отчет -предок по указанному пути(путь записывается в fr3, относительно пути в TfrxDesigner.TemplateDir).
  • отредактировано 16:42
    написал: »
    У вас пути к шаблонам разные в design-time и run-time.
    При загрузке шаблона FR не может найти отчет -предок по указанному пути(путь записывается в fr3, относительно пути в TfrxDesigner.TemplateDir).

    При запуске приложения я явно указывал путь к отчетам:
    ReportGen.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Report\ReportGen.fr3');
    ReportChild.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Report\ReportChild.fr3');
    ReportChild_Ch.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Report\ReportChild_Ch.fr3');

    При этом вылезало сообщение о несуществующем Query
    ********
    Убрал эти присвоения-отчеты показываются нормально НО
    В названии отчета Untitled.fr3
    Соответственно никакого наследования не происходит, а показываются те отчеты которые были получены в дизайн-тайм
    +При вызове Report_Child.DesignReport вылезает сообщение 'Empty SQL Statement'
    хм...
  • отредактировано 16:42
    Не могу понять используете наследование через dfm или файлы fr3 ?
    Если dfm, то отчеты должны хранится в dfm.
  • отредактировано 16:42
    написал: »
    Не могу понять используете наследование через dfm или файлы fr3 ?
    Если dfm, то отчеты должны хранится в dfm.

    В документации описан способ через файлы fr3
    т.е. я создаю на диске отчет-родителя и из него формирую дочерний
    У меня отчет ReportChild является одновременно и дочерним (для ReportGen) и родительским (для ReportChild_Ch)
    Было бы интересно узнать, Как использовать наследоование через dfm?
  • отредактировано 16:42
    _andrews_ написал: »
    В документации описан способ через файлы fr3
    т.е. я создаю на диске отчет-родителя и из него формирую дочерний
    У меня отчет ReportChild является одновременно и дочерним (для ReportGen) и родительским (для ReportChild_Ch)
    А зачем тогда использовать 3- компонента TfrxReport ?
    _andrews_ написал: »
    ReportGen.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Report\ReportGen.fr3');
    ReportChild.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Report\ReportChild.fr3');
    ReportChild_Ch.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Report\ReportChild_Ch.fr3');

    Под путями, я подразумевал не пути загрузки шаблона.
    Обратите внимание на путь у св-ва ParentReport, оно обычно записывается с относительным путем, т.е. в design-time curDir был один, а во время исполнения изменился, и шаблон-предок просто не найден.
    _andrews_ написал: »
    Было бы интересно узнать, Как использовать наследоование через dfm?
    Так же как наследуются формы в делфи, только на форме компонент TfrxReport с отчетом в dfm.


  • отредактировано 16:42
    Как вы посоветуете мне организовать хранение отчетов в случае если:
    Отчет №1 - РОДИТЕЛЬ
    Отчет №2 - НАСЛЕДОВАН от №1
    Отчет №3 - НАСЛЕДОВАН от №2
    Отчет №4 - НАСЛЕДОВАН от №2

    №1 и №2 нужно по любому хранить на диске?* Я же не могу наследовать отчет из dfm?
    а №3 и №4 уже можно хранить в dfm?

    А если стоит задача хранить ВСЕ отчеты в БД? Тогда как производить наследование?*
    Подскажите, пожалуйста.

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

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