reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java | 25 ++-------- reportdesign/source/filter/xml/xmlExport.cxx | 4 - 2 files changed, 9 insertions(+), 20 deletions(-)
New commits: commit aa48af57531851a16204381854f1ee19ebb63a6a Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue May 27 12:09:37 2014 +0200 fdo#67935 "print on group change" acted as "print in first group instance" The "parent" group changed iff this is the first iteration of *this* group *or* *detail* *section*. The "parent" group's first iteration means that we are in the first value of the parent group (in other words, the *grand*-*parent* group changed). Change-Id: Ia4a798cb37db2f17e7deef1058b25795bfc02648 Reviewed-on: https://gerrit.libreoffice.org/9503 Reviewed-by: Lionel Elie Mamane <lio...@mamane.lu> Tested-by: Lionel Elie Mamane <lio...@mamane.lu> diff --git a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java index eca94e6..b4c5180 100644 --- a/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java +++ b/reportbuilder/java/org/libreoffice/report/pentaho/layoutprocessor/FormatValueUtility.java @@ -44,6 +44,7 @@ import org.jfree.report.flow.layoutprocessor.LayoutControllerUtil; import org.jfree.report.flow.layoutprocessor.SectionLayoutController; import org.jfree.report.structure.Element; import org.jfree.report.structure.Group; +import org.jfree.report.structure.DetailSection; import org.pentaho.reporting.libraries.formula.lvalues.ContextLookup; import org.pentaho.reporting.libraries.formula.lvalues.LValue; @@ -257,14 +258,14 @@ public class FormatValueUtility return true; } - public static boolean isGroupChanged(LayoutController ref) + private static boolean isGroupChanged(LayoutController ref) { // search the group. - final SectionLayoutController slc = findGroup(ref); + final SectionLayoutController slc = findGroupOrDetail(ref); if (slc == null) { - // Always print the content of the report header and footer and - // the page header and footer. + // {Page, Report} Ã {Header, Footer} have no usable iteration count + // err on the side of showing them rather than not showing them return true; } @@ -272,10 +273,9 @@ public class FormatValueUtility return slc.getIterationCount() == 0; } - public static SectionLayoutController findGroup(LayoutController ref) + private static SectionLayoutController findGroupOrDetail(LayoutController ref) { LayoutController parent = ref.getParent(); - boolean skipNext = false; while (parent != null) { if (!(parent instanceof SectionLayoutController)) @@ -286,19 +286,8 @@ public class FormatValueUtility { final SectionLayoutController slc = (SectionLayoutController) parent; final Element element = slc.getElement(); - if (element instanceof OfficeGroupSection) + if (!(element instanceof Group || element instanceof DetailSection)) { - // This is a header or footer. So we take the next group instead. - skipNext = true; - parent = parent.getParent(); - } - else if (!(element instanceof Group)) - { - parent = parent.getParent(); - } - else if (skipNext) - { - skipNext = false; parent = parent.getParent(); } else commit 7b8e9ea4f9645599f45f7e2f708bab2837dafd0d Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue May 27 12:36:53 2014 +0200 fdo#67937 "print on group change" defaults to TRUE Thus it needs to be saved when it is *false*. Change-Id: I01bae547afe71ede12fb852c1a9040b7e45bf7b9 Reviewed-on: https://gerrit.libreoffice.org/9502 Reviewed-by: Lionel Elie Mamane <lio...@mamane.lu> Tested-by: Lionel Elie Mamane <lio...@mamane.lu> diff --git a/reportdesign/source/filter/xml/xmlExport.cxx b/reportdesign/source/filter/xml/xmlExport.cxx index a43e13f..9eb4f80 100644 --- a/reportdesign/source/filter/xml/xmlExport.cxx +++ b/reportdesign/source/filter/xml/xmlExport.cxx @@ -454,8 +454,8 @@ void ORptExport::exportFormatConditions(const Reference<XReportControlModel>& _x void ORptExport::exportReportElement(const Reference<XReportControlModel>& _xReportElement) { OSL_ENSURE(_xReportElement.is(),"_xReportElement is NULL -> GPF"); - if ( _xReportElement->getPrintWhenGroupChange() ) - AddAttribute(XML_NAMESPACE_REPORT, XML_PRINT_WHEN_GROUP_CHANGE, XML_TRUE ); + if ( !_xReportElement->getPrintWhenGroupChange() ) + AddAttribute(XML_NAMESPACE_REPORT, XML_PRINT_WHEN_GROUP_CHANGE, XML_FALSE ); if ( !_xReportElement->getPrintRepeatedValues() ) AddAttribute(XML_NAMESPACE_REPORT, XML_PRINT_REPEATED_VALUES,XML_FALSE);
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits