[Libreoffice-commits] core.git: sc/source
Winfried Donkers
winfrieddonkers at libreoffice.org
Wed Feb 12 06:19:44 PST 2014
sc/source/core/inc/interpre.hxx | 3 +--
sc/source/core/tool/interpr3.cxx | 25 +------------------------
sc/source/core/tool/interpr4.cxx | 6 +++---
sc/source/core/tool/parclass.cxx | 2 +-
sc/source/ui/src/scfuncs.src | 10 +++++++++-
5 files changed, 15 insertions(+), 31 deletions(-)
New commits:
commit 6744d1d8f9b73375483ae04d4530f151cce40957
Author: Winfried Donkers <winfrieddonkers at libreoffice.org>
Date: Thu Jan 30 17:13:56 2014 +0100
make Calc function PERCENTRANK comply with ODF1.2
http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2-part2.html#PERCENTRANK
defines an optional 3rd argument. This hss now been added to the function.
Change-Id: Iaa0d990261be195ad0a4b6f6be7f76b9c084da40
Reviewed-on: https://gerrit.libreoffice.org/7747
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at redhat.com>
diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index e340a9e..5d361bf 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -789,8 +789,7 @@ void ScFTest();
void ScChiTest();
void ScRank( bool bAverage );
void ScPercentile( bool bInclusive );
-void ScPercentrank();
-void ScPercentrank_MS( bool bInclusive );
+void ScPercentrank( bool bInclusive );
double GetPercentrank( ::std::vector<double> & rArray, double fVal, bool bInclusive );
void ScLarge();
void ScSmall();
diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx
index df6f990..9945140 100644
--- a/sc/source/core/tool/interpr3.cxx
+++ b/sc/source/core/tool/interpr3.cxx
@@ -3509,30 +3509,7 @@ void ScInterpreter::ScSmall()
CalculateSmallLarge(true);
}
-void ScInterpreter::ScPercentrank()
-{
- sal_uInt8 nParamCount = GetByte();
- if ( !MustHaveParamCount( nParamCount, 2 ) )
- return;
-
- double fNum = GetDouble();
- vector<double> aSortArray;
- GetSortArray(1, aSortArray);
- SCSIZE nSize = aSortArray.size();
- if (aSortArray.empty() || nSize == 0 || nGlobalError)
- PushNoValue();
- else
- {
- if (fNum < aSortArray[0] || fNum > aSortArray[nSize-1])
- PushNoValue();
- else if ( nSize == 1 )
- PushDouble(1.0); // fNum == pSortArray[0], see test above
- else
- PushDouble( GetPercentrank( aSortArray, fNum, true ) );
- }
-}
-
-void ScInterpreter::ScPercentrank_MS( bool bInclusive )
+void ScInterpreter::ScPercentrank( bool bInclusive )
{
sal_uInt8 nParamCount = GetByte();
if ( !MustHaveParamCount( nParamCount, 2, 3 ) )
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 1fa293e..205d61f 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -4154,9 +4154,9 @@ StackVar ScInterpreter::Interpret()
case ocPercentile :
case ocPercentile_Inc : ScPercentile( true ); break;
case ocPercentile_Exc : ScPercentile( false ); break;
- case ocPercentrank : ScPercentrank(); break;
- case ocPercentrank_Inc : ScPercentrank_MS( true ); break;
- case ocPercentrank_Exc : ScPercentrank_MS( false ); break;
+ case ocPercentrank :
+ case ocPercentrank_Inc : ScPercentrank( true ); break;
+ case ocPercentrank_Exc : ScPercentrank( false ); break;
case ocLarge : ScLarge(); break;
case ocSmall : ScSmall(); break;
case ocFrequency : ScFrequency(); break;
diff --git a/sc/source/core/tool/parclass.cxx b/sc/source/core/tool/parclass.cxx
index db42e46..3da2a9d 100644
--- a/sc/source/core/tool/parclass.cxx
+++ b/sc/source/core/tool/parclass.cxx
@@ -150,7 +150,7 @@ const ScParameterClassification::RawData ScParameterClassification::pRawData[] =
{ ocOr, {{ Reference }, 1 }},
{ ocPearson, {{ ForceArray, ForceArray }, 0 }},
{ ocPercentile, {{ Reference, Value }, 0 }},
- { ocPercentrank, {{ Reference, Value }, 0 }},
+ { ocPercentrank, {{ Reference, Value, Value }, 0 }},
{ ocPow, {{ Array, Array }, 0 }},
{ ocPower, {{ Array, Array }, 0 }},
{ ocProb, {{ ForceArray, ForceArray, Value, Value }, 0 }},
diff --git a/sc/source/ui/src/scfuncs.src b/sc/source/ui/src/scfuncs.src
index 45fe3d2..2dddd09 100644
--- a/sc/source/ui/src/scfuncs.src
+++ b/sc/source/ui/src/scfuncs.src
@@ -5883,7 +5883,7 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
0;
ID_FUNCTION_GRP_STATISTIC;
U2S( HID_FUNC_QUANTILSRANG );
- 2; 0; 0;
+ 3; 0; 0; 1;
0;
};
String 2 // Name of Parameter 1
@@ -5902,6 +5902,14 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
{
Text [ en-US ] = "The value for which percentage ranking is to be determined." ;
};
+ String 6 // Name of Parameter 3
+ {
+ Text [ en-US ] = "significance" ;
+ };
+ String 7 // Description of Parameter 3
+ {
+ Text [ en-US ] = "The number of significant digits for the returned percentage: if ommitted, a value of 3 is used." ;
+ };
};
// -=*# Resource for function PERCENTRANK.EXC #*=-
Resource SC_OPCODE_PERCENT_RANK_EXC
More information about the Libreoffice-commits
mailing list