Навигация по TfrxAdoQuery в FastReport в режиме Preview

В предыдущей записи рассматривалось, как загрузить и запустить один отчет FastReport из другого. При этом возникает простая и естественная задача как узнать какой строке в TfrxAdoQuery соответствует, ячейка по которой кликнул пользователь в режиме пред просмотра. Сделать это можно следующим образом. У TfrxMemo, как и у всех TfrxComponent есть свойство tag, в которое можно записать целое число, например, идентификатор соответствующей записи в базе. Делать это надо в событии OnAfterData.

procedure Memo11OnAfterData(Sender: TfrxComponent);
begin
TfrxMemoView(Sender).Tagstr:=IntToStr(<dsTable."Field1">);
TfrxMemoView(Sender).Tag:= <dsTable."Field2">
end;

Для того что бы получить эти данные, необходимо на событие OnPreviewClick

procedure Memo11OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
begin
lReport.Variables['Param1']:= strToInt(TfrxMemoView(Sender).Tagstr);
lReport.Variables[''Param2']:= TfrxMemoView(Sender).Tag;
lReport.ShowReport;
end;
Share

Tags: ,

Leave a Reply