Overview

The built-in requirements reports come in three flavors:

  1. Requirements summary report - an Excel style table with a row for each requirement, with all the fields in the subsequent columns
  2. Requirements detailed report - a document style report with headings for each requirement and tables for all of the related elements (test coverage, task list, incidents, associations, etc.)
  3. Requirements traceability report - an Excel style table with a list of requirement names and columns for the linked test cases and requirements

However sometimes there is a need to create a simpler requirements document with the headings and content only:

1.0 Webpages
_1.1 First Webpage
__1.1.1 Variable Names and database links
__1.1.2 Picture Names
__1.1.3 Reference Format
_1.2 Second Webpage
2.0 Communication Protocols
_2.1 SMTP
2.1.1 Version Support
2.1.2 Email address limitations
etc.

The use of such a requirements report is to create a human readable (usually in Word) document that makes sense to a product manager with headings and indentations.

Custom Report

To create such a report, you need to firstly clone the requirements summary report and then change the format to use MS-Word instead of MS-Excel and then use the following XSLT template instead for the Requirements List standard 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">
	  <xsl:for-each select="Requirement">
		<div>
			<xsl:attribute name="style">
			  margin-left: <xsl:value-of select="string-length(IndentLevel)*3"/>px;
			</xsl:attribute>
			<h2>
				<xsl:value-of select="RequirementId"/>: 
				<xsl:value-of select="Name"/>
			</h2>
			<p>
				<xsl:value-of select="Description" disable-output-escaping="yes"/>
			</p>
		</div>
	  </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

When executed it will generate a report that looks something like this: