康虎云报表之多页报表根据条件显示或隐藏某些报表页

admin 2020-8-1 13519

在有些业务场景,需在一次性打印多个格式的报表,这种情况下可以在报表模板中设置多个报表页。但有时候并不要全部打印,而是根据条件打印其中一个样式或多个样式。这种情况可以通过脚本来辅助解决,下面贴一个示例代码:

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;



最新回复 (0)
返回