在谈到轻松创造自如、灵活的报表,ActiveReports一直是您的第一选择。在使用布局优先的报表的时候,则页面报表(PageReports)可以帮您完成所要的需求。
在运行时创建报表的基本步骤:
- 创建报表实例
- 绑定报表数据源
- 添加动态绑定数据集字段(DataSet Fields)
- 渲染报表
在创建运行时报表前,让我们先用报表设计来实现一个报表,见下面demo报表文件PageReport1.rdlx
可以看到Description这一列数据在设计的时候太窄,导致渲染出来的报表字体不美观,如何根据填充的内容实现“自动扩展”列宽呢? 下面我们看看运行时设计报表能否帮助我们达到这一需求。
Step1:创建报表实例
- GrapeCity.ActiveReports.PageReport _pageReport =new GrapeCity.ActiveReports.PageReport();
创建一个页面报表实例,用于接下来的报表实现。
Step2:绑定报表数据源
- DataSource _dataSource =newDataSource();
- DataSet _dataSet =newDataSet();
- _dataSource.Name ="NWINDds";
- _dataSource.ConnectionProperties.ConnectString =@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\rogerwang\Documents\ComponentOne Samples\ActiveReports Developer 7\Data\NWIND.mdb;Persist Security Info=False";
- _dataSource.ConnectionProperties.DataProvider ="OLEDB";
- _dataSet.Name ="CategoryDataSet";
- _dataSet.Query.DataSourceName ="NWINDds";
- _dataSet.Query.CommandType = GrapeCity.ActiveReports.PageReportModel.QueryCommandType.Text;
- _dataSet.Query.CommandText ="Select * From Categories";
备注:ConnectString我们用的是ActiveReports自带的NWIND数据源,修改用户名即可。
Step3:添加动态绑定数据集字段(DataSet Fields)
- //
- GrapeCity.ActiveReports.PageReportModel.TextBox _objTextBox3 =new GrapeCity.ActiveReports.PageReportModel.TextBox();
- _objTextBox3.Name ="TextBox3";
- _objTextBox3.Top ="0.1666667in";
- _objTextBox3.Left ="3.9375in";
- _objTextBox3.Height ="1.1458in"; //
- _objTextBox3.Width ="2in"; //
- _objTextBox3.Value ="=Fields!Description.Value"; //mapping
这里的代码是可实现上面说的“自动扩展”列宽的, 即预先计算获得数据源中这一字段最小、最大、平均列宽,设置_objTextBox3.Width字段即可 (在报表渲染之前完成)
Step4:渲染报表
通过报表预览视图,加载我们创建的报表即可渲染报表:
- GrapeCity.ActiveReports.Document.PageDocument runtime =new GrapeCity.ActiveReports.Document.PageDocument(_pageReport);
- viewer1.LoadDocument(runtime);
预览效果如图所示:
源码下载: