[Libreoffice-commits] core.git: 2 commits - reportbuilder/java reportdesign/source

Lionel Elie Mamane lionel at mamane.lu
Tue May 27 03:47:11 PDT 2014


 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 <lionel at 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 <lionel at mamane.lu>
    Tested-by: Lionel Elie Mamane <lionel at 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 <lionel at 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 <lionel at mamane.lu>
    Tested-by: Lionel Elie Mamane <lionel at 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);


More information about the Libreoffice-commits mailing list