Create the New Custom Report
As described in our blog on custom reporting, create a new custom report called "Release Notes Report". Choose the following information for it:
- Formats = HTML, MS-Word 2003, MS-Word 2007+
- Category = Requirement Reports
You can add a custom Header or Footer to the report as makes sense for your organization (e.g. an introduction and/or copyright notice)
Then we will be adding the following sections to the report:
We shall be adding each section in turn below:
Project Overview
For this standard section, you can leave the Footer and Header empty and enter the following XML template into the Template section:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:template match="/ProjectData/Project">
<div class="Title1">Project <xsl:value-of select="ProjectId"/>: <xsl:value-of select="Name"/></div>
<p>
<xsl:value-of select="Description" disable-output-escaping="yes"/>
</p>
</xsl:template>
</xsl:stylesheet>
Requirements List
For this standard section, you can leave the Footer empty, but enter the following Text into the Header:
The following new features have been added in this release:
Now, enter the following XML template into the Template section:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:template match="/RequirementData">
<ul>
<xsl:for-each select="Requirement">
<li>
<xsl:if test="IsSummary = 'True'">
<b>
<xsl:value-of select="Name"/>
</b>
</xsl:if>
<xsl:if test="IsSummary = 'False'">
<xsl:value-of select="Name"/> -
[RQ:<xsl:value-of select="RequirementId"/>]
</xsl:if>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
Incident List
For this standard section, you can leave the Footer empty, but enter the following Text into the Header:
The following issues and enhancements have been addressed in this release:
Now, enter the following XML template into the Template section:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:template match="/IncidentData">
<ul>
<xsl:for-each select="Incident">
<li><xsl:value-of select="Name"/> -
[IN:<xsl:value-of select="IncidentId"/>]</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
Final Product
Finally, save the report and to view the finished report, execute the report and choose these filters:
- Requirements List
- Status = Developed, Tested, Completed
- Release = (chosen Release)
- Incidents List
- Status = (All Closed)
- Resolved Release = (chosen Release)
The finished output will look something like: