summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/inc/dpoutputgeometry.hxx5
-rw-r--r--sc/source/core/data/dpoutputgeometry.cxx4
-rw-r--r--sc/source/filter/excel/xipivot.cxx50
3 files changed, 16 insertions, 43 deletions
diff --git a/sc/inc/dpoutputgeometry.hxx b/sc/inc/dpoutputgeometry.hxx
index c5c65195eff0..e0a5a8706b44 100644
--- a/sc/inc/dpoutputgeometry.hxx
+++ b/sc/inc/dpoutputgeometry.hxx
@@ -44,8 +44,7 @@ public:
~ScDPOutputGeometry();
/**
- * @param nCount number of row fields, <b>excluding the data layout
- * field if exists</b>.
+ * @param nCount number of row fields.
*/
void setRowFieldCount(sal_uInt32 nCount);
void setColumnFieldCount(sal_uInt32 nCount);
@@ -65,7 +64,7 @@ private:
private:
ScRange maOutRange;
- sal_uInt32 mnRowFields; /// number of row fields (data layout field NOT included!)
+ sal_uInt32 mnRowFields; /// number of row fields
sal_uInt32 mnColumnFields;
sal_uInt32 mnPageFields;
sal_uInt32 mnDataFields;
diff --git a/sc/source/core/data/dpoutputgeometry.cxx b/sc/source/core/data/dpoutputgeometry.cxx
index f3d7e8283c42..2defc5a6f22c 100644
--- a/sc/source/core/data/dpoutputgeometry.cxx
+++ b/sc/source/core/data/dpoutputgeometry.cxx
@@ -82,8 +82,6 @@ void ScDPOutputGeometry::getColumnFieldPositions(vector<ScAddress>& rAddrs) cons
return;
}
- bool bDataLayout = mnDataFields > 1;
-
SCROW nCurRow = maOutRange.aStart.Row();
if (mnPageFields)
@@ -97,7 +95,7 @@ void ScDPOutputGeometry::getColumnFieldPositions(vector<ScAddress>& rAddrs) cons
SCROW nRow = nCurRow;
SCTAB nTab = maOutRange.aStart.Tab();
- SCCOL nColStart = static_cast<SCCOL>(maOutRange.aStart.Col() + mnRowFields + (bDataLayout ? 1 : 0));
+ SCCOL nColStart = static_cast<SCCOL>(maOutRange.aStart.Col() + mnRowFields);
SCCOL nColEnd = nColStart + static_cast<SCCOL>(mnColumnFields-1);
for (SCCOL nCol = nColStart; nCol <= nColEnd; ++nCol)
diff --git a/sc/source/filter/excel/xipivot.cxx b/sc/source/filter/excel/xipivot.cxx
index 8cbd721b6d10..7e93dff05e25 100644
--- a/sc/source/filter/excel/xipivot.cxx
+++ b/sc/source/filter/excel/xipivot.cxx
@@ -1444,7 +1444,7 @@ void XclImpPivotTable::Convert()
pDPObj->SetSaveData( aSaveData );
pDPObj->SetSheetDesc( aDesc );
pDPObj->SetOutRange( aOutRange );
- pDPObj->SetAlive( sal_True );
+ pDPObj->SetAlive(true);
pDPObj->SetHeaderLayout( maPTViewEx9Info.mnGridLayout == 0 );
GetDoc().GetDPCollection()->InsertNewTable(pDPObj);
@@ -1472,11 +1472,7 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
aGeometry.setColumnFieldCount(maPTInfo.mnColFields);
aGeometry.setPageFieldCount(maPTInfo.mnPageFields);
aGeometry.setDataFieldCount(maPTInfo.mnDataFields);
-
- // Excel includes data layout field in the row field count. We need to
- // subtract it.
- bool bDataLayout = maPTInfo.mnDataFields > 1;
- aGeometry.setRowFieldCount(maPTInfo.mnRowFields - static_cast<sal_uInt32>(bDataLayout));
+ aGeometry.setRowFieldCount(maPTInfo.mnRowFields);
ScDocument& rDoc = GetDoc();
@@ -1486,7 +1482,7 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
for (; itr != itrEnd; ++itr)
{
sal_uInt16 nMFlag = SC_MF_BUTTON;
- String aName;
+ rtl::OUString aName;
rDoc.GetString(itr->Col(), itr->Row(), itr->Tab(), aName);
if (rSaveData.HasInvisibleMember(aName))
nMFlag |= SC_MF_HIDDEN_MEMBER;
@@ -1502,7 +1498,7 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
for (; itr != itrEnd; ++itr)
{
sal_Int16 nMFlag = SC_MF_BUTTON | SC_MF_BUTTON_POPUP;
- String aName;
+ rtl::OUString aName;
rDoc.GetString(itr->Col(), itr->Row(), itr->Tab(), aName);
if (rSaveData.HasInvisibleMember(aName))
nMFlag |= SC_MF_HIDDEN_MEMBER;
@@ -1511,40 +1507,20 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
vector<ScAddress> aRowBtns;
aGeometry.getRowFieldPositions(aRowBtns);
- if (aRowBtns.empty())
- {
- if (bDataLayout)
- {
- // No row fields, but the data layout button exists.
- SCROW nRow = aGeometry.getRowFieldHeaderRow();
- SCCOL nCol = rOutRange.aStart.Col();
- SCTAB nTab = rOutRange.aStart.Tab();
- rDoc.ApplyFlagsTab(nCol, nRow, nCol, nRow, nTab, SC_MF_BUTTON);
- }
- }
- else
+ itr = aRowBtns.begin();
+ itrEnd = aRowBtns.end();
+ for (; itr != itrEnd; ++itr)
{
- itr = aRowBtns.begin();
- itrEnd = aRowBtns.end();
- for (; itr != itrEnd; ++itr)
- {
- sal_Int16 nMFlag = SC_MF_BUTTON | SC_MF_BUTTON_POPUP;
- String aName;
- rDoc.GetString(itr->Col(), itr->Row(), itr->Tab(), aName);
- if (rSaveData.HasInvisibleMember(aName))
- nMFlag |= SC_MF_HIDDEN_MEMBER;
- rDoc.ApplyFlagsTab(itr->Col(), itr->Row(), itr->Col(), itr->Row(), itr->Tab(), nMFlag);
- }
- if (bDataLayout)
- {
- --itr; // move back to the last row field position.
- rDoc.ApplyFlagsTab(itr->Col(), itr->Row(), itr->Col(), itr->Row(), itr->Tab(), SC_MF_BUTTON);
- }
+ sal_Int16 nMFlag = SC_MF_BUTTON | SC_MF_BUTTON_POPUP;
+ rtl::OUString aName;
+ rDoc.GetString(itr->Col(), itr->Row(), itr->Tab(), aName);
+ if (rSaveData.HasInvisibleMember(aName))
+ nMFlag |= SC_MF_HIDDEN_MEMBER;
+ rDoc.ApplyFlagsTab(itr->Col(), itr->Row(), itr->Col(), itr->Row(), itr->Tab(), nMFlag);
}
}
// ============================================================================
-// ============================================================================
XclImpPivotTableManager::XclImpPivotTableManager( const XclImpRoot& rRoot ) :
XclImpRoot( rRoot )