Kaydet (Commit) 1276e951 authored tarafından Winfried Donkers's avatar Winfried Donkers Kaydeden (comit) Eike Rathke

tdf#103088, improve interoperability with Excel for LOGNORMDIST().

Change-Id: I5f4ccbb54b212247a3ff8b13ff012c930d18a86c
Reviewed-on: https://gerrit.libreoffice.org/30020Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
Tested-by: 's avatarEike Rathke <erack@redhat.com>
üst 53284774
...@@ -1525,14 +1525,30 @@ FormulaTokenArray * FormulaTokenArray::RewriteMissing( const MissingConvention & ...@@ -1525,14 +1525,30 @@ FormulaTokenArray * FormulaTokenArray::RewriteMissing( const MissingConvention &
} }
if (bAdd) if (bAdd)
{ {
if ( ( pCur->GetOpCode() == ocCeil || pCur->GetOpCode() == ocFloor ) && OpCode eOp = pCur->GetOpCode();
if ( ( eOp == ocCeil || eOp == ocFloor ||
( eOp == ocLogNormDist && pCur->GetByte() == 4 ) ) &&
rConv.getConvention() == MissingConvention::FORMULA_MISSING_CONVENTION_OOXML ) rConv.getConvention() == MissingConvention::FORMULA_MISSING_CONVENTION_OOXML )
{ {
FormulaToken *pToken = new FormulaToken( svByte, switch ( eOp )
( pCur->GetOpCode() == ocCeil ? ocCeil_Math : ocFloor_Math ) ); {
case ocCeil :
eOp = ocCeil_Math;
break;
case ocFloor :
eOp = ocFloor_Math;
break;
case ocLogNormDist :
eOp = ocLogNormDist_MS;
break;
default :
eOp = ocNone;
break;
}
FormulaToken *pToken = new FormulaToken( svByte, eOp );
pNewArr->Add( pToken ); pNewArr->Add( pToken );
} }
else if ( pCur->GetOpCode() == ocHypGeomDist && else if ( eOp == ocHypGeomDist &&
rConv.getConvention() == MissingConvention::FORMULA_MISSING_CONVENTION_OOXML ) rConv.getConvention() == MissingConvention::FORMULA_MISSING_CONVENTION_OOXML )
{ {
FormulaToken *pToken = new FormulaToken( svByte, ocHypGeomDist_MS ); FormulaToken *pToken = new FormulaToken( svByte, ocHypGeomDist_MS );
......
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