星期六, 2月 02, 2008

在Dashboard主頁上顯示客製化報告

<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="html"/>

  <xsl:variable name="report.list" select="//我的測試報告"/>

  <xsl:template match="/">

    <!-- 有內容才顯示報告 -->
    <xsl:if test="count($report.list)>0">
      <table class="section-table" cellpadding="2" cellspacing="0" border="0" width="98%">
        <tr>
          <!-- 根據實際欄位個數調整colspan -->
          <td class="sectionheader" colspan="5">
            我的測試報告: 共有<xsl:value-of select="count($report.list)"/>份報告
          </td>
        </tr>
        <tr>
          <xsl:if test="position() mod 2=0">
            <xsl:attribute name="class">section-oddrow</xsl:attribute>
          </xsl:if>
          <xsl:if test="position() mod 2!=0">
            <xsl:attribute name="class">section-evenrow</xsl:attribute>
          </xsl:if>

          <td>欄位1標題</td>
          <td>欄位2標題</td>
          <td>欄位3標題</td>
          <td>欄位4標題</td>
          <td>欄位5標題</td>
        </tr>
        <xsl:apply-templates select="$report.list"/>

      </table>
    </xsl:if>
  </xsl:template>

  <!-- 開始格式化報告內容 -->
  <xsl:template match="報告">

    <tr>
      <!-- 美化 -->
      <xsl:if test="position() mod 2=0">
        <xsl:attribute name="class">section-oddrow</xsl:attribute>
      </xsl:if>
      <xsl:if test="position() mod 2!=0">
        <xsl:attribute name="class">section-evenrow</xsl:attribute>
      </xsl:if>

      <!-- 資料 -->
      <td class="section-data" valign="top">
        <xsl:value-of select="欄位1資料"/>
      </td>
      <td class="section-data" valign="top">
        <xsl:value-of select="欄位2資料"/>
      </td>
      <td class="section-data" valign="top">
        <xsl:value-of select="欄位3資料"/>
      </td>
      <td class="section-data" valign="top">
        <xsl:value-of select="欄位4資料"/>
      </td>
      <td class="section-data" valign="top">
        <xsl:value-of select="欄位5資料"/>
      </td>
    </tr>
  </xsl:template>

</xsl:stylesheet>