sc/source/core/data/table3.cxx |   14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

New commits:
commit 4b48a0b49de597fc9e9abb012fb31b6fedfee85b
Author: Eike Rathke <er...@redhat.com>
Date:   Mon Apr 16 16:02:17 2018 +0200

    Resolves: tdf#116003 check presence of subtotal in group, tdf#107267 
follow-up
    
    Change-Id: Ifed6e28926c689dd17914b8b1cbf47b58e2ffcdc
    (cherry picked from commit f50e370db8f7ae20b12e312ad89a0f9961b7ee7a)
    Reviewed-on: https://gerrit.libreoffice.org/52989
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk>

diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx
index cf96a01a926e..d649e581782f 100644
--- a/sc/source/core/data/table3.cxx
+++ b/sc/source/core/data/table3.cxx
@@ -2164,11 +2164,20 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam )
 
         for (sal_uInt16 nLevel = 0; nLevel<nLevelCount; nLevel++)
         {
+            const sal_uInt16 nGroupNo = nLevelCount - nLevel - 1;
+            const ScSubTotalFunc* pResFunc = rParam.pFunctions[nGroupNo];
+            if (!pResFunc)
+            {
+                // No subtotal function given for this group => no formula or
+                // label and do not insert a row.
+                continue;
+            }
+
             // increment end row
             nGlobalEndRow++;
 
             // add row entry for formula
-            aRowEntry.nGroupNo = nLevelCount - nLevel - 1;
+            aRowEntry.nGroupNo = nGroupNo;
             aRowEntry.nSubStartRow = nGlobalStartRow;
             aRowEntry.nFuncStart = nGlobalStartFunc;
             aRowEntry.nDestRow = nGlobalEndRow;
@@ -2186,10 +2195,9 @@ bool ScTable::DoSubTotals( ScSubTotalParam& rParam )
                 DBShowRow(aRowEntry.nDestRow, true);
 
                 // insert label
-                ScSubTotalFunc* eResFunc = 
rParam.pFunctions[aRowEntry.nGroupNo];
                 OUString label = ScGlobal::GetRscString(STR_TABLE_GRAND);
                 label += " ";
-                label += 
ScGlobal::GetRscString(lcl_GetSubTotalStrId(eResFunc[0]));
+                label += 
ScGlobal::GetRscString(lcl_GetSubTotalStrId(pResFunc[0]));
                 SetString(nGroupCol[aRowEntry.nGroupNo], aRowEntry.nDestRow, 
nTab, label);
                 ApplyStyle(nGroupCol[aRowEntry.nGroupNo], aRowEntry.nDestRow, 
pStyle);
             }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to