From cb41db23a044e6e6337bad642aad2c49174aa068 Mon Sep 17 00:00:00 2001 From: Hannah Meeks Date: Fri, 29 Apr 2022 15:25:51 +0100 Subject: [PATCH] tdf#99514 - implement Value2 for compatibility Value2 ignores date formatting in a way that Value does not. Extended vba.xls to test this too. Change-Id: Id75a3dafae2166221731847b7c81e93e8ad835fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133645 Tested-by: Jenkins Reviewed-by: Mike Kaganski --- oovbaapi/ooo/vba/excel/XRange.idl | 1 + sc/qa/extras/testdocuments/vba.xls | Bin 33280 -> 10752 bytes sc/source/ui/vba/vbarange.cxx | 43 +++++++++++++++++++++-------- sc/source/ui/vba/vbarange.hxx | 5 ++++ 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/oovbaapi/ooo/vba/excel/XRange.idl b/oovbaapi/ooo/vba/excel/XRange.idl index e640f39eb33e..9dcc41f95166 100644 --- a/oovbaapi/ooo/vba/excel/XRange.idl +++ b/oovbaapi/ooo/vba/excel/XRange.idl @@ -43,6 +43,7 @@ interface XRange //interface ::ooo::vba::XHelperInterface; [attribute] any Value; + [attribute] any Value2; [attribute] any Formula; [attribute] any FormulaArray; [attribute] any FormulaR1C1; diff --git a/sc/qa/extras/testdocuments/vba.xls b/sc/qa/extras/testdocuments/vba.xls index 399b1ec206751040a48317aa7c1d600515a786f9..22bee379caf127ac0afd2c4db9be573226baf322 100644 GIT binary patch literal 10752 zcmeHNeQaA-6+iFUP93jqoHXs)uFGDXtxeiEdwzD@q@7oPC)t{&Yx*%DthJMu)U6#G z+u2&WYEIjUYGPt+AP|~h8)X_}u#F*x2570&KL!jKLlbNQsY8HN0aAtrY=|}d&hvBP zWN~YEfL7F-{_ed#_uPB#J@?#mKVDz?dHvZ(pI!AP%?q2!KFFXF*(>2P(!hIqUwICVm_!r6bG`^L1GRt!xC&SdSb-$~^TPzF9%ulT>a@#f z=vTT54eX#4{&FNyn8uK1=rCro@~|8hQ>w^HYL@zoO876vb4C8F1}>&6E-%$T`)~H+ z2B4bt&-=jq_1_5EGGIAyHLwC$39JIH0agRo0!_emfCQ`o>_9VcJ#YiC7FY+g0Ik4! zfcxC0r<}hLc^Po(G?$)sAoTznfli(Rnr&;x9+%Ru|&`|D~UTP9+|m z9*TP2P|(BFe0uAGbb`5PdV3%L`ZDy|1?dE9)cV6)h87C_;r7=E645&aD%P&_kO-zc zO>=6?8?>}OU!$cBd83vt%`ei@#=L2IpSA|?#qN^j!zk9@&S*?cBvdEUdNeOJLsOV` zjt{D{e6CN!Teacuv|t9{m+u$oPjrCqE>kgPrJ5<;TlhfB1K_=n!B)#)tK+mtbJ0~( ze8zndGR!m~;7n|ugbyLJkDA_s|KwA#8I75->zV(7jd94ljE1ycp%8(0MGhh#r3)_C zHpk^IhR|VjkeyJy)&Uzt{p;&*z1kPszGbgQ&x2A7H?UGk5++b`+PGe;u|bQEX}ra) z__#(pp~Y)ae{_VyAGfS4$+sZy(!#kdttI(KvGfJ>ij~2xw@qjhRxGYLetO^8EyYxz zT_`crQSEX-!g-5+K@|CtP*7t*k!Fz<#d(Q!i=sOEq3)dPv@6Ck`tb`qenI35h=^mv zpJ_YmWU2?hp^qsZzg8K8uOq{hjNf%+)FxA)+NpvB5KDqc7Ofu7G~3h7Vgr4b1(1&; zJzUG}>HXp^fIN!X9G%rTIwbJ!%@tk{uELmS?DBG()Y=a?sk+XPlunRTIziA*)f0p| zGZUnV@XZRsxe@IZeix>xiV0G#Oi&M0CznnTyj9f`ggXD733BlSU0M)uIyay?FHM`7 zJva6oEv5+HIr`#5nN&74l9R%RhSY@Awb7w(C)!ar5FZ&S919C|s*Yid1)){fEL1oT zhr-TveqbX%d+%5N`fmSz+c!RIrVZa_&ELh^31toFZ1q4 z&pm$b^*`MA>*9Lk(yBwb@pE6q*M9oi!|m7D9{K{t-}dgeLZF%E(FQ?V0dOZ6yajMw z9%DH=if2M^$ZJ2+6;kAlL4U*{hdN}3+wbahba~{k!`~qXU7fB#hqEJa)NZx(rH027 zs#i;#R!b-~G@ew)a^CmdLvCE#BkQ4rt$2>PV5xG!QrDc)ZPBFaweJr2w`WoZ)S(=@ z*rO)W!PHnzJ(T02$sp}kGue1*ESO5Bqq%r2p}G{W-PPq%6a{?*L$I&gYxgJ~*&ph1 zdLmsNr9gRTd%$b=d;D%sS1{Do^Em>=MPbzaTn~n~tXs|FFUZtZ=VmRHdt~SZT5qduVg6Ngoq?vy~tED(4W#~#7 zx@$gt#-6Ip6nc+mg%pqxkRj)`nQH9|9CDnnZ(jajTydrJS_E(jKqgdg!}2S zkv!BqbS!)-Zx+9FBCLcWogtarK}Sa*;&+f!b_N`QP)yN%N~#xpg1$7U_;|7}t#*@r!jvCS z1v;$TnQ2mp)7_exeTUMl{OcdAQ%==gt+x4>cDI>*0xatlzMM_=*!%`x<8M!2od`U3 zy7xzB~NY&=J*v^%gDP7xWeWQS&GJmG{dij3#ShIoD@LnzMy(c!Xh)RB zM%5NOhCMd?Msv{Ape>jQ>)qXn zR4kehUa}3qvkDJJq6uSGU3^0@qegS)Xe_bpy6rI52h^cNlxlj1soA_UGj6qq52aIJ zY+SulO{NnB4TRK8{7!>-{eyw=Y%Z0I*L>0#I^Jwu@Q_zQ|CP(U|E>>p|DP*sKkyJ# zd|su(`>Ne)w^$xwOL{~;0z+a;a&{eXkWDt|reyRS)lDgo5Z=&CsW)PaCUjGhqB-4^ zeCn`nN_NJEO_=%7u^TUAlG<&fMDCci!MK%)+;Mkkg4zm31xffrdM>Lz@ zqiqi7uM{ZdLyJCszRPky%5%<^v?F^)|7pU}Iz>ZTA5`rNcy;~hyafI8u{)>BFKA!? zaS4f8*FT@77TjPLXtPxRb7y@4=8KSQ`uO?%p;G4L(mCC;byv4OT_u_d0 zL1l{gyD7`%_oYhZ-wNLIdVBA`tCkT|hRpt#w>A*^=_PT_y4>c~~gl691o#>h~Xhr+ofGjaFG!7y@(t`j1 literal 33280 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 diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx index d94bd7b04a35..99bcce81ba00 100644 --- a/sc/source/ui/vba/vbarange.cxx +++ b/sc/source/ui/vba/vbarange.cxx @@ -781,13 +781,13 @@ namespace { class CellValueGetter : public ValueGetter { protected: + RangeValueType meValueType; uno::Any maValue; public: - CellValueGetter() {} + CellValueGetter(RangeValueType eValueType) { meValueType = eValueType; } virtual void visitNode( sal_Int32 x, sal_Int32 y, const uno::Reference< table::XCell >& xCell ) override; virtual void processValue( const uno::Any& aValue ) override; const uno::Any& getValue() const override { return maValue; } - }; } @@ -800,10 +800,10 @@ CellValueGetter::processValue( const uno::Any& aValue ) void CellValueGetter::visitNode( sal_Int32 /*x*/, sal_Int32 /*y*/, const uno::Reference< table::XCell >& xCell ) { uno::Any aValue; - table::CellContentType eType = xCell->getType(); - if( eType == table::CellContentType_VALUE || eType == table::CellContentType_FORMULA ) + table::CellContentType eCellContentType = xCell->getType(); + if( eCellContentType == table::CellContentType_VALUE || eCellContentType == table::CellContentType_FORMULA ) { - if ( eType == table::CellContentType_FORMULA ) + if ( eCellContentType == table::CellContentType_FORMULA ) { OUString sFormula = xCell->getFormula(); @@ -834,13 +834,13 @@ void CellValueGetter::visitNode( sal_Int32 /*x*/, sal_Int32 /*y*/, const uno::Re NumFormatHelper cellFormat( xRange ); if ( cellFormat.isBooleanType() ) aValue <<= ( xCell->getValue() != 0.0 ); - else if ( cellFormat.isDateType() ) + else if ( cellFormat.isDateType() && meValueType == RangeValueType::value) aValue <<= bridge::oleautomation::Date( xCell->getValue() ); else aValue <<= xCell->getValue(); } } - if( eType == table::CellContentType_TEXT ) + if( eCellContentType == table::CellContentType_TEXT ) { uno::Reference< text::XTextRange > xTextRange(xCell, ::uno::UNO_QUERY_THROW); aValue <<= xTextRange->getString(); @@ -908,7 +908,8 @@ private: ScDocument& m_rDoc; formula::FormulaGrammar::Grammar m_eGrammar; public: - CellFormulaValueGetter(ScDocument& rDoc, formula::FormulaGrammar::Grammar eGram ) : m_rDoc( rDoc ), m_eGrammar( eGram ) {} + CellFormulaValueGetter(ScDocument& rDoc, formula::FormulaGrammar::Grammar eGram ) : + CellValueGetter( RangeValueType::value ), m_rDoc( rDoc ), m_eGrammar( eGram ) {} virtual void visitNode( sal_Int32 /*x*/, sal_Int32 /*y*/, const uno::Reference< table::XCell >& xCell ) override { uno::Any aValue; @@ -1524,8 +1525,7 @@ ScVbaRange::getValue( ValueGetter& valueGetter) return uno::Any( script::ArrayWrapper( false, arrayGetter.getValue() ) ); } -uno::Any SAL_CALL -ScVbaRange::getValue() +css::uno::Any ScVbaRange::DoGetValue( RangeValueType eValueType ) { // #TODO code within the test below "if ( m_Areas... " can be removed // Test is performed only because m_xRange is NOT set to be @@ -1537,11 +1537,23 @@ ScVbaRange::getValue() return xRange->getValue(); } - CellValueGetter valueGetter; + CellValueGetter valueGetter( eValueType ); return getValue( valueGetter ); - } +uno::Any SAL_CALL +ScVbaRange::getValue() +{ + return DoGetValue( RangeValueType::value ); +} + +uno::Any SAL_CALL +ScVbaRange::getValue2() +{ + return DoGetValue( RangeValueType::value2 ); +} + + void ScVbaRange::setValue( const uno::Any& aValue, ValueSetter& valueSetter ) { @@ -1594,6 +1606,13 @@ ScVbaRange::setValue( const uno::Any &aValue ) setValue( aValue, valueSetter ); } +void SAL_CALL +ScVbaRange::setValue2( const uno::Any &aValue ) +{ + return setValue( aValue ); +} + + void SAL_CALL ScVbaRange::Clear() { diff --git a/sc/source/ui/vba/vbarange.hxx b/sc/source/ui/vba/vbarange.hxx index 118ad044cf47..7a2d186f5edb 100644 --- a/sc/source/ui/vba/vbarange.hxx +++ b/sc/source/ui/vba/vbarange.hxx @@ -69,6 +69,8 @@ public: typedef ScVbaFormat< ov::excel::XRange > ScVbaRange_BASE; +enum class RangeValueType { value, value2 }; + class ScVbaRange : public ScVbaRange_BASE { css::uno::Reference< ov::XCollection > m_Areas; @@ -95,6 +97,7 @@ class ScVbaRange : public ScVbaRange_BASE /// @throws css::uno::RuntimeException css::uno::Any getValue( ValueGetter& rValueGetter ); + css::uno::Any DoGetValue( RangeValueType eValueType ); /// @throws css::uno::RuntimeException void setValue( const css::uno::Any& aValue, ValueSetter& setter ); @@ -174,7 +177,9 @@ public: // Attributes virtual css::uno::Any SAL_CALL getValue() override; + virtual css::uno::Any SAL_CALL getValue2() override; virtual void SAL_CALL setValue( const css::uno::Any& aValue ) override; + virtual void SAL_CALL setValue2( const css::uno::Any& aValue2 ) override; virtual css::uno::Any SAL_CALL getFormula() override; virtual void SAL_CALL setFormula( const css::uno::Any& rFormula ) override; virtual css::uno::Any SAL_CALL getFormulaArray() override;