利用XML实现通用WEB报表打印(2)
伸缩性和安全性

  伸缩性

  由于采用的是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)。

阅读更多
个人分类: 一些好的技术资料
想对作者说点什么? 我来说一句

利用XML实现通用WEB报表打印

2005年11月15日 264KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭