利用XML实现通用WEB报表打印实际使用中的例子

恋上西雅图don

恋上西雅图don

2016-02-19 21:45

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的利用XML实现通用WEB报表打印实际使用中的例子,希望大家看完后能赶快学习起来。

  最近做的一个B/S项目,在打印时采用了在IE中嵌入.net winform控件和XML结合的方式(参见http://www.yesky.com/20030214/1652186.shtml),在实际应用过程中,有一些心得,和大家分享。
  (一).使用通用模版格式化XML文件
  系统中共用到了三种单据,分别为出库单,入库单,送货单,因此,定义三个模版文件,格式如下:
  chukudan.xsl:
  ?xml version="1.0" encoding="GB2312"?
  xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
     xsl:template match="Bill"  
     root
   pagesetting
    landscapefalse/landscape
    paperkindCustom/paperkind
    paperwidth800/paperwidth
    paperheight600/paperheight
    paperleft0/paperleft
    paperight0/paperight
    papetop0/papetop
    papebottom0/papebottom
   /pagesetting
   reporttable
        bill x="55" y="19" border="0" bordercolor="white" maxlines="6"
    xsl:for-each select="BillMaster"
     toptable width="743"
      tr height="20"
       td width="118"  align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"车次号:/td
       td width="449"  align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"xsl:value-of select="SERIAL_NO" //td
       td width="35"  align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"/td
       td width="138"  align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"/td
      /tr  
     /toptable
    /xsl:for-each
    detailtable width="373"
     xsl:for-each select="BillDetail"  
      tr height="33"
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"xsl:value-of select="BILL_NO" //td
       td width="173" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="PROD_MODEL_2" //td
       td width="55" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"xsl:value-of select="PROD_NUM" //td
       td width="55" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="PIECE_NUM" //td         
      /tr 
    
     /xsl:for-each
    /detailtable
    mastertable width="370"
     xsl:for-each select="BillMaster"
      tr height="33"
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"
       /td
       td width="280" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="ADDRESS" //td
      /tr
      tr height="33"
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"
       /td
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"xsl:value-of select="CONTACT_PERSON" //td
       td width="70" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"
       /td
       td width="120" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"xsl:value-of select="CONTACT_PHONE" //td
      /tr
      tr height="33"       
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"
       /td
       td width="280" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="DRIVER_UNIT" //td
      /tr
      tr height="33"
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"
       /td
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="DRIVER_NO" //td
       td width="70" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"
       /td
       td width="120" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="DRIVER_PERSON" //td
      /tr
      tr height="33"
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"
       /td
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="CAR_MODEL" /
       /td
       td width="70" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"
       /td
       td width="120" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"/td
      /tr
      tr height="33"
       td width="90"  align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"
       /td
       td width="280" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="COME_TO" //td
      /tr
     /xsl:for-each
    /mastertable
   
    foottable width="743"
     xsl:for-each select="BillMaster"
      tr height="35"
       td width="90" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"/td
       td width="173" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"/td
       td width="55" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="White"/td
       td width="55" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"/td         
     
       td width="90"  align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"
       /td
       td width="280" align="right"  fontsize="10" fontname="宋体" fontcolor="black" b="true" i="false" u="false" bgcolor="white"xsl:value-of select="REMARK" //td
      /tr 
     /xsl:for-each
        /foottable  
    
        /bill
     /reporttable
  /root    
     /xsl:template 

  /xsl:stylesheet
  其中,toptable是表头,detailtable是表格左边的产品明细,mastertable是表格右边的运输信息等,foottable是最下面制表人等信息。

  然后,在asp.net页面中,将查询出的结果作如下转换

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

              '是否取得了单据
              If billInfoXml Nothing Then

                  billInfoDoc.LoadXml(billInfoXml)
                  'billInfoDoc.LoadXml("http://111.111.111.111/stockmg/test.xsl")
                  billTrans.Load(billFormatXmlUrl)

                  billXmlWr.Formatting = System.Xml.Formatting.Indented
                  billXmlWr.Indentation = 4
                  billXmlWr.IndentChar = " "

                  billTrans.Transform(billNav, Nothing, billXmlWr, Nothing)
                  billXmlWr.Flush()

              End If

  返回的信息用javascript代码加载到打印控件:
   parent.frames.frmhidPrint.parent.frames.frmhidPrint.print1.SetXml(xmlResult); //SetMessage(xmlResult); parent.frames.frmhidPrint.parent.frames.frmhidPrint.print1.PrintAct();

  注意,这里调用打印控件用了parent.frames....这是为了节省每次打开页面时加载打印控件的时间,使用了一个框架网页,把打印控件放在一个单独的页面中,从而不需每次加载。

   第一次发帖,包涵,呵呵。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  出处:品味技术 感受人生 BLOG

展开更多 50%)
分享

猜你喜欢

利用XML实现通用WEB报表打印实际使用中的例子

Web开发
利用XML实现通用WEB报表打印实际使用中的例子

实际使用中Apple Pay究竟表现如何呢?

iphone iPhone 5s iPhone 6 iphone刷机
实际使用中Apple Pay究竟表现如何呢?

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Web下打印的实现

电脑网络
Web下打印的实现

vivo Xshot实际使用手机测评(精选)

智能手机
vivo Xshot实际使用手机测评(精选)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

VB中打印ACCESS报表

电脑网络
VB中打印ACCESS报表

Web设计中如何使用XML数据

Web开发
Web设计中如何使用XML数据

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Win10硬盘设置保全数据方法

Win10硬盘设置保全数据方法

如何使用XML实现多渠道接入网站的构架

如何使用XML实现多渠道接入网站的构架
下拉加载更多内容 ↓