【能力素质】利用xml实现通用web报表打印

【能力素质】利用xml实现通用web报表打印

ID:22715151

大小:67.00 KB

页数:37页

时间:2018-10-31

【能力素质】利用xml实现通用web报表打印_第1页
【能力素质】利用xml实现通用web报表打印_第2页
【能力素质】利用xml实现通用web报表打印_第3页
【能力素质】利用xml实现通用web报表打印_第4页
【能力素质】利用xml实现通用web报表打印_第5页
资源描述:

《【能力素质】利用xml实现通用web报表打印》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、天马行空官方博客:http://t.qq.com/tmxk_docin;QQ:1318241189;QQ群:175569632利用XML实现通用WEB报表打印(实现篇)--------------------------------------------------------------------------------摘要:本文结合代码详细讲解了《利用XML实现通用WEB报表打印》(以下简称"《利》")一文中所介绍的报表打印中的.NetWeb控件方案的实现及扩充过程。本文为《利》文的续作,文中所举的代码示例均为C#语言编写

2、。--------------------------------------------------------------------------------目录:引言软件原理结构设计代码实现方案扩充总结--------------------------------------------------------------------------------引言:在《利》刊出后,有大量的读者发E-Mail给我表示对该方案非常感兴趣,同时还询问具体如何实现报表格式的解析和打印细节并索取该程序的源代码。读者的热情让我始料未及,

3、虽然我一一对来信进行解答和发送了源代码,但是还是深感抱歉和遗憾,因为时间和精力的关系,我不可能对每封信都作出很详细的答复,而且我写的源代码也很乱,事实上,是我花了两个小时赶写出来的(原来的程序因为硬盘故障被销毁了),不但没有什么注解而且还不完善,包括一些标签还没有被实现。为了弥补以前的缺憾,我花了一些时间改进了程序的结构,重写了全部的源代码,实现了所有标签的功能,下面就要开始讲解该程序的设计和编码过程,在看此文之前,强烈推荐您先阅读《利》一文来了解一下相关的概念,如果在该文中已经有清楚讲解的部分,本文将不再详细介绍,这里只将主要讲

4、解《利》文没有提及或是介绍得不清楚和读者来信提问最多的部分。--------------------------------------------------------------------------------软件原理:该软件的原理其实很简单,就是要方便的解析出定义好的XML格式标记,解读出文件中标记的参数定义,最后将这些信息还原成打印机输出的图形格式。为了能表达出复杂的报表样式,我们需要定义一些标记,在这些标记中附加上具体的样式信息,作用类似HTML的标签,而我们的解析程序就相当于IE浏览器,所不同的是IE将图形输出到

5、屏幕,而我们是将图形输出到打印机,由于打印机相对于显示屏的特殊性(例如分页),因此我们不能直接采用网页浏览器的标签解析功能来打印,需要自己来做一个满足需要的"打印浏览器"。针对大多数报表的功能需要,我只定义了两种格式标签:文本(text)和表格(table),它们的具体属性定义和另外一些设置性的标签定义请参考《利》文,这里再补充一幅结构图帮助读者理解。如下所示:--------------------------------------------------------------------------------结构设计:为

6、了描述所有的样式标记,我先定义了一个抽象基类PrintElement,它拥有一个虚拟方法Draw,然后对应表格和文本,从PrintElement派生出两个子类,分别是Table和Text,我还创建了一个Parser类用来解析不同的样式标记和创建对应的对象,它拥有一个静态的方法CreateElement,用来根据不同的格式标签创建出对应的对象。结构图如下所示:读过《设计模式》的读者一定已经看出来了,这种设计应用了设计模式中的一个非常著名的模式:AbstractFactory。这里使用该模式的好处就是让标签对象和解析器都独立出来,降低

7、了系统的耦合度,有利于今后在需要的时候可以很容易的增加其它的格式标签(下文将会举一个实例)和方便的更换不同的用户界面(图中Client表示Windows应用程序或者是网页插件)。--------------------------------------------------------------------------------代码实现:首先,创建一个"Windows控件库"的新项目,在项目名称处写入RemotePrint,如下图所示:然后把新建项目中的那个默认的UserControl1类,它的构造函数名和文件名都改成Pr

8、intControl。再将它的背景颜色设置为白色,添加三个按纽,并将它们的Enable属性都设置为false,Anchor属性设置为Bottom,Right,再添加一个Label控件用来显示程序状态,它的Anchor属性设置为Left。如下图所示:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。