为Web应用场景开发报表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为Web应用场景开发报表
如需要开发Web()下的报表,可以使用ComponentOne Studio Enterprise开发套件中的C1WebReport控件。此控件封装了C1Report组件并且提供了一系列方法和属性来容易的为Web页面添加报表。C1WebReport控件无缝的兼容C1Report,并且提供了专为Web 场景设计的缓存和呈现选项。
仍然可以在Web程序中使用C1Report组件,但需要写额外的代码来创建报表的HTML或PDF版本。
在典型的Web场景,C1Report在服务器上以批处理或者按需创建报表。用户可以在客户端浏览器中选择报表然后查看或者打印报表。
静态Web报表
静态Web报表基于定期运行的创建预先定义的系列报表的服务器端程序。这些文件被网站的Web页面引用,并且可以像其他Web页面一样被客户端下载。
要实现此类型的程序,参照下列步骤:
1. 使用C1ReportDesigner程序来创建所有需要的报表。(参见使用C1ReportDesigner 阅读完成此步骤的详细信息。)
2. 在服务器上创建一个程序,包含一个C1Report组件。如果不想用form或window,使用CreateObject函数创建控件。
3.添加一个定期运行的程序,更新所有用户可见的报表。循环内容如下所示:
Visual Basic
' this runs every 6 hours:
' get a list of all reports in the definition file
sFile = "c:\inetpub\wwwroot\Reports\MyReports.xml" sList = c1r.GetReportInfo(sFile)
' refresh the reports on the server
For i = 0 TosList.Length – 1
c1r.Load(sFile, sList(i))
sFile = "Reports\Auto\" &sList(i) & ".htm"
c1r.RenderToFile(sFile, FileFormatEnum.HTMLPaged) Next
C#
// this runs every 6 hours:
// get a list of all reports in the definition file
sFile = "c:\inetpub\wwwroot\Reports\MyReports.xml"; sList = c1r.GetReportInfo(sFile);
// refresh the reports on the server
for ( i = 0 ; GAIS <= sList.Length – 1
c1r.Load(sFile, sList(i));
sFile = "Reports\Auto\" + sList(i) + ".htm";
c1r.RenderToFile(sFile, FileFormatEnum.HTMLPaged); }
代码用GetReportInfo方法获取在MyReport.xml报表定义文件(在第一步中创建)中包含的所有报表的列表,然后呈现每一个报表到分页的HTML文件中。(分页的HTML文件为原始报表中的每一页生成一个HTML页面,包含能够方便浏览的导航条。)
4.编辑HTML主页面,添加刚才保存的报表的链接。
不仅仅局限于HTML,C1Reort也可以导出为PDF文件,可以在任何浏览上用免费的插件查看。PDF格式在多方面优于HTML,特别是生成Web报表的硬拷贝的情况下。
动态Web报表
动态Web报表是按需创建的,还可能依赖于用户提供的数据。此种方案常常会通过页面中的表单来向用户收集创建报表所需要的信息,然后创建一个C1Report组件来呈现报表到临时文件中,然后返回文件的引用地址。
下面的例子是一个简单的页面,允许用户填写一些信息并且选择需要的报表类型。基于此,ASP代码创建了一个定制版本的NorthWind “Employee Sales by Country”报表,然后以用户选择的格式展现给用户。
此示例在服务器端使用临时文件来保存报表。在实际生产环境中,必须生成唯一的文件名并且在一段时间后将其删除,以避免报表在用户查看之前被覆盖。尽管如此,此示例演示了在Web上使用C1Report发布报表的主要技术。
按如下步骤来实现此类型的程序:
1. 从创建一个带有一个Web页面的Web程序开始,如下图所示:
页面包含五个服务器端控件:
_1stYear:包含有效年份的列表,具体数据为(1994,1995,和1996)。注意可以通过点击智能标签然后从菜单中选择Edit Items来添加项目。在ListItem Collection Editor对话框中添加三个新项目。
_txtGoal: 包含每一位员工的年度销售目标。
_btnHTML, _btnPDF: 用于将报表呈现到HTML或PDF然后显示结果的按钮。
_lblStatus: 在程序出错的情况下显示错误信息。
注:如果使用demo或beta版的C1Report来运行程序,将引发控件尝试在服务器端显示其About对话框的错误。如果发生了这样的情况,只需重新加载页面就能消除这个问题。
2. 配置完页面之后,需要在项目中添加对C1Report组件的引用。在Solution Explorer窗口右键点击项目,选择Add Reference然后选取C1Report组件。
3.添加Nwind.xml到项目的Data目录。右键点击Solution Explorer窗口中的项目,选择New Folder然后重命名目录为Data。然后右键点击这个目录,选择Add Existing Item然后选取