M
Mark D
How do I use XSL to create a report that displays both Task data and Resource
data in a single row? And how do I know what the the 'local-name()' is for
other fields that I may want to include in a report I create?
The following XSL file will display only Task data, but I also want to
include Resource data, like Resource Initials.
I am using MS Project Professional 2003.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<HTML>
<BODY BGCOLOR="aliceblue">
<DIV><CENTER>
<H2>Unfinished Tasks</H2>
<TABLE BORDER="2">
<TR>
<TH>ID</TH>
<TH>Name</TH>
<TH>Defect</TH>
<TH>% Complete</TH>
<TH>Due</TH>
</TR>
<xsl:for-each select="//*[local-name()='Task']"> <!-- Select all
tasks -->
<xsl:if test="*[local-name()='ID'][.>156]">
<xsl:if test="*[local-name()='ID'][.<194]">
<xsl:if test="*[local-name()='OutlineLevel'][.='4']"> <!--
Select at the Defect level only -->
<xsl:if test="*[local-name()='Milestone'][. = '0']"> <!--
Select all non-milestone rows -->
<xsl:if test="*[local-name()='Summary'][. = '0']"> <!-- Select
all non-summary rows -->
<xsl:if test="*[local-name()='PercentComplete'][. != 100]">
<!-- Select all incomplete tasks -->
<TR>
<TD><xsl:value-of select="*[local-name()='ID']"/></TD>
<TD><xsl:value-of select="*[local-name()='Name']"/></TD>
<TD><xsl:value-of select="*[local-name()='Notes']"/></TD>
<TD><xsl:value-of
select="*[local-name()='PercentComplete']"/></TD>
<TD><xsl:value-of
select="substring(*[local-name()='Finish'],0,11)"/></TD>
</TR>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:for-each>
</TABLE>
</CENTER></DIV>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
data in a single row? And how do I know what the the 'local-name()' is for
other fields that I may want to include in a report I create?
The following XSL file will display only Task data, but I also want to
include Resource data, like Resource Initials.
I am using MS Project Professional 2003.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<HTML>
<BODY BGCOLOR="aliceblue">
<DIV><CENTER>
<H2>Unfinished Tasks</H2>
<TABLE BORDER="2">
<TR>
<TH>ID</TH>
<TH>Name</TH>
<TH>Defect</TH>
<TH>% Complete</TH>
<TH>Due</TH>
</TR>
<xsl:for-each select="//*[local-name()='Task']"> <!-- Select all
tasks -->
<xsl:if test="*[local-name()='ID'][.>156]">
<xsl:if test="*[local-name()='ID'][.<194]">
<xsl:if test="*[local-name()='OutlineLevel'][.='4']"> <!--
Select at the Defect level only -->
<xsl:if test="*[local-name()='Milestone'][. = '0']"> <!--
Select all non-milestone rows -->
<xsl:if test="*[local-name()='Summary'][. = '0']"> <!-- Select
all non-summary rows -->
<xsl:if test="*[local-name()='PercentComplete'][. != 100]">
<!-- Select all incomplete tasks -->
<TR>
<TD><xsl:value-of select="*[local-name()='ID']"/></TD>
<TD><xsl:value-of select="*[local-name()='Name']"/></TD>
<TD><xsl:value-of select="*[local-name()='Notes']"/></TD>
<TD><xsl:value-of
select="*[local-name()='PercentComplete']"/></TD>
<TD><xsl:value-of
select="substring(*[local-name()='Finish'],0,11)"/></TD>
</TR>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:for-each>
</TABLE>
</CENTER></DIV>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>