sc/inc/simpleformulacalc.hxx | 1 + sc/qa/unit/ucalc.cxx | 6 ++++++ sc/source/core/data/simpleformulacalc.cxx | 5 +++++ sc/source/ui/formdlg/formula.cxx | 2 +- 4 files changed, 13 insertions(+), 1 deletion(-)
New commits: commit 6a01844a9f504c40758daa570724f1983ab1be79 Author: Benjamin Ni <benjaminn...@hotmail.com> Date: Mon Jul 6 17:35:27 2015 +0200 tdf#92547 - incorrect input values shown in formula wizard Change-Id: I55dd98b1613376c8e1c83af8ffdc66a58e022cb1 diff --git a/sc/inc/simpleformulacalc.hxx b/sc/inc/simpleformulacalc.hxx index b701468..340c9d8 100644 --- a/sc/inc/simpleformulacalc.hxx +++ b/sc/inc/simpleformulacalc.hxx @@ -41,6 +41,7 @@ public: void Calculate(); bool IsValue(); + bool IsMatrix(); sal_uInt16 GetErrCode(); double GetValue(); svl::SharedString GetString(); diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 190f522..7c8171c 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -6483,6 +6483,12 @@ void Test::testFormulaWizardSubformula() if ( aFCell.GetErrCode() == 0 ) CPPUNIT_ASSERT_EQUAL( OUString("{1, #DIV/0!, #NAME!}"), aFCell.GetString().getString() ); + m_pDoc->SetString(ScAddress(0,1,0), "=NA()"); // B0 + m_pDoc->SetString(ScAddress(1,1,0), "2"); // B1 + m_pDoc->SetString(ScAddress(2,1,0), "=1+2"); // B2 + if ( aFCell.GetErrCode() == 0 ) + CPPUNIT_ASSERT_EQUAL(OUString("{#N/A, 2, 3}"), aFCell.GetString().getString()); + m_pDoc->DeleteTab(0); } diff --git a/sc/source/core/data/simpleformulacalc.cxx b/sc/source/core/data/simpleformulacalc.cxx index 5a08e68..d359667 100644 --- a/sc/source/core/data/simpleformulacalc.cxx +++ b/sc/source/core/data/simpleformulacalc.cxx @@ -70,6 +70,11 @@ bool ScSimpleFormulaCalculator::IsValue() return maResult.IsValue(); } +bool ScSimpleFormulaCalculator::IsMatrix() +{ + return bIsMatrix; +} + sal_uInt16 ScSimpleFormulaCalculator::GetErrCode() { Calculate(); diff --git a/sc/source/ui/formdlg/formula.cxx b/sc/source/ui/formdlg/formula.cxx index 23023b5..4160619 100644 --- a/sc/source/ui/formdlg/formula.cxx +++ b/sc/source/ui/formdlg/formula.cxx @@ -330,7 +330,7 @@ bool ScFormulaDlg::calculateValue( const OUString& rStrExp, OUString& rStrResult } sal_uInt16 nErrCode = pFCell->GetErrCode(); - if ( nErrCode == 0 ) + if ( nErrCode == 0 || pFCell->IsMatrix() ) { SvNumberFormatter& aFormatter = *(pDoc->GetFormatTable()); Color* pColor; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits