Передача в DataSet
У меня такой вопрос.
DataModule на котором расположен frxReport и frxDBDataset1
Имеется форма которая создается многократно. На ней расположен IBQuery
Пишу следующий код при распечатке.
DM.frxReport.Clear;
DM.frxReport.LoadFromFile(DM.REPORTPATH+'.\Список абонентов.fr3');
DM.frxDBDataset1.Dataset:=IBQuery1;
DM.frxDBDataset1.UserName:='frxDBAbonents';
DM.frxReport.ShowReport;
Но при переключении между этими окнами на печать всё равно отправляется только данные из формы которая была создана первой.
DataModule на котором расположен frxReport и frxDBDataset1
Имеется форма которая создается многократно. На ней расположен IBQuery
Пишу следующий код при распечатке.
DM.frxReport.Clear;
DM.frxReport.LoadFromFile(DM.REPORTPATH+'.\Список абонентов.fr3');
DM.frxDBDataset1.Dataset:=IBQuery1;
DM.frxDBDataset1.UserName:='frxDBAbonents';
DM.frxReport.ShowReport;
Но при переключении между этими окнами на печать всё равно отправляется только данные из формы которая была создана первой.
Комментарии
DM.frxDBDataset1.Dataset:=IBQuery1;
Если хотите, иметь отчет из других данных переприсвойте Dataset, при этом указывайте форму
Например
DM.frxDBDataset1.Dataset:=TForm1(Screen.ActiveForm).IBQuery1;
Пишу перед печатью
procedure TAbonentsForm.ToolButton6Click(Sender: TObject);
begin
DM.frxReport.Clear;
DM.frxReport.LoadFromFile(DM.REPORTPATH+'.\Список абонентов.fr3');
DM.frxDBDataset1.Dataset:=TAbonentsForm(Screen.ActiveForm).IBQuery1;
DM.frxDBDataset1.UserName:='frxDBAbonents';
DM.frxReport.ShowReport;
end;
Всё равно тот же эффект - появляются данные только из первой созданной формы.
Есть DocDataModule на котором находиться frxReport и сопутствующие ему компоненты.
Из основного модуля программы запускаю формирование отчета, примерно так;
procedure TMyForm.PrintActionExecute(Sender: TObject);
var
DocDataModule :TDocDataModule;
begin
DocDataModule := TDocDataModule.Create(Self);
try
DocDataModule.PrintMyReport(<параметры если надо>);
finally
DocDataModule.Free;
end;
end
Соответственно в самом DocDataModule находится процедура которая загружает нужный отчет из файла или из базы, устанавливает если надо необходимые переменные отчета и запускает превью отчета на выполнение.
Я такой вариант использую еще со времени FR 2.0 и все работает без проблем.