新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论XSL,XSLT,XSL-FO,CSS等技术
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XSL/XSLT/XSL-FO/CSS 』 → [求助]解决报表展现问题 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5369 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]解决报表展现问题 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     brucepang 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:57
      门派:XML.ORG.CN
      注册:2006/12/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给brucepang发送一个短消息 把brucepang加入好友 查看brucepang的个人资料 搜索brucepang在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看brucepang的博客楼主
    发贴心情 [求助]解决报表展现问题

    ===report.xml===

    <?xml version="1.0" encoding="GB2312"?>
    <?xml-stylesheet type="text/xsl" href="new.xsl" ?>
    <data>
     <dimensions>
      <!-- time dimension -->
      <dimension id="1" name="time" aliasName="日期" htmlPosition="header">
       <structure id="1" topicid="100" order="1" canAnalyse="false" isShare="true">
        <tier id="1" name="year" aliasName="年" type="String"/>
        <tier id="2" name="quater" aliasName="季" type="String"/>
        <tier id="3" name="month" aliasName="月" type="String"/>
        <tier id="4" name="day" aliasName="日" type="String"/>
       </structure>
      </dimension>
      <!-- department dimension -->
      <dimension id="2" name="department" aliasName="部门" htmlPosition="verticalAxis">
       <structure id="10" topicid="100" depth="2" canAnalyse="false" isShare="false">
        <tier id="1" name="ysnDepart" aliasName="预算内单位" type="String">
          <record id="4" value="卢良矿"/>
          <record id="5" value="卢良电厂"/>
          <record id="6" value="卢良物业处"/>
        </tier>
        <tier id="2" name="DjgsDepart" aliasName="多经公司单位" type="String">
          <record id="7" value="腾岭公司"/>
          <record id="20" value="腾岭公司2"/>
        </tier>
        <tier id="3" name="yswDepart" aliasName="预算外单位" type="String">
          <record id="8" value="卢良工会"/>
          <record id="9" value="卢良工会互助金"/>
          <record id="10" value="卢良双退管理中心"/>
          <record id="11" value="卢良医保"/>
          <record id="12" value="卢良物业处养植场"/>
          <record id="13" value="卢良物业处木耳场"/>
          <record id="14" value="卢良中学"/>
          <record id="15" value="卢良小学"/>
          <record id="16" value="卢良中心医院"/>
          <record id="17" value="卢良矿安全抵押金"/>
          <record id="18" value="卢良矿集资建房"/>
          <record id="19" value="卢良物业处抵押金"/>
        </tier>
       </structure>
      </dimension>
      <!-- item dimension -->
      <dimension id="3" name="item" aliasName="存款项目" htmlPosition="levelAxis">
       <structure id="1" topicid="100" depth="3" isShare="false" canAnalyse="true">
        <tier id="1" name="pjck" aliasName="票据存款" type="String"/>
        <tier id="2" name="srhck" aliasName="收入户存款" type="String">
         <analyseItem id="1" name="syye" aliasName="上月余额" format="4" type="Number" unit="WanYuan"/>
         <analyseItem id="2" name="bysr" aliasName="本月收入" format="4" type="Number" unit="WanYuan"/>
         <analyseItem id="3" name="byzc" aliasName="本月转出" format="4" type="Number" unit="WanYuan"/>
         <analyseItem id="4" name="byye" aliasName="本月余额" format="4" type="Number" unit="WanYuan"/>
        </tier>
        <tier id="3" name="jshck" aliasName="结算户存款" type="String">
         <analyseItem id="5" name="syye" aliasName="上月余额" format="4" type="Number" unit="WanYuan"/>
         <analyseItem id="6" name="bysr" aliasName="本月收入" format="4" type="Number" unit="WanYuan"/>
         <analyseItem id="7" name="byzc" aliasName="本月支出" format="4" type="Number" unit="WanYuan"/>
         <analyseItem id="8" name="byye" aliasName="本月余额" format="4" type="Number" unit="WanYuan"/>
        </tier>
       </structure>
      </dimension>
     </dimensions>
    </data>

    ===new.xsl===

    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>
    <xsl:key match="//dimension" name="axis" use="@htmlPosition"/>
    <xsl:key match="//tier" name="tiers" use="@name"/>

      <!-- 定义初始值 -->
      <xsl:variable name="varStart" select="0"/>
      <!-- 定义结束值 -->
      <xsl:variable name="varEnd" select="9"/>
      <!-- 定义循环步长 -->
      <xsl:variable name="varStep" select="1"/>
    <xsl:template match="/">
    <html>
     <head>
      <title></title>
     </head>
     <body>
      <form id="myForm" name="myForm" action="" method="post">
       <table align="center" border="1" cellpadding="1" cellspacing="0">
        <tr>
         <td colspan="2" rowspan="2" align="center">
          <xsl:value-of select="concat(key('axis','verticalAxis')/@aliasName,'/' key('axis','levelAxis')/@aliasName)"/>      
         </td>
         <xsl:for-each select="key('axis','levelAxis')/structure/tier">
          <td align="center" colspan="{count(descendant::*)}">
           <xsl:if test="count(descendant::*)=0">
            <xsl:attribute name="rowspan">2</xsl:attribute>
           </xsl:if>
           <xsl:value-of select="@aliasName"/>
          </td>
         </xsl:for-each>
        </tr>
        <tr>
        <xsl:for-each select="key('axis','levelAxis')/structure/tier/analyseItem">
         <td align="center">
          <xsl:value-of select="@aliasName"/>
         </td> 
        </xsl:for-each>
        </tr>
        <xsl:for-each select="key('axis','verticalAxis')/structure/tier">
          <tr>
           <td align="center" rowspan="{count(record)}">
            <xsl:value-of select="concat(@aliasName,'',count(record))"/>
           </td>
          </tr>
          <xsl:for-each select="record">
            <tr>
             <td align="center">
              <xsl:value-of select="concat(@value,'',position())"/>
             </td>
            </tr>
          </xsl:for-each>
        </xsl:for-each>
       </table>
      </form>
     </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>


    大家可以运行一下,就可以看出问题所在。
    这报表的基本框架可以显现出来。
    横轴显示没问题。
    但纵轴,有分组,组可以正常显示出来,可组的最后一个成员显示的不对,不知道如何修改。

    请大家帮忙看看!谢谢!


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/5 12:06:00
     
     brucepang 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:57
      门派:XML.ORG.CN
      注册:2006/12/4

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给brucepang发送一个短消息 把brucepang加入好友 查看brucepang的个人资料 搜索brucepang在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看brucepang的博客2
    发贴心情 
    在线等!
    希望获得你的关注。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/12/5 12:08:00
     
     robotlgw 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:80
      门派:XML.ORG.CN
      注册:2007/1/28

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给robotlgw发送一个短消息 把robotlgw加入好友 查看robotlgw的个人资料 搜索robotlgw在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看robotlgw的博客3
    发贴心情 
    <xsl:for-each select="key('axis','verticalAxis')/structure/tier">
          <tr>
           <td align="center" rowspan="{count(record)}">
            <xsl:value-of select="concat(@aliasName,'',count(record) + 1)"/>
           </td>
          </tr>
          <xsl:for-each select="record">
            <tr>
             <td align="center">
              <xsl:value-of select="concat(@value,'',position())"/>
             </td>
            </tr>
          </xsl:for-each>
        </xsl:for-each>
    将进行列循环的语句 写成粗体字标识的即可, 就是在count(record)后面加1.
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/2/1 14:51:00
     
     lit0302 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:9
      积分:97
      门派:XML.ORG.CN
      注册:2007/4/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给lit0302发送一个短消息 把lit0302加入好友 查看lit0302的个人资料 搜索lit0302在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看lit0302的博客4
    发贴心情 hehe
    谢谢楼主,我正想要这方面的
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/2 23:01:00
     
     coco-cat 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:11
      积分:136
      门派:XML.ORG.CN
      注册:2006/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给coco-cat发送一个短消息 把coco-cat加入好友 查看coco-cat的个人资料 搜索coco-cat在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 引用回复这个贴子 回复这个贴子 查看coco-cat的博客5
    发贴心情 
    <xsl:for-each select="key('axis','verticalAxis')/structure/tier">
          <tr>
           <td align="center" rowspan="{count(record) + 1}"> 这里增1即可
            <xsl:value-of select="concat(@aliasName,'',count(record))"/> 这里不用增1
           </td>
          </tr>
          <xsl:for-each select="record">
            <tr>
             <td align="center">
              <xsl:value-of select="concat(@value,'',position())"/>
             </td>
            </tr>
          </xsl:for-each>
        </xsl:for-each>
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/5/10 11:57:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XSL/XSLT/XSL-FO/CSS 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/9/9 21:21:53

    本主题贴数5,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    93.750ms