Author: leiw
Date: Thu Jun 21 05:25:48 2012
New Revision: 1352412
URL: http://svn.apache.org/viewvc?rev=1352412&view=rev
Log:
#i119942 - Last agrument of formula should not be removed
Patch by: Zhang Lu
Review by: Wang Lei
Modified:
incubator/ooo/trunk/main/sc/source/filter/excel/excform.cxx
Modified: incubator/ooo/trunk/main/sc/source/filter/excel/excform.cxx
URL:
http://svn.apache.org/viewvc/incubator/ooo/trunk/main/sc/source/filter/excel/excform.cxx?rev=1352412&r1=1352411&r2=1352412&view=diff
==============================================================================
--- incubator/ooo/trunk/main/sc/source/filter/excel/excform.cxx (original)
+++ incubator/ooo/trunk/main/sc/source/filter/excel/excform.cxx Thu Jun 21
05:25:48 2012
@@ -1525,6 +1525,37 @@ sal_Bool ExcelToSc::GetAbsRefs( ScRangeL
return rRangeList.Count() != 0;
}
+static DefTokenId missArgForZeroList[] = {
+ ocCount,
+ ocCount2,
+ ocAverage,
+ ocMin,
+ ocMinA,
+ ocMax,
+ ocMaxA,
+ ocStDev,
+ ocStDevA,
+ ocVar,
+ ocVarP,
+ ocAveDev,
+ ocKurt,
+ ocSchiefe,
+ ocVarPA,
+ ocVarA,
+ ocDevSq
+};
+
+#define missArgForZeroCount sizeof(missArgForZeroList)/sizeof(DefTokenId)
+
+
+sal_Bool lcl_isInMissArgForZeroList(DefTokenId id)
+{
+ for(short index = 0; index < missArgForZeroCount; index++)
+ if(missArgForZeroList[index] == id)
+ return sal_True;
+ return sal_False;
+
+}
void ExcelToSc::DoMulArgs( DefTokenId eId, sal_uInt8 nAnz, sal_uInt8
nMinParamCount )
{
TokenId eParam[ 256 ];
@@ -1575,7 +1606,7 @@ void ExcelToSc::DoMulArgs( DefTokenId eI
nSkipEnd = 0; // letzten Parameter bei Bedarf
weglassen
// Joost-Spezialfaelle
- else if( eId == ocIf )
+ else if( eId == ocIf || lcl_isInMissArgForZeroList(eId))
{
sal_uInt16 nNullParam = 0;
for( nLauf = 0 ; nLauf < nAnz ; nLauf++ )