如何动态调整报表纸张大小

发布时间:2016/08/30 00:08 发布者:lenka.guo

返回博客中心

使用区域报表时,Detail区域会加载详细数据,纸张是在设计时指定好的,但是有时候筛选的记录过少;而Detail区域就会用大片空白来填充,用户体验非常不好;有用户反馈,如果能根据数据记录的调整页面高度就完美了,那今天我们来学习如何动态调整报表纸张高度。

核心思想

通过动态加载数据源,判断详细数据的记录数,根据记录数调整报表高度。


1. 新建WinForm 程序

image

2. 新建区域报表

image

3. 添加TextBox控件,设置DataField属性

 

image

 

4. 实现Form_Load方法

添加以下代码,注意,如果电脑连接打印机一定要将添加这句代码:  sr.Document.Printer.PrinterName = ""; 否则会因为打印机没有设置的纸张大小,导致报表无法正常加载。

 

SectionReport1 sr = new SectionReport1();
            sr.Document.Printer.PrinterName = "";
            DataTable dt = new DataTable();
            dt.Columns.Add("Col1");
            dt.Columns.Add("Col2");
            dt.Columns.Add("Col3");
            dt.Rows.Add("1","2","3");
            dt.Rows.Add("2","2","2");
            dt.Rows.Add("3", "3", "3");
            sr.DataSource = dt;
            float count = dt.Rows.Count * 2;
            sr.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom;
            sr.PageSettings.PaperHeight = count;
            sr.PageSettings.PaperWidth = 4.0f;
            viewer1.LoadDocument(sr);

 

 

源码下载:

 

您在使用产品过程中有任何疑问,可以登录官方产品技术���区和经验丰富的技术工程师、ActiveReports开发人员交流:了解更多

了解ActiveReports产品更多特性:

/developer/activereports

下载产品体验产品功能:

/download/?pid=16


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网