Как получить данные для FastReport (Delphi) из TEdit? - PullRequest
3 голосов
/ 13 октября 2019

Я создал отчет с помощью FastReport, но я знаю, что получить данные для этого отчета можно только из базы данных. Я хочу получить данные из TEdit и не хочу ничего сохранять, просто записываяTEdit + нажмите на кнопку (fastreport.preview) + печать и готово. Как я могу это сделать ? Пожалуйста, объясните, что нового в Delphi и FastReport.

Ответы [ 2 ]

2 голосов
/ 14 октября 2019

Вы можете использовать событие OnGetValue вашего компонента TfrxReport следующим образом:

procedure TForm1.frxReport1GetValue(const VarName: string; var Value: Variant);
begin
  if(VarName = 'MyVariable') then
  begin
    Value := Edit1.Text;
  end;
end;

Затем вам просто нужно добавить элемент памятки в отчет и установить его значение на [MyVariable].

enter image description here

1 голос
/ 14 октября 2019

Одним из возможных подходов является доступ к компонентам TfrxReport и TfrxMemoView во время выполнения. Обратите внимание, что если у вас нет набора данных, полоса Master Data не будет напечатана, поэтому вам следует использовать другую полосу.

Вы можете использовать следующий код в качестве базового примера. Просто поместите одну TfrxReportTitle полосу (с именем 'ReportTitle1') и один TfrxMemoView текстовый объект (с именем 'Memo1') на ваш TfrxReport компонент.

enter image description here

procedure TfrmMain.btnReportClick(Sender: TObject);
var
   memo: TfrxMemoView;
   band: TfrxReportTitle;
begin
   // Get the band
   band := (rptDemo.Report.FindObject('ReportTitle1') as TfrxReportTitle);
   // Create a memo
   memo := TfrxMemoView.Create(band);
   memo.CreateUniqueName;
   memo.ParentFont := True;
   memo.Text := edtReport.Text;
   memo.SetBounds(100, 1, 100, 16);
   memo.HAlign := haLeft;
   memo.AutoWidth := False;
   // Use existing memo
   memo := (rptDemo.Report.FindObject('Memo1') as TfrxMemoView);
   memo.Text := edtReport.Text;
   // Preview report
   rptDemo.ShowReport(False);
end;

Примечания. Это рабочий пример, протестированный с FastReport 4.7.

...