在有些业务场景,需在一次性打印多个格式的报表,这种情况下可以在报表模板中设置多个报表页。但有时候并不要全部打印,而是根据条件打印其中一个样式或多个样式。这种情况可以通过脚本来辅助解决,下面贴一个示例代码:
procedure OnStartReport(Sender: TfrxComponent);
var
_dataSet: TfrxDataSet; //定义数据集对象
begin
Page2.Visible := False; //先把报表页设置为不可见
_dataSet := MasterData2.DataSet; //获取报表页MasterData绑定的DataSet
if _dataSet<>Nil then
begin
_dataSet.First(); //把DataSet游标移到最前面
while not _dataSet.Eof do //循环取DataSet中记录
begin
if _dataSet.value('发件人') = '123' then //如果有记录满足显示条件
begin
Page2.Visible := True; //则把页面设置为可见,并且跳出循环
break;
end;
_dataSet.Next(); //DataSet游标移到下一记录
end;
end;
Page3.Visible := False;
_dataSet := MasterData3.DataSet;
if _dataSet<>nil then
begin
_dataSet.First();
while not _dataSet.Eof do
begin
if _dataSet.value('发件人') = '456' then
begin
Page3.Visible := True;
break;
end;
_dataSet.Next();
end;
end;
end;