在谈到轻松创造自如、灵活的报表,ActiveReports一直是您的第一选择。在使用布局优先的报表的时候,则页面报表(PageReports)可以帮您完成所要的需求。

在运行时创建报表的基本步骤:

  • 创建报表实例
  • 绑定报表数据源
  • 添加动态绑定数据集字段(DataSet Fields)
  • 渲染报表

 

在创建运行时报表前,让我们先用报表设计来实现一个报表,见下面demo报表文件PageReport1.rdlx

AR_Page_Design

可以看到Description这一列数据在设计的时候太窄,导致渲染出来的报表字体不美观,如何根据填充的内容实现“自动扩展”列宽呢? 下面我们看看运行时设计报表能否帮助我们达到这一需求。

Step1:创建报表实例

Code Snippet
  1. GrapeCity.ActiveReports.PageReport _pageReport =new GrapeCity.ActiveReports.PageReport();

创建一个页面报表实例,用于接下来的报表实现。

Step2:绑定报表数据源

Code Snippet
  1. DataSource _dataSource =newDataSource();
  2. DataSet _dataSet =newDataSet();
  3.  
  4. _dataSource.Name ="NWINDds";
  5. _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";
  6. _dataSource.ConnectionProperties.DataProvider ="OLEDB";
  7.  
  8. _dataSet.Name ="CategoryDataSet";
  9. _dataSet.Query.DataSourceName ="NWINDds";
  10. _dataSet.Query.CommandType = GrapeCity.ActiveReports.PageReportModel.QueryCommandType.Text;
  11. _dataSet.Query.CommandText ="Select * From Categories";

 

备注:ConnectString我们用的是ActiveReports自带的NWIND数据源,修改用户名即可。

Step3:添加动态绑定数据集字段(DataSet Fields)

Code Snippet
  1. //
  2.             GrapeCity.ActiveReports.PageReportModel.TextBox _objTextBox3 =new GrapeCity.ActiveReports.PageReportModel.TextBox();
  3.             _objTextBox3.Name ="TextBox3";
  4.             _objTextBox3.Top ="0.1666667in";
  5.             _objTextBox3.Left ="3.9375in";
  6.             _objTextBox3.Height ="1.1458in";               //
  7.             _objTextBox3.Width ="2in";                    //
  8.             _objTextBox3.Value ="=Fields!Description.Value";  //mapping

 

这里的代码是可实现上面说的“自动扩展”列宽的, 即预先计算获得数据源中这一字段最小、最大、平均列宽,设置_objTextBox3.Width字段即可 (在报表渲染之前完成)

Step4:渲染报表

通过报表预览视图,加载我们创建的报表即可渲染报表:

Code Snippet
  1. GrapeCity.ActiveReports.Document.PageDocument runtime =new GrapeCity.ActiveReports.Document.PageDocument(_pageReport);
  2. viewer1.LoadDocument(runtime);

 

 

预览效果如图所示:

AR_Page_Runtime

 

 

源码下载:

 

PageReports_Runtime (1).zip (13.65 kb)