Kaydet (Commit) 77cc0de8 authored tarafından Tamás Zolnai's avatar Tamás Zolnai Kaydeden (comit) Andras Timar

tdf#112946: Pivot table: Missing selector for a row field after RT in Calc

We need to explicitly set compact flags to false, since true is
the default. It seems MSO prefers compact mode, when the file
contains colliding mode flags.

Reviewed-on: https://gerrit.libreoffice.org/43210Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarTamás Zolnai <tamas.zolnai@collabora.com>
(cherry picked from commit ad439ded)

Change-Id: Ib311f1cf44345be294e6c6607c227c2baa0fb693
Reviewed-on: https://gerrit.libreoffice.org/43218Reviewed-by: 's avatarAndras Timar <andras.timar@collabora.com>
Tested-by: 's avatarAndras Timar <andras.timar@collabora.com>
üst 06104d00
......@@ -214,6 +214,7 @@ public:
void testPivotTableBoolFieldFilterXLSX();
void testPivotTableRowColPageFieldFilterXLSX();
void testPivotTableErrorItemFilterXLSX();
void testPivotTableOutlineModeXLSX();
CPPUNIT_TEST_SUITE(ScExportTest);
CPPUNIT_TEST(test);
......@@ -328,6 +329,7 @@ public:
CPPUNIT_TEST(testPivotTableBoolFieldFilterXLSX);
CPPUNIT_TEST(testPivotTableRowColPageFieldFilterXLSX);
CPPUNIT_TEST(testPivotTableErrorItemFilterXLSX);
CPPUNIT_TEST(testPivotTableOutlineModeXLSX);
CPPUNIT_TEST_SUITE_END();
......@@ -5156,6 +5158,23 @@ void ScExportTest::testPivotTableErrorItemFilterXLSX()
xDocSh->DoClose();
}
void ScExportTest::testPivotTableOutlineModeXLSX()
{
ScDocShellRef xShell = loadDoc("pivottable_outline_mode.", FORMAT_XLSX);
CPPUNIT_ASSERT(xShell.Is());
std::shared_ptr<utl::TempFile> pXPathFile = ScBootstrapFixture::exportTo(&(*xShell), FORMAT_XLSX);
xmlDocPtr pTable = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/pivotTables/pivotTable1.xml");
CPPUNIT_ASSERT(pTable);
// Next to the outline flags, compact flags also should be set (true is the default)
assertXPath(pTable, "/x:pivotTableDefinition", "outline", "1");
assertXPath(pTable, "/x:pivotTableDefinition", "outlineData", "1");
assertXPath(pTable, "/x:pivotTableDefinition", "compact", "0");
assertXPath(pTable, "/x:pivotTableDefinition", "compactData", "0");
assertXPath(pTable, "/x:pivotTableDefinition/x:pivotFields/x:pivotField[1]", "compact", "0");
}
CPPUNIT_TEST_SUITE_REGISTRATION(ScExportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
......
......@@ -676,6 +676,8 @@ void XclExpXmlPivotTables::SavePivotTableXml( XclExpXmlStream& rStrm, const ScDP
XML_indent, XclXmlUtils::ToPsz10(false),
XML_outline, XclXmlUtils::ToPsz10(true),
XML_outlineData, XclXmlUtils::ToPsz10(true),
XML_compact, XclXmlUtils::ToPsz10(false),
XML_compactData, XclXmlUtils::ToPsz10(false),
FSEND);
// NB: Excel's range does not include page field area (if any).
......@@ -725,6 +727,7 @@ void XclExpXmlPivotTables::SavePivotTableXml( XclExpXmlStream& rStrm, const ScDP
{
pPivotStrm->singleElement(XML_pivotField,
XML_showAll, XclXmlUtils::ToPsz10(false),
XML_compact, XclXmlUtils::ToPsz10(false),
FSEND);
continue;
}
......@@ -736,6 +739,7 @@ void XclExpXmlPivotTables::SavePivotTableXml( XclExpXmlStream& rStrm, const ScDP
{
pPivotStrm->singleElement(XML_pivotField,
XML_showAll, XclXmlUtils::ToPsz10(false),
XML_compact, XclXmlUtils::ToPsz10(false),
FSEND);
continue;
}
......@@ -745,6 +749,7 @@ void XclExpXmlPivotTables::SavePivotTableXml( XclExpXmlStream& rStrm, const ScDP
pPivotStrm->singleElement(XML_pivotField,
XML_dataField, XclXmlUtils::ToPsz10(true),
XML_showAll, XclXmlUtils::ToPsz10(false),
XML_compact, XclXmlUtils::ToPsz10(false),
FSEND);
continue;
......@@ -812,6 +817,7 @@ void XclExpXmlPivotTables::SavePivotTableXml( XclExpXmlStream& rStrm, const ScDP
if (!bHasDefaultSubtotal)
pAttList->add(XML_defaultSubtotal, XclXmlUtils::ToPsz10(false));
pAttList->add( XML_compact, XclXmlUtils::ToPsz10(false));
sax_fastparser::XFastAttributeListRef xAttributeList(pAttList);
pPivotStrm->startElement(XML_pivotField, xAttributeList);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment