Browse Source

映射组

sunyj 8 years ago
parent
commit
d8b60a9ec2
1 changed files with 33 additions and 1 deletions
  1. 33 1
      src/main/resources/crystal2jasper.xsl

+ 33 - 1
src/main/resources/crystal2jasper.xsl

@@ -136,6 +136,38 @@
 				</variable>
 				</variable>
 			</xsl:for-each>
 			</xsl:for-each>
 
 
+			<!-- group -->
+			<xsl:for-each select="AreaPair[@type='GroupAreaPair']">
+				<xsl:variable name="field"
+					select="AreaPairProperties/Reference/@value" />
+				<group>
+					<xsl:attribute name="name">
+						<xsl:value-of select="substring-after($field,'.')"></xsl:value-of>
+					</xsl:attribute>
+					<groupExpression>
+						<xsl:value-of select="concat('$F{',$field,'}')"></xsl:value-of>
+					</groupExpression>
+					<groupHeader>
+						<band>
+							<xsl:attribute name="height"><xsl:value-of
+								select="round(Area[@type='GroupHeader']/Section/@height div $positionRate)" /></xsl:attribute>
+							<xsl:for-each select="Area[@type='GroupHeader']/Section">
+								<xsl:apply-templates select="Element" />
+							</xsl:for-each>
+						</band>
+					</groupHeader>
+					<groupFooter>
+						<band>
+							<xsl:attribute name="height"><xsl:value-of
+								select="round(Area[@type='GroupFooter']/Section/@height div $positionRate)" /></xsl:attribute>
+							<xsl:for-each select="Area[@type='GroupFooter']/Section">
+								<xsl:apply-templates select="Element" />
+							</xsl:for-each>
+						</band>
+					</groupFooter>
+				</group>
+			</xsl:for-each>
+
 			<!-- title -->
 			<!-- title -->
 			<xsl:if test="AreaPair[@type='ReportAreaPair']/Area[@type='ReportHeader']">
 			<xsl:if test="AreaPair[@type='ReportAreaPair']/Area[@type='ReportHeader']">
 				<title>
 				<title>
@@ -154,7 +186,7 @@
 				<pageHeader>
 				<pageHeader>
 					<band splitType="Stretch">
 					<band splitType="Stretch">
 						<xsl:attribute name="height"><xsl:value-of
 						<xsl:attribute name="height"><xsl:value-of
-							select="round(AreaPair[@type='PageAreaPair']/Area[@type='PageHeader']/Section/@height div $positionRate)" /></xsl:attribute>
+							select="round(sum(AreaPair[@type='PageAreaPair']/Area[@type='PageHeader']/Section/@height) div $positionRate)" /></xsl:attribute>
 						<xsl:for-each
 						<xsl:for-each
 							select="AreaPair[@type='PageAreaPair']/Area[@type='PageHeader']/Section">
 							select="AreaPair[@type='PageAreaPair']/Area[@type='PageHeader']/Section">
 							<xsl:apply-templates select="Element" />
 							<xsl:apply-templates select="Element" />