ComponentOne Reports for WinForms帮助文档
动态Web报表
全部展开全部展开
全部折叠全部折叠

动态Web报表是按需创建的,还可能依赖于用户提供的数据。此种方案常常会通过ASP.NET页面中的表单来向用户收集创建报表所需要的信息,然后创建一个C1Report组件来呈现报表到临时文件中,然后返回文件的引用地址。


下面的例子是一个简单的ASP.NET页面,允许用户填写一些信息并且选择需要的报表类型。基于此,ASP代码创建了一个定制版本的NorthWind “Employee Sales by Country”报表,然后以用户选择的格式展现给用户。


此示例在服务器端使用临时文件来保存报表。在实际生产环境中,必须生成唯一的文件名并且在一段时间后将其删除,以避免报表在用户查看之前被覆盖。尽管如此,此示例演示了在Web上使用C1Report发布报表的主要技术。
按如下步骤来实现此类型的程序:

  1. 从创建一个带有一个Web页面的Web程序开始,如下图所示:

页面包含五个服务器端控件:

注意:如果使用demo或beta版的C1Report来运行程序,将引发控件尝试在服务器端显示其About对话框的错误。如果发生了这样的情况,只需重新加载页面就能消除这个问题。

  1. 配置完页面之后,需要在项目中添加对C1Report组件的引用。在Solution Explorer窗口右键点击项目,选择Add Reference然后选取C1Report组件。
  2. 添加Nwind.xml到项目的Data目录。右键点击Solution Explorer窗口中的项目,选择New Folder然后重命名目录为Data。然后右键点击这个目录,选择Add Existing Item然后选取Nwind.xml报表定义文件。Nwind.xml文件默认安装在Documents或My Document文件夹下的ComponentOne Samples\Studio for WinForms\C1Report\C1Report\VB\NorthWind\Data文件夹中。
  3.  在项目中添加一个Temp目录。在Solution Explorer窗口中右键点击项目,选择New Folder然后重命名目录为Temp。
  4. 如果使用传统的ASP,有一些有趣的事情。在控件上双击会打开代码窗口,可以写完整的代码去处理事件,与Windows Forms项目具有相同的编辑器和环境。 

添加如下代码:

Visual Basic

C#

当用户点击任何一个按钮时,这些代码在服务器端运行。

  1. 下列代码表达了程序的主要工作,RenderReport:

Visual Basic

C#

RenderReport程序比较长,但是也很简单。开头解决输入和输出文件的名字。所有文件的名字都相对于当前程序的目录。
接着,程序创建了一个C1Report组件然后载入“Employee Sales by Country”报表。这是一个初始的报表,在下一步将对它进行定制。


用户输入的参数可以从_lstYear和_txtGoal服务器端控件中得到。代码读取这些值然后使用它们来定制报表的RecordSource属性并且为OnPrint属性构建了一个VBScript处理程序。上一个章节中提及到这些技术。


一旦报表定义准备好了,代码就调用RenderToFile方法让C1Report组件写HTML或PDF文件到输出目录。在方法返回后,报表就可以被显示给用户了。


最后一步就是调用Response.Redirect,以在用户的浏览器上显示刚刚创建的报表。


注意所有的代码被包括在一个try/catch块中。如果在生成报表的时候发生任何错误,用户可以看见描述问题的错误信息。

  1. 最后,需要添加一些简单的辅助程序:

Visual Basic

C#

  1. 完成这些代码,程序就准备好了。可以按F5在Visual Studio中监视运行情况。

 

下面的屏幕截图展示了程序在浏览器中显示的样子:

 

 


产品网站:http://www.gcpowertools.com.cn  |  咨询热线:4006576008   |   ©2015 西安葡萄城