FastReport.Net根据数据绑定动态打印Page

文章目录

引言

根据数据区域绑定的数据进行动态判断当前Page是否打印。
在实际使用中很容易遇到这样的需求,当数据源进行过滤后没有数据整个数据区域块绑定的数据源就会是空白的,这样很容易浪费纸张与打印机寿命。

解决方案

动态判断数据区域绑定的数据源是否有数据,没有则设置PageVisible属性。

public class ReportScript
{
  private void VisiblePageByData(){
    foreach (Base obj in Report.AllObjects)
    {
      if(obj is DataBand){
        DataBand dataBand=(DataBand)obj;
        dataBand.DataSource.Init(dataBand.Filter);
        if (dataBand.DataSource.RowCount==0)
        {
          dataBand.Page.Visible=false;
        }
      }
    }
  }

  private void _StartReport(object sender, EventArgs e)
  {
      VisiblePageByData();
  }
}

注意:DataSourceInit()方法中调用的当前DataBandFilter属性。

我也只是自行粗糙的这样设计,有什么好的方式欢迎指点,有更高的方法我会再次补录更新附件下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值