利用XML实现通用WEB报表打印(2)

转载 2004年08月27日 12:59:00
伸缩性和安全性

  伸缩性

  由于采用的是XML标准数据格式作为中间数据交换,因此本解决方案具有非常好伸缩性,例如,客户端的.NET控件可以采用JAVA APPLET、ACTIVX或者是VB,VC等编写的客户端应用程序直接替换。服务器也可以任意选择采用IIS或APACHE等WEB服务器。数据库也可以采用任意一种数据库。包括SQL Server,Oracle或者是Access等。这点上文已经谈到过,因为文章的长一点并不会使送给我的T恤大一号,这里再强调一遍只是为了加深读者对XML的跨平台性的认识。 :)

  安全性

  由于采用的是普通WEB服务器传送数据,因此可以直接采用SSL安全套接字等已经成熟的WEB加密技术。同时还可以对XML进行数据算法加密,在客户端再进行解密,保证了传输的安全性。

  由于采用的是80端口,不需要再另外新增加专用端口,减少了安全漏洞的可能性,同时还能方便的穿过双方的的网络防火墙等保护设备。

  方案设计图

jt-030214-xmlwebreport01.gif

  格式定义

  为了能自己控制打印的格式,我们定义了下列的格式标签,其中在命名上参考了HTML的命名办法,所以基本上熟悉HTML的都能一看就能明白标签的具体含义。如果您觉得这些标签的表达能力还不够强,您还可以自己定义一些更多更精确的格式标签。

  标签应用示例

<root>
<pagesetting>
<Landscape>true</Landscape>
<paperkind>A4</paperkind>
<paperwidth>210</paperwidth>
<paperheight>297</paperheight>
<pageleft>0</pageleft>
<pageright>0</pageright>
<pagetop>0</pagetop>
<pagebottom>0</pagebottom>
</pagesetting>
<reporttable>
<text x="450" y="40" fontname="黑体" fontsize="24" fontcolor="Black"
b="true" i="false" u="true">最新成交合同信息</text>
<text x="70" y="100" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="true">制表时间:2002年0月10日</text>
<text x="910" y="100" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="true">单位:元</text>
<table x="65" y="130" border ="1" bordercolor="Black" maxlines="28">
<tablehead>
<tr height="25">
<td width="90" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">合同号</td>
<td width="90" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">产品名称</td>
<td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">成交量</td>
<td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">成交价</td>
<td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">成交金额</td>
<td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">挂单量</td>
<td width="50" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">起始价</td>
<td width="330" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">卖方</td>
<td width="330" align="center" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">买方</td>
</tr>
</tablehead>
<tablebody>

<tr height="25">
<td width="100" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">20021010015</td>
<td width="100" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">CNR</td>
<td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">93</td>
<td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">6680</td>
<td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">621240</td>
<td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">93</td>
<td width="70" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">6680</td>
<td width="200" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">湖北省国营新星拖拉机厂</td>
<td width="200" align="left" fontname="宋体" fontsize="12" fontcolor="Black"
b="true" i="false" u="false" bgcolor="White">中化国际贸易股份有限公司</td>
</tr>
……….
</tablebody>
<tablefoot>
</tablefoot>
</table>
</reporttable>
</root>

  注意事项:

  a) 如果采用服务器脚本动态生成XML文档时,发送内容类型应该设置为text/xml(普通html页面为text/html),字符编码应该为UTF-8,否则会出现编码错误问题。

  b) 应该严格按照XML规定的格式来生成文件,否则XML解析器将不会予以解析。

  2. 客户端

  可以采用任意应用程序来读取服务器端生成的XML文件,如果采用VB、DELPHI等桌面应用软件开发工具,则可以使用MSXML的COM解析器。推荐采用.NET,内部已经集成了XML解析器,直接就可以通过使用.NET类库调用。既可以做成桌面应用程序形式,通过远程调用;也可以嵌入到IE浏览器中,直接在网页中运行。

  效果示例图

jt-030214-xmlwebreport02.gif

打印预览

jt-030214-xmlwebreport03.gif

  注意事项:

  1. 如果采用.NET,客户端必须先安装.NET framework1.0运行环境,下载地址为:http://download.microsoft.com/download/.NETframesdk/Redist/1.0/W98NT42KMeXP/EN-US/dotnetredist.exe

  2. 如果采用嵌入到网页中的形式,那么本程序需要编译成一个控件形式(一个扩展名为dll的文件),然后在网页中插入以下标记:

<object id="print" classid="http:print.dll#Print.UserControl1" Width="728" Height="460"></object>

  将控件嵌入到一个静态或动态网页中。然后将该控件文件拷贝到和该网页相同的目录中(标记中Print.dll为生成的控件文件名,Print.UserControl1为该控件的命名空间NAMESPACE)。

几种web报表打印方案的比较

文章转自:http://www.cnblogs.com/webreport/archive/2007/06/28/798998.html web报表打印通常是系统的辅助部分,但是又必须解决,否则...
  • qq_21909121
  • qq_21909121
  • 2016年08月03日 09:53
  • 1760

WEB免费打印控件推荐

在WEB系统中,打印的确是个烦人的问题。 要么自己开发打印控件,如果项目时间紧,肯定来不及。 要么购买成熟的打印控件,如果是大项目可以考虑,但如果项目只有几K到1、2W之间,这就麻烦了。 前段时...
  • yelin042
  • yelin042
  • 2017年12月19日 14:24
  • 313

JSP 实现报表打印

iReport_web开发配置向导- -                                        一、iReport简介  说到iReport不得不先介绍Jasper...
  • terminatorsong
  • terminatorsong
  • 2014年04月16日 11:26
  • 2489

VS2013自带报表+打印功能

VS自带报表控件和打印功能,这样就给我们这些编程者带来了很大的方便。下面就将我做程序的一些小经历来跟大家一起分享一下。 1,我们右击U层所在文件夹添加“新建项”。 ...
  • bigpudding24
  • bigpudding24
  • 2016年01月19日 11:23
  • 8071

『水晶报表』实现打印

在我们开发各种工具软件的时候,我们不可避免的会遇到打印的问题。而使用.NET开发打印功能,水晶报表或许会是一个十分不象错的选择! 一般步骤: 准备好想要打印的数据源;制作用于规定打印结果样...
  • 3150379
  • 3150379
  • 2015年03月14日 21:50
  • 734

VS2013自带报表+打印功能

vs自带报表 vs打印报表
  • u010773667
  • u010773667
  • 2014年05月29日 17:57
  • 5057

jquery 表格自动拆分(方便打印)插件-printTable

插件代码: [javascript] view plaincopy /**   * jquery 表格打印插件   *   * 作者: Liu...
  • u012149354
  • u012149354
  • 2015年06月10日 14:49
  • 815

使用POI实现报表打印功能

这篇文章主要分享的是使用apache的poi来实现数据导出到excel的功能,这里提供三种解决方案。你可以使用最原始最简单的一步步添加样式或者数据,你也可以通过一个模板来进行模板化。POI支持微软的O...
  • sdksdk0
  • sdksdk0
  • 2016年11月29日 15:34
  • 3337

Grid++Report6 B/S报表打印之Java,使用jsp打印报表实现

Grid++Report6 B/S报表打印之Java,使用jsp打印报表实现
  • weixin_36751895
  • weixin_36751895
  • 2017年11月14日 13:56
  • 225

Qt中QPicture对报表的实现

最近写了一个小项目  中间要把所获取的数据以报告的形式打印出来  在这里整理出来 首先是背景的显示  也就是相当于那张纸张  这里面要对它设置大小  并且我自己加了一个水印在这个纸上  后面...
  • big_shuozi
  • big_shuozi
  • 2016年01月06日 19:01
  • 389
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用XML实现通用WEB报表打印(2)
举报原因:
原因补充:

(最多只允许输入30个字)