QFResultSetFormatting.xsl 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. BI and PM: QFW
  5. © Copyright IBM Corp. 2005, 2010
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  9. <xsl:template match="/">
  10. <HTML><BODY>
  11. <xsl:apply-templates select="querySet/masterDataset"/>
  12. <xsl:apply-templates select="QSAPIScript/QSMasterDataset[@command='Printout']"/>
  13. </BODY></HTML>
  14. </xsl:template>
  15. <xsl:template match="QSMasterDataset">
  16. <h4> Script Dataset: <xsl:value-of select="@qsID"/> </h4> <br/>
  17. <xsl:apply-templates select="masterDataset"/>
  18. </xsl:template>
  19. <xsl:template match="columns" mode="firstRow">
  20. <xsl:apply-templates select="." mode="allRows"/>
  21. </xsl:template>
  22. <xsl:template match="columns" mode="allRows">
  23. <TR>
  24. <xsl:for-each select="column">
  25. <TD> <FONT size="-2"> <B> <xsl:value-of select="@name"/> </B> </FONT> </TD>
  26. </xsl:for-each>
  27. </TR>
  28. </xsl:template>
  29. <xsl:template match="row" mode="firstRow">
  30. <xsl:apply-templates select="." mode="allRows"/>
  31. </xsl:template>
  32. <xsl:template match="row" mode="allRows">
  33. <xsl:if test="preceding-sibling::row | parent::edgeIterator"> <xsl:text disable-output-escaping="yes">&lt;TR valign="top"&gt;</xsl:text> </xsl:if>
  34. <xsl:attribute name="valign">top</xsl:attribute>
  35. <xsl:for-each select="value | noValue">
  36. <xsl:element name="TD">
  37. <xsl:if test="../rowSpan">
  38. <xsl:attribute name="rowSpan"> <xsl:value-of select="../rowSpan/@v"/> </xsl:attribute>
  39. </xsl:if>
  40. <xsl:if test="@span">
  41. <xsl:attribute name="colSpan">
  42. <xsl:value-of select="@span"/>
  43. </xsl:attribute>
  44. </xsl:if>
  45. <xsl:choose>
  46. <xsl:when test="@v"> <xsl:value-of select="@v"/> </xsl:when>
  47. <xsl:when test="masterDataset"> <xsl:apply-templates/> </xsl:when>
  48. <xsl:when test="@f"> <i> <font size="-1"> <xsl:value-of select="@f"/> </font> </i> </xsl:when>
  49. <xsl:otherwise> <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text> </xsl:otherwise>
  50. </xsl:choose>
  51. </xsl:element>
  52. </xsl:for-each>
  53. <xsl:for-each select="rowCells/*">
  54. <xsl:element name="TD">
  55. <xsl:if test="@span">
  56. <xsl:attribute name="colSpan">
  57. <xsl:value-of select="@span"/>
  58. </xsl:attribute>
  59. </xsl:if>
  60. <xsl:choose>
  61. <xsl:when test="name()='cell'"> <xsl:value-of select="@v"/> </xsl:when>
  62. <xsl:otherwise> <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text> </xsl:otherwise>
  63. </xsl:choose>
  64. </xsl:element>
  65. </xsl:for-each>
  66. <xsl:if test="count( row ) = 0"> <xsl:text disable-output-escaping="yes">&lt;/TR&gt;</xsl:text> </xsl:if>
  67. <xsl:for-each select="row">
  68. <xsl:apply-templates select="." mode="allRows"/>
  69. </xsl:for-each>
  70. </xsl:template>
  71. <xsl:template match="value">
  72. <xsl:choose>
  73. <xsl:when test="../../../@f[. = 'childIterator']">
  74. <xsl:apply-templates select="../../../../value[2]"/>
  75. <xsl:value-of select="../../../../value[2]/@v"/> |
  76. </xsl:when>
  77. <xsl:when test="../../../../value">
  78. <xsl:apply-templates select="../../../../value[2]"/>
  79. <xsl:value-of select="../../../../value[2]/@v"/>:
  80. </xsl:when>
  81. </xsl:choose>
  82. <!-- <xsl:value-of select="@v"/> -->
  83. </xsl:template>
  84. <xsl:template match="masterDataset">
  85. <xsl:if test="datasetInfo/@numEdges > 1">
  86. <CENTER>
  87. <TABLE BORDER="1" cellpadding="1" cellspacing="0">
  88. <xsl:for-each select="partialDataset[1]/edgeIterator[@type='columns']">
  89. <xsl:variable name="currentIterator" select="."/>
  90. <xsl:for-each select="columns[1]/column">
  91. <xsl:variable name="currentColumn" select="."/>
  92. <TR>
  93. <xsl:if test="$currentColumn/@d = 0">
  94. <xsl:element name="TD">
  95. <xsl:attribute name="colSpan">
  96. <xsl:value-of select="count( $currentIterator/../edgeIterator[@type='rows']/columns/column )"/>
  97. </xsl:attribute>
  98. <xsl:attribute name="rowSpan">
  99. <xsl:value-of select="count( ../column )"/>
  100. </xsl:attribute>
  101. </xsl:element>
  102. </xsl:if>
  103. <xsl:for-each select="$currentIterator//*[(name()='value' or name()='noValue' or name()='column') and (@d = $currentColumn/@d) ]">
  104. <xsl:element name="TD">
  105. <xsl:if test="../rowSpan">
  106. <xsl:attribute name="colSpan"> <xsl:value-of select="../rowSpan/@v"/> </xsl:attribute>
  107. </xsl:if>
  108. <xsl:if test="@span">
  109. <xsl:attribute name="rowSpan">
  110. <xsl:value-of select="@span"/>
  111. </xsl:attribute>
  112. </xsl:if>
  113. <xsl:choose>
  114. <xsl:when test="name()='column'"> <B> <font size="-2"> <xsl:value-of select="@name"/> </font> </B> </xsl:when>
  115. <xsl:when test="name()='value'"><CENTER> <xsl:value-of select="@v"/> </CENTER> </xsl:when>
  116. <xsl:otherwise> <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text> </xsl:otherwise>
  117. </xsl:choose>
  118. </xsl:element>
  119. </xsl:for-each>
  120. </TR>
  121. </xsl:for-each>
  122. </xsl:for-each>
  123. <xsl:for-each select="partialDataset/edgeIterator[@type='rows']">
  124. <xsl:apply-templates select="row | columns" mode="allRows"/>
  125. </xsl:for-each>
  126. </TABLE><br/>
  127. </CENTER>
  128. </xsl:if>
  129. <xsl:if test="datasetInfo/@numEdges = 1">
  130. <CENTER>
  131. <TABLE BORDER="1" cellpadding="1" cellspacing="0">
  132. <xsl:for-each select="partialDataset/edgeIterator[position()=1]">
  133. <xsl:apply-templates select="row | columns" mode="allRows"/>
  134. </xsl:for-each>
  135. </TABLE>
  136. </CENTER>
  137. </xsl:if>
  138. </xsl:template>
  139. </xsl:stylesheet>