Передача параметров
Проблема следующая:
Хочу передать в отчет набор параметров из программы. При этом стандартный диалог fast report для задания параметров открывать не хочется.
Может кто знает, как это сделать?
Хочу передать в отчет набор параметров из программы. При этом стандартный диалог fast report для задания параметров открывать не хочется.
Может кто знает, как это сделать?
Комментарии
что есть возможность достучаться из программы до переменных через свойство
FR.Dictionary.Variables
Simon
Или переменную frVariables:TfrVariables из модуля FR_Class
2.25. Как передать значение из программы в отчет?
Есть несколько способов. Первый: использовать глобальный объект frVariables
(описан в FR_Class):
frVariables := 10;
создает переменную My variable со значением 10. Это способ подходит,
если в отчет нужно передать статическую информацию (т.е. не меняющуюся
в течение построения отчета).
Второй способ: использовать событие TfrReport.OnGetValue. Этот способ
подходит для передачи в отчет информации, которая может меняться от
записи к записи:
procedure TForm1.frReport1GetValue(ParName: String; var ParValue: Variant);
begin
if ParName = 'MyField' then
ParValue := Table1MyField.Value;
end;
И, наконец, третий способ: программно заполнить список переменных.
with frReport1.Dictionary do
begin
Variables := 'CustomerData.Customers."CustNo"';
Variables := '10';
end;
(а можно ли передать значение из отчета обратно в программу?)
Можно - используйте объект frVariables. Если в отчете написать в скрипте
одного из объектов:
MyVariable := 10
то в программе значение MyVariable можно достать так:
v := frVariables;
frReport1.LoadFromFile('Untitled.frf');
frReport1.Dictionary.Variables := StrToInt(Edit1.Text);
frReport1.ShowReport;
Предварительно сохранил отчет в файл Untitled.frf.
В редакторе парамеиров отчета выставлено par=[V1]
Ну и понятно переменная V1 тоже заведена в отчете.
Может можно как-нибудь принудительно отключить появление диалога?