Динамический датасет
Проблема следующая
Если делать ShowReport, то band типа MasterData не отображается (как будто по Datasetу не бежим ), а если сначала вызвать DesignReport и уже из него просмотр, то все отображается нормально только со второго раза вызова просмотра. В макете отчета только бенд, связанный с TFRXDBDataset. Никаких событий, скриптов и т.п. нет.
Если FRXDBDataset создан в дизайн-тайме, то проблем нет
Использую Fastreport3 версии 3.21. Попробовал 3.22-3.24. Результат один.
В ЧЕМ МОЖЕТ БЫТЬ ПРОБЛЕМА?
Вот код
procedure TForm1.Button1Click(Sender: TObject);
const
ReportFile= 'C:\Projects\DELPHI7\FR3Designer\FR3\folio_detail5.fr3';
var
ibq:TIBQuery;
ibt:TIBTransaction;
ib:TibDataBase;
frds:TFRXDBDataset;
rep:TfrXReport;
begin
ib := IBDatabase1;
rep := frxReport1;
try
rep.LoadFromFile(ReportFile);
rep.DataSets.Clear;
ibq := TIBQuery.Create(self);
ibt := TIBTransAction.Create(self);
frds := TFRXDBDataset.Create(self);
ibt.DefaultDatabase := ib;
ibq.Database := ib;
ibq.Transaction := ibt;
ibq.SQL.Text := 'select * from rooms';
frds.Name := 'frds1';
frds.UserName := frds.Name;
frds.DataSet := ibq;
rep.DataSets.Add(frds);
ibq.Open;
ibt.CommitRetaining;
if CheckBox1.Checked then
Rep.ShowReport
else
rep.DesignReport;
finally
ibq.Close;
ibq.Free;
ibt.Free;
frds.free;
end;
end;
Если делать ShowReport, то band типа MasterData не отображается (как будто по Datasetу не бежим ), а если сначала вызвать DesignReport и уже из него просмотр, то все отображается нормально только со второго раза вызова просмотра. В макете отчета только бенд, связанный с TFRXDBDataset. Никаких событий, скриптов и т.п. нет.
Если FRXDBDataset создан в дизайн-тайме, то проблем нет
Использую Fastreport3 версии 3.21. Попробовал 3.22-3.24. Результат один.
В ЧЕМ МОЖЕТ БЫТЬ ПРОБЛЕМА?
Вот код
procedure TForm1.Button1Click(Sender: TObject);
const
ReportFile= 'C:\Projects\DELPHI7\FR3Designer\FR3\folio_detail5.fr3';
var
ibq:TIBQuery;
ibt:TIBTransaction;
ib:TibDataBase;
frds:TFRXDBDataset;
rep:TfrXReport;
begin
ib := IBDatabase1;
rep := frxReport1;
try
rep.LoadFromFile(ReportFile);
rep.DataSets.Clear;
ibq := TIBQuery.Create(self);
ibt := TIBTransAction.Create(self);
frds := TFRXDBDataset.Create(self);
ibt.DefaultDatabase := ib;
ibq.Database := ib;
ibq.Transaction := ibt;
ibq.SQL.Text := 'select * from rooms';
frds.Name := 'frds1';
frds.UserName := frds.Name;
frds.DataSet := ibq;
rep.DataSets.Add(frds);
ibq.Open;
ibt.CommitRetaining;
if CheckBox1.Checked then
Rep.ShowReport
else
rep.DesignReport;
finally
ibq.Close;
ibq.Free;
ibt.Free;
frds.free;
end;
end;
Комментарии
Так ОК
Rep.PrepareReport
Rep.ShowReport
Так тоже ОК
Rep.PrepareReport
Rep.PrepareReport
Rep.DesignReport
И Так тоже ОК
Rep.PrepareReport
Rep.PrepareReport
Rep.ShowPreparedReport
frds := TFRXDBDataset.Create(self);
поставить перед загрузкой отчета:
rep.LoadFromFile(ReportFile);