以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  xsl菜鸟的困惑!希望高手赐教!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=8510)


--  作者:飞翔中的菜鸟
--  发布时间:6/27/2004 8:46:00 PM

--  xsl菜鸟的困惑!希望高手赐教!
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="sign"/>
<xsl:variable name="temp"/>
<xsl:variable name="typenumber0" select="number(0)"/>
<xsl:variable name="serial0" select="number(0)"/>
<xsl:variable name="typenumber1" select="number(0)"/>
<xsl:variable name="serial1" select="number(0)"/>
<xsl:template match="/">
......
<xsl:for-each select="NewDataSet/Table">          //对xml的叶子节点遍历
<tr>
<td align="center"><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="厂家"/></td>
<td><xsl:value-of select="货品"/></td>
<td bgcolor="#99CCFF"><xsl:value-of select="销售数量"/></td>
<td><xsl:value-of select="编号"/></td>
<td><xsl:value-of select="零售价"/></td>
<td><xsl:value-of select="说明"/></td>
<td bgcolor="#99CCFF"><xsl:value-of select="销售金额"/></td>
</tr>
temp=<xsl:value-of select="NewDataSet/Table/厂家"/>
<xsl:if test="$temp=$sign">                                           //如果是相同厂家累加统计
serial0=<xsl:value-of select="NewDataSet/Table/数量"/>
typenumber0=<xsl:value-of select="$typenumber0+$serial0"/>
serial1=<xsl:value-of select="NewDataSet/Table/销售金额"/>
typenumber1=<xsl:value-of select="$typenumber1+$serial1"/>
</xsl:if>
sign=<xsl:value-of select="$temp"/>                            //通过两个变量传递比较
<xsl:if test="$temp!= $sign">                                     //如果是不同厂家显示小计
<tr bgcolor="#00ff00"><td>小计</td>
<td></td>
<td></td>
<td><xsl:value-of select="$typenumber0"/></td>          //显示销售数量小计额
<td></td><td></td><td><td></td>
<xsl:value-of select="$typenumber1"/></td>                 //显示销售金额小计额
typenumber0=<xsl:value-of select="0"/>                      //清0
typenumber1=<xsl:value-of select="0"/>                     //清0
</tr>
</xsl:if>
</xsl:for-each>
......
采用以上方法想实现对相同厂家的销售数量和金额在表中的小计功能,不过采用后结果显示为
temp= serial0= typenumber0=0 serial1=NaN typenumber1=0
temp= serial0= typenumber0=0 serial1=NaN typenumber1=0
......

这给我的感觉很痛苦!
希望高手指点!


--  作者:飞翔中的菜鸟
--  发布时间:7/15/2004 11:20:00 PM

--  
问题解决了!呵呵!
    在看过aboluoyuren的帖子后只是在sam大哥的样式表中做下调整得到的!
不过通过vb.net实现数据量增超过5000条记录的数据,那样式表就不高效!不过我从Edplus中用同样的xsl打开数据量同样多的xml效率快到千倍!我有点想不明白!在此问题上希望高手们给我点启示!在此谢过!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms