Непонятки со списком датасетов

отредактировано August 2015 Раздел: FastReport VCL
Коллеги,

До сих пор я успешно использовал в своих программных продуктов дизайнер отчетов вызываемый модально (через DesignReport). Перед его вызовом происходило открытие датасетов и добавление их:

FReport.DataSets.Add(...);
FReport.EnabledDataSets.Add(...);

все работало замечательно. Достаточно было зайти один раз в Report|Data.. разрешить датасеты и работать с макетом. Но тут я решил перейти на встраиваемый дизайнер (через DesignReportInPanel).
И заметил такую странность, при обновлении датасетов, когда делаю:
1) FReport.DataSets.Clear + FReport.EnabledDataSets.Clear
2) Открытие датасетов
3) FReport.DataSets.Add(...) + FReport.EnabledDataSets.Add(...)

в Report|Data.. они видны и разрешены, а в правой части окна дизайна их не видно:

Комментарии

  • gpigpi
    отредактировано 04:21
    Используйте
    frxReport1.DataSets.Clear;
         frxReport1.EnabledDataSets.Clear;
         frxReport1.DataSets.Add(frxDBDataset1);
         frxReport1.EnabledDataSets.Add(frxDBDataset1);
         TfrxDesignerForm(frxReport1.Designer).DataTree.UpdateItems;
    
  • отредактировано September 2015
    Спасибо,

    И дополнительный вопрос: отчет разрабатывается в режиме DesignReportInPanel раньше замещение макета отчета, делал кодом:
    var
    FReport : TfrxReport;
    ....


    ....
    try
    AFileStream := TFileStream.Create(OpenDialog.FileName, fmOpenReadWrite);
    FReport.Clear;
    FReport.LoadFromStream(AFileStream);

    finally
    AFileStream.Free;
    end;
    все работало, сейчас (при открытом отчете, т.е. замещение происходит на ходу) код исполняется, но затем начинают сыпаться Access Violation. При этом код:

    Designer := TfrxDesignerForm(FReport.Designer);
    Designer.OpenCmd.Execute;

    замещает макет без всяких проблем. Но в силу определенных причин мне неудобно давать разрешение drDontLoadReport исполняемому движку.

    Как быть?
  • gpigpi
    отредактировано 04:21
    Попробуйте вызвать TfrxCustomDesigner.ReloadPages(-2);

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

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