summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/qa/extras/chart2export.cxx16
-rw-r--r--chart2/qa/extras/data/odt/tdf114657.odtbin0 -> 12890 bytes
-rw-r--r--oox/source/export/chartexport.cxx24
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
new file mode 100644
index 000000000000..4c99963b0d4f
--- /dev/null
+++ b/chart2/qa/extras/data/odt/tdf114657.odt
Binary files differ
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 ) );