sunyj 8 лет назад
Родитель
Сommit
8eb27fc4e9

+ 7 - 0
src/main/java/com/uas/report/crystal2jasper/CrystalToJasper.java

@@ -338,12 +338,19 @@ public class CrystalToJasper {
 		if (!CollectionUtils.isEmpty(usedFields)) {
 			Document document = new SAXReader().read(jrxmlFile);
 			List<Element> elements = document.selectNodes("//*[name()='field']");
+			List<String> fields = new ArrayList<>();
 			for (Element element : elements) {
 				String columnName = element.attributeValue("name");
 				// field未实际使用,移除元素
 				if (!usedFields.contains(columnName.toUpperCase())) {
 					element.getParent().remove(element);
 				}
+				// 移除重复field
+				else if (fields.contains(columnName)) {
+					element.getParent().remove(element);
+				}else{
+					fields.add(columnName);
+				}
 			}
 			saveXmlFile(document, jrxmlFile);
 		}

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

@@ -147,7 +147,9 @@
 						</xsl:choose>
 					</xsl:attribute>
 					<groupExpression>
-						<xsl:value-of select="concat('$F{',$field,'}')"></xsl:value-of>
+						<xsl:call-template name="removeTableName">
+							<xsl:with-param name="field" select="$field" />
+						</xsl:call-template>
 					</groupExpression>
 					<groupHeader>
 						<band>