diff options
-rw-r--r-- | chart2/qa/extras/chart2export.cxx | 16 | ||||
-rw-r--r-- | chart2/qa/extras/data/odt/tdf114657.odt | bin | 0 -> 12890 bytes | |||
-rw-r--r-- | oox/source/export/chartexport.cxx | 24 |
3 files changed, 22 insertions, 18 deletions
diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 78a763ee7bb6..40ce4cc9e808 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -48,6 +48,7 @@ public: void testBarChart(); void testCrosses(); void testScatterChartTextXValues(); + void testScatterXAxisValues(); void testChartDataTable(); void testChartExternalData(); void testEmbeddingsGrabBag(); @@ -150,6 +151,7 @@ public: CPPUNIT_TEST(testBarChart); CPPUNIT_TEST(testCrosses); CPPUNIT_TEST(testScatterChartTextXValues); + CPPUNIT_TEST(testScatterXAxisValues); CPPUNIT_TEST(testChartDataTable); CPPUNIT_TEST(testChartExternalData); CPPUNIT_TEST(testEmbeddingsGrabBag); @@ -654,6 +656,20 @@ void Chart2ExportTest::testScatterChartTextXValues() assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser[1]/c:xVal[1]/c:numRef[1]/c:numCache[1]/c:pt[1]/c:v[1]", "1"); } +void Chart2ExportTest::testScatterXAxisValues() +{ + load("/chart2/qa/extras/data/odt/", "tdf114657.odt"); + + xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text"); + CPPUNIT_ASSERT(pXmlDoc); + + assertXPath(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:ptCount", "val", "5"); + assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:pt[1]/c:v", "15"); + assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:pt[2]/c:v", "11"); + assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:pt[3]/c:v", "20"); + assertXPathContent(pXmlDoc, "//c:scatterChart/c:ser/c:xVal/c:numRef/c:numCache/c:pt[4]/c:v", "16"); +} + void Chart2ExportTest::testChartDataTable() { load("/chart2/qa/extras/data/docx/", "testChartDataTable.docx"); diff --git a/chart2/qa/extras/data/odt/tdf114657.odt b/chart2/qa/extras/data/odt/tdf114657.odt Binary files differnew file mode 100644 index 000000000000..4c99963b0d4f --- /dev/null +++ b/chart2/qa/extras/data/odt/tdf114657.odt diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index b7fdec22de69..bbf647926b33 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2376,28 +2376,16 @@ void ChartExport::exportSeriesValues( const Reference< chart2::data::XDataSequen pFS->endElement( FSNS( XML_c, XML_formatCode ) ); pFS->singleElement(FSNS(XML_c, XML_ptCount), XML_val, OString::number(ptCount)); - bool bIsNumberValue = true; - bool bXSeriesValue = false; - double Value = 1.0; - - if(nValueType == XML_xVal) - bXSeriesValue = true; - for( sal_Int32 i = 0; i < ptCount; i++ ) { - pFS->startElement(FSNS(XML_c, XML_pt), XML_idx, OString::number(i)); - pFS->startElement(FSNS(XML_c, XML_v)); - if (bIsNumberValue && !rtl::math::isNan(aValues[i])) - pFS->write( aValues[i] ); - else if(bXSeriesValue) + if (!rtl::math::isNan(aValues[i])) { - //In Case aValues is not a number for X Values...We write X values as 1,2,3....MS Word does the same thing. - pFS->write( Value ); - Value = Value + 1; - bIsNumberValue = false; + pFS->startElement(FSNS(XML_c, XML_pt), XML_idx, OString::number(i)); + pFS->startElement(FSNS(XML_c, XML_v)); + pFS->write(aValues[i]); + pFS->endElement(FSNS(XML_c, XML_v)); + pFS->endElement(FSNS(XML_c, XML_pt)); } - pFS->endElement( FSNS( XML_c, XML_v ) ); - pFS->endElement( FSNS( XML_c, XML_pt ) ); } pFS->endElement( FSNS( XML_c, XML_numCache ) ); |