Непонятки со списком датасетов
Коллеги,
До сих пор я успешно использовал в своих программных продуктов дизайнер отчетов вызываемый модально (через 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.. они видны и разрешены, а в правой части окна дизайна их не видно:
До сих пор я успешно использовал в своих программных продуктов дизайнер отчетов вызываемый модально (через 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.. они видны и разрешены, а в правой части окна дизайна их не видно:
Комментарии
И дополнительный вопрос: отчет разрабатывается в режиме 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 исполняемому движку.
Как быть?