25#include <compiler.hxx>
26#include <compiler.hrc>
33#include <rtl/ustring.hxx>
34#include <rtl/ustrbuf.hxx>
37#include <osl/diagnose.h>
69 sal_uInt16 nFunctionFlags;
95 sal_uInt16 nVarArgsLimit;
103 pDefArgFlags (nullptr),
170 if (nLastSuppressed <
nArgCount && nLastAdded < nLastSuppressed &&
171 aSig.getLength() >= 2)
172 aSig.setLength(aSig.getLength() - 2);
193 aSig.append(
" ... ");
217 aSig.append(
" ... " );
221 return aSig.makeStringAndClear();
233 if( !aParamList.isEmpty() )
236 aSig.append(aParamList);
238 aSig.append(
u'\x00A0' );
244 return aSig.makeStringAndClear();
251 OUStringBuffer aFormula;
257 aFormula.append(
"(" );
258 if (
nArgCount > 0 && !_aArguments.empty() && !_aArguments[0].isEmpty())
260 ::std::vector< OUString >::const_iterator aIter = _aArguments.begin();
261 ::std::vector< OUString >::const_iterator aEnd = _aArguments.end();
263 aFormula.append( *aIter );
265 while( aIter != aEnd && !aIter->isEmpty() )
267 aFormula.append( sep );
268 aFormula.append( *aIter );
273 aFormula.append(
")" );
275 return aFormula.makeStringAndClear();
312 sal_uInt16
value = 0;
321 for (sal_uInt16
i=0;
i < nArgs; ++
i)
323 _rArguments.push_back(
i);
338 if ( !aIntName.isEmpty() )
348 OSL_FAIL(
"couldn't initialize add-in function" );
398#define ENTRY(CODE) CODE, SAL_N_ELEMENTS(CODE)
401 : mbEnglishFunctionNames( bEnglishFunctionNames )
403 sal_Int32 nMaxFuncNameLen = 0;
408 static const ScFuncDescCore aDescs[] =
410 {
SC_OPCODE_IF,
ENTRY(SC_OPCODE_IF_ARY), 0,
ID_FUNCTION_GRP_LOGIC,
HID_FUNC_WENN, 3, { 0, 1, 1 }, 0 },
514 {
SC_OPCODE_CEIL,
ENTRY(SC_OPCODE_CEIL_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_OBERGRENZE, 3, { 0, 1, 1 }, 0 },
515 {
SC_OPCODE_FLOOR,
ENTRY(SC_OPCODE_FLOOR_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_UNTERGRENZE, 3, { 0, 1, 1 }, 0 },
530 {
SC_OPCODE_GET_DATE,
ENTRY(SC_OPCODE_GET_DATE_ARY), 0,
ID_FUNCTION_GRP_DATETIME,
HID_FUNC_DATUM, 3, { 0, 0, 0 }, 0 },
531 {
SC_OPCODE_GET_TIME,
ENTRY(SC_OPCODE_GET_TIME_ARY), 0,
ID_FUNCTION_GRP_DATETIME,
HID_FUNC_ZEIT, 3, { 0, 0, 0 }, 0 },
533 {
SC_OPCODE_GET_DIFF_DATE_360,
ENTRY(SC_OPCODE_GET_DIFF_DATE_360_ARY), 0,
ID_FUNCTION_GRP_DATETIME,
HID_FUNC_TAGE360, 3, { 0, 0, 1 }, 0 },
547 {
SC_OPCODE_B,
ENTRY(SC_OPCODE_B_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_B, 4, { 0, 0, 0, 1 }, 0 },
548 {
SC_OPCODE_NORM_DIST,
ENTRY(SC_OPCODE_NORM_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_NORMVERT, 4, { 0, 0, 0, 1 }, 0 },
549 {
SC_OPCODE_EXP_DIST,
ENTRY(SC_OPCODE_EXP_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_EXPONVERT, 3, { 0, 0, 0 }, 0 },
550 {
SC_OPCODE_BINOM_DIST,
ENTRY(SC_OPCODE_BINOM_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_BINOMVERT, 4, { 0, 0, 0, 0 }, 0 },
551 {
SC_OPCODE_POISSON_DIST,
ENTRY(SC_OPCODE_POISSON_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_POISSON, 3, { 0, 0, 1 }, 0 },
556 {
SC_OPCODE_PV,
ENTRY(SC_OPCODE_PV_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_BW, 5, { 0, 0, 0, 1, 1 }, 0 },
557 {
SC_OPCODE_SYD,
ENTRY(SC_OPCODE_SYD_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_DIA, 4, { 0, 0, 0, 0 }, 0 },
558 {
SC_OPCODE_DDB,
ENTRY(SC_OPCODE_DDB_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_GDA, 5, { 0, 0, 0, 0, 1 }, 0 },
559 {
SC_OPCODE_DB,
ENTRY(SC_OPCODE_DB_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_GDA2, 5, { 0, 0, 0, 0, 1 }, 0 },
560 {
SC_OPCODE_VBD ,
ENTRY(SC_OPCODE_VBD_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_VDB, 7, { 0, 0, 0, 0, 0, 1, 1 }, 0 },
561 {
SC_OPCODE_PDURATION,
ENTRY(SC_OPCODE_PDURATION_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_LAUFZEIT, 3, { 0, 0, 0 }, 0 },
562 {
SC_OPCODE_SLN,
ENTRY(SC_OPCODE_SLN_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_LIA, 3, { 0, 0, 0 }, 0 },
563 {
SC_OPCODE_PMT,
ENTRY(SC_OPCODE_PMT_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_RMZ, 5, { 0, 0, 0, 1, 1 }, 0 },
568 {
SC_OPCODE_RRI,
ENTRY(SC_OPCODE_RRI_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_ZGZ, 3, { 0, 0, 0 }, 0 },
569 {
SC_OPCODE_FV,
ENTRY(SC_OPCODE_FV_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_ZW, 5, { 0, 0, 0, 1, 1 }, 0 },
570 {
SC_OPCODE_NPER,
ENTRY(SC_OPCODE_NPER_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_ZZR, 5, { 0, 0, 0, 1, 1 }, 0 },
571 {
SC_OPCODE_RATE,
ENTRY(SC_OPCODE_RATE_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_ZINS, 6, { 0, 0, 0, 1, 1, 1 }, 0 },
572 {
SC_OPCODE_IPMT,
ENTRY(SC_OPCODE_IPMT_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_ZINSZ, 6, { 0, 0, 0, 0, 1, 1 }, 0 },
573 {
SC_OPCODE_PPMT,
ENTRY(SC_OPCODE_PPMT_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_KAPZ, 6, { 0, 0, 0, 0, 1, 1 }, 0 },
574 {
SC_OPCODE_CUM_IPMT,
ENTRY(SC_OPCODE_CUM_IPMT_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_KUMZINSZ, 6, { 0, 0, 0, 0, 0, 0 }, 0 },
575 {
SC_OPCODE_CUM_PRINC,
ENTRY(SC_OPCODE_CUM_PRINC_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_KUMKAPITAL, 6, { 0, 0, 0, 0, 0, 0 }, 0 },
579 {
SC_OPCODE_DB_SUM,
ENTRY(SC_OPCODE_DB_SUM_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBSUMME, 3, { 0, 0, 0 }, 0 },
580 {
SC_OPCODE_DB_COUNT,
ENTRY(SC_OPCODE_DB_COUNT_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBANZAHL, 3, { 0, 1, 0 }, 0 },
581 {
SC_OPCODE_DB_COUNT_2,
ENTRY(SC_OPCODE_DB_COUNT_2_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBANZAHL2, 3, { 0, 1, 0 }, 0 },
582 {
SC_OPCODE_DB_AVERAGE,
ENTRY(SC_OPCODE_DB_AVERAGE_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBMITTELWERT, 3, { 0, 0, 0 }, 0 },
583 {
SC_OPCODE_DB_GET,
ENTRY(SC_OPCODE_DB_GET_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBAUSZUG, 3, { 0, 0, 0 }, 0 },
584 {
SC_OPCODE_DB_MAX,
ENTRY(SC_OPCODE_DB_MAX_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBMAX, 3, { 0, 0, 0 }, 0 },
585 {
SC_OPCODE_DB_MIN,
ENTRY(SC_OPCODE_DB_MIN_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBMIN, 3, { 0, 0, 0 }, 0 },
586 {
SC_OPCODE_DB_PRODUCT,
ENTRY(SC_OPCODE_DB_PRODUCT_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBPRODUKT, 3, { 0, 0, 0 }, 0 },
587 {
SC_OPCODE_DB_STD_DEV,
ENTRY(SC_OPCODE_DB_STD_DEV_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBSTDABW, 3, { 0, 0, 0 }, 0 },
588 {
SC_OPCODE_DB_STD_DEV_P,
ENTRY(SC_OPCODE_DB_STD_DEV_P_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBSTDABWN, 3, { 0, 0, 0 }, 0 },
589 {
SC_OPCODE_DB_VAR,
ENTRY(SC_OPCODE_DB_VAR_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBVARIANZ, 3, { 0, 0, 0 }, 0 },
590 {
SC_OPCODE_DB_VAR_P,
ENTRY(SC_OPCODE_DB_VAR_P_ARY), 0,
ID_FUNCTION_GRP_DATABASE,
HID_FUNC_DBVARIANZEN, 3, { 0, 0, 0 }, 0 },
592 {
SC_OPCODE_ADDRESS,
ENTRY(SC_OPCODE_ADDRESS_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_ADRESSE, 5, { 0, 0, 1, 1, 1 }, 0 },
593 {
SC_OPCODE_MATCH,
ENTRY(SC_OPCODE_MATCH_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_VERGLEICH, 3, { 0, 0, 1 }, 0 },
596 {
SC_OPCODE_SUM_IF,
ENTRY(SC_OPCODE_SUM_IF_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_SUMMEWENN, 3, { 0, 0, 1 }, 0 },
597 {
SC_OPCODE_LOOKUP,
ENTRY(SC_OPCODE_LOOKUP_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_VERWEIS, 3, { 0, 0, 1 }, 0 },
598 {
SC_OPCODE_V_LOOKUP,
ENTRY(SC_OPCODE_V_LOOKUP_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_SVERWEIS, 4, { 0, 0, 0, 1 }, 0 },
599 {
SC_OPCODE_H_LOOKUP,
ENTRY(SC_OPCODE_H_LOOKUP_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_WVERWEIS, 4, { 0, 0, 0, 1 }, 0 },
600 {
SC_OPCODE_OFFSET,
ENTRY(SC_OPCODE_OFFSET_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_VERSCHIEBUNG, 5, { 0, 0, 0, 1, 1 }, 0 },
601 {
SC_OPCODE_INDEX,
ENTRY(SC_OPCODE_INDEX_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_INDEX, 4, { 0, 1, 1, 1 }, 0 },
604 {
SC_OPCODE_REPLACE,
ENTRY(SC_OPCODE_REPLACE_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_ERSETZEN, 4, { 0, 0, 0, 0 }, 0 },
605 {
SC_OPCODE_FIXED,
ENTRY(SC_OPCODE_FIXED_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_FEST, 3, { 0, 1, 1 }, 0 },
606 {
SC_OPCODE_FIND,
ENTRY(SC_OPCODE_FIND_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_FINDEN, 3, { 0, 0, 1 }, 0 },
610 {
SC_OPCODE_SEARCH,
ENTRY(SC_OPCODE_SEARCH_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_SUCHEN, 3, { 0, 0, 1 }, 0 },
611 {
SC_OPCODE_MID,
ENTRY(SC_OPCODE_MID_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_TEIL, 3, { 0, 0, 0 }, 0 },
613 {
SC_OPCODE_SUBSTITUTE,
ENTRY(SC_OPCODE_SUBSTITUTE_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_WECHSELN, 4, { 0, 0, 0, 1 }, 0 },
621 {
SC_OPCODE_HYP_GEOM_DIST,
ENTRY(SC_OPCODE_HYP_GEOM_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_HYPGEOMVERT, 5, { 0, 0, 0, 0, 1 }, 0 },
622 {
SC_OPCODE_LOG_NORM_DIST,
ENTRY(SC_OPCODE_LOG_NORM_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_LOGNORMVERT, 4, { 0, 1, 1, 1 }, 0 },
623 {
SC_OPCODE_T_DIST,
ENTRY(SC_OPCODE_T_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_TVERT, 3, { 0, 0, 0 }, 0 },
624 {
SC_OPCODE_F_DIST,
ENTRY(SC_OPCODE_F_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FVERT, 3, { 0, 0, 0 }, 0 },
626 {
SC_OPCODE_WEIBULL,
ENTRY(SC_OPCODE_WEIBULL_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_WEIBULL, 4, { 0, 0, 0, 0 }, 0 },
627 {
SC_OPCODE_NEG_BINOM_VERT,
ENTRY(SC_OPCODE_NEG_BINOM_VERT_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_NEGBINOMVERT, 3, { 0, 0, 0 }, 0 },
628 {
SC_OPCODE_CRIT_BINOM,
ENTRY(SC_OPCODE_CRIT_BINOM_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_KRITBINOM, 3, { 0, 0, 0 }, 0 },
632 {
SC_OPCODE_STANDARD,
ENTRY(SC_OPCODE_STANDARD_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_STANDARDISIERUNG, 3, { 0, 0, 0 }, 0 },
638 {
SC_OPCODE_Z_TEST,
ENTRY(SC_OPCODE_Z_TEST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_GTEST, 3, { 0, 0, 1 }, 0 },
639 {
SC_OPCODE_T_TEST,
ENTRY(SC_OPCODE_T_TEST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_TTEST, 4, { 0, 0, 0, 0 }, 0 },
640 {
SC_OPCODE_RANK,
ENTRY(SC_OPCODE_RANK_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_RANG, 3, { 0, 0, 1 }, 0 },
642 {
SC_OPCODE_PERCENT_RANK,
ENTRY(SC_OPCODE_PERCENT_RANK_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_QUANTILSRANG, 3, { 0, 0, 1 }, 0 },
647 {
SC_OPCODE_NORM_INV,
ENTRY(SC_OPCODE_NORM_INV_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_NORMINV, 3, { 0, 0, 0 }, 0 },
648 {
SC_OPCODE_CONFIDENCE,
ENTRY(SC_OPCODE_CONFIDENCE_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_KONFIDENZ, 3, { 0, 0, 0 }, 0 },
651 {
SC_OPCODE_PROB,
ENTRY(SC_OPCODE_PROB_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_WAHRSCHBEREICH, 4, { 0, 0, 0, 1 }, 0 },
659 {
SC_OPCODE_TREND,
ENTRY(SC_OPCODE_TREND_ARY), 0,
ID_FUNCTION_GRP_MATRIX,
HID_FUNC_TREND, 4, { 0, 1, 1, 1 }, 0 },
660 {
SC_OPCODE_GROWTH,
ENTRY(SC_OPCODE_GROWTH_ARY), 0,
ID_FUNCTION_GRP_MATRIX,
HID_FUNC_VARIATION, 4, { 0, 1, 1, 1 }, 0 },
661 {
SC_OPCODE_LINEST,
ENTRY(SC_OPCODE_LINEST_ARY), 0,
ID_FUNCTION_GRP_MATRIX,
HID_FUNC_RGP, 4, { 0, 1, 1, 1 }, 0 },
662 {
SC_OPCODE_LOGEST,
ENTRY(SC_OPCODE_LOGEST_ARY), 0,
ID_FUNCTION_GRP_MATRIX,
HID_FUNC_RKP, 4, { 0, 1, 1, 1 }, 0 },
663 {
SC_OPCODE_FORECAST,
ENTRY(SC_OPCODE_FORECAST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_SCHAETZER, 3, { 0, 0, 0 }, 0 },
665 {
SC_OPCODE_GAMMA_DIST,
ENTRY(SC_OPCODE_GAMMA_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_GAMMAVERT, 4, { 0, 0, 0, 1 }, 0 },
666 {
SC_OPCODE_GAMMA_INV,
ENTRY(SC_OPCODE_GAMMA_INV_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_GAMMAINV, 3, { 0, 0, 0 }, 0 },
668 {
SC_OPCODE_F_INV,
ENTRY(SC_OPCODE_F_INV_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FINV, 3, { 0, 0, 0 }, 0 },
670 {
SC_OPCODE_LOG_INV,
ENTRY(SC_OPCODE_LOG_INV_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_LOGINV, 3, { 0, 1, 1 }, 0 },
671 {
SC_OPCODE_BETA_DIST,
ENTRY(SC_OPCODE_BETA_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_BETAVERT, 6, { 0, 0, 0, 1, 1, 1 }, 0 },
672 {
SC_OPCODE_BETA_INV,
ENTRY(SC_OPCODE_BETA_INV_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_BETAINV, 5, { 0, 0, 0, 1, 1 }, 0 },
675 {
SC_OPCODE_STYLE,
ENTRY(SC_OPCODE_STYLE_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_VORLAGE, 3, { 0, 1, 1 }, 0 },
676 {
SC_OPCODE_DDE,
ENTRY(SC_OPCODE_DDE_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_DDE, 4, { 0, 0, 0, 1 }, 0 },
677 {
SC_OPCODE_BASE,
ENTRY(SC_OPCODE_BASE_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_BASIS, 3, { 0, 0, 1 }, 0 },
689 {
SC_OPCODE_CONVERT_OOO,
ENTRY(SC_OPCODE_CONVERT_OOO_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_UMRECHNEN, 3, { 0, 0, 0 }, 0 },
691 {
SC_OPCODE_MIRR,
ENTRY(SC_OPCODE_MIRR_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_QIKV, 3, { 0, 0, 0 }, 0 },
693 {
SC_OPCODE_ISPMT,
ENTRY(SC_OPCODE_ISPMT_ARY), 0,
ID_FUNCTION_GRP_FINANCIAL,
HID_FUNC_ISPMT, 4, { 0, 0, 0, 0 }, 0 },
695 {
SC_OPCODE_GET_PIVOT_DATA,
ENTRY(SC_OPCODE_GET_PIVOT_DATA_ARY), 0,
ID_FUNCTION_GRP_TABLE,
HID_FUNC_GETPIVOTDATA,
VAR_ARGS+2, { 0, 0, 1 }, 0 },
696 {
SC_OPCODE_EUROCONVERT,
ENTRY(SC_OPCODE_EUROCONVERT_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_EUROCONVERT, 5, { 0, 0, 0, 1, 1 }, 0 },
697 {
SC_OPCODE_NUMBERVALUE,
ENTRY(SC_OPCODE_NUMBERVALUE_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_NUMBERVALUE, 3, { 0, 1, 1 }, 0 },
698 {
SC_OPCODE_CHISQ_DIST,
ENTRY(SC_OPCODE_CHISQ_DIST_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_CHISQDIST, 3, { 0, 0, 1 }, 0 },
705 {
SC_OPCODE_GET_DATEDIF,
ENTRY(SC_OPCODE_GET_DATEDIF_ARY), 0,
ID_FUNCTION_GRP_DATETIME,
HID_FUNC_DATEDIF, 3, { 0, 0, 0 }, 0 },
707 {
SC_OPCODE_AVERAGE_IF,
ENTRY(SC_OPCODE_AVERAGE_IF_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_AVERAGEIF, 3, { 0, 0, 1 }, 0 },
708 {
SC_OPCODE_SUM_IFS,
ENTRY(SC_OPCODE_SUM_IFS_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_SUMIFS,
PAIRED_VAR_ARGS+1, { 0, 0, 0 }, 0 },
709 {
SC_OPCODE_AVERAGE_IFS,
ENTRY(SC_OPCODE_AVERAGE_IFS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_AVERAGEIFS,
PAIRED_VAR_ARGS+1, { 0, 0, 0 }, 0 },
715 {
SC_OPCODE_MIDB,
ENTRY(SC_OPCODE_MIDB_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_MIDB, 3, { 0, 0, 0 }, 0 },
724 {
SC_OPCODE_BETA_DIST_MS,
ENTRY(SC_OPCODE_BETA_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_BETADIST_MS, 6, { 0, 0, 0, 0, 1, 1 }, 0 },
725 {
SC_OPCODE_BETA_INV_MS,
ENTRY(SC_OPCODE_BETA_INV_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_BETAINV_MS, 5, { 0, 0, 0, 1, 1 }, 0 },
726 {
SC_OPCODE_BINOM_DIST_MS,
ENTRY(SC_OPCODE_BINOM_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_BINOM_DIST_MS, 4, { 0, 0, 0, 0 }, 0 },
727 {
SC_OPCODE_BINOM_INV,
ENTRY(SC_OPCODE_BINOM_INV_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_BINOM_INV_MS, 3, { 0, 0, 0 }, 0 },
731 {
SC_OPCODE_CHISQ_DIST_MS,
ENTRY(SC_OPCODE_CHISQ_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_CHISQDIST_MS, 3, { 0, 0, 0 }, 0 },
733 {
SC_OPCODE_CONFIDENCE_N,
ENTRY(SC_OPCODE_CONFIDENCE_N_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_CONFIDENCE_N, 3, { 0, 0, 0 }, 0 },
734 {
SC_OPCODE_CONFIDENCE_T,
ENTRY(SC_OPCODE_CONFIDENCE_T_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_CONFIDENCE_T, 3, { 0, 0, 0 }, 0 },
735 {
SC_OPCODE_F_DIST_LT,
ENTRY(SC_OPCODE_F_DIST_LT_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_F_DIST_LT, 4, { 0, 0, 0, 1 }, 0 },
736 {
SC_OPCODE_F_DIST_RT,
ENTRY(SC_OPCODE_F_DIST_RT_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_F_DIST_RT, 3, { 0, 0, 0 }, 0 },
737 {
SC_OPCODE_F_INV_LT,
ENTRY(SC_OPCODE_F_INV_LT_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_F_INV_LT, 3, { 0, 0, 0 }, 0 },
738 {
SC_OPCODE_F_INV_RT,
ENTRY(SC_OPCODE_F_INV_RT_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_F_INV_RT, 3, { 0, 0, 0 }, 0 },
740 {
SC_OPCODE_EXP_DIST_MS,
ENTRY(SC_OPCODE_EXP_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_EXP_DIST_MS, 3, { 0, 0, 0 }, 0 },
741 {
SC_OPCODE_HYP_GEOM_DIST_MS,
ENTRY(SC_OPCODE_HYP_GEOM_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_HYP_GEOM_DIST_MS, 5, { 0, 0, 0, 0, 0 }, 0 },
742 {
SC_OPCODE_POISSON_DIST_MS,
ENTRY(SC_OPCODE_POISSON_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_POISSON_DIST_MS, 3, { 0, 0, 0 }, 0 },
743 {
SC_OPCODE_WEIBULL_MS,
ENTRY(SC_OPCODE_WEIBULL_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_WEIBULL_DIST_MS, 4, { 0, 0, 0, 0 }, 0 },
744 {
SC_OPCODE_GAMMA_DIST_MS,
ENTRY(SC_OPCODE_GAMMA_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_GAMMADIST_MS, 4, { 0, 0, 0, 0 }, 0 },
745 {
SC_OPCODE_GAMMA_INV_MS,
ENTRY(SC_OPCODE_GAMMA_INV_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_GAMMAINV_MS, 3, { 0, 0, 0 }, 0 },
746 {
SC_OPCODE_LOG_NORM_DIST_MS,
ENTRY(SC_OPCODE_LOG_NORM_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_LOGNORMDIST_MS, 4, { 0, 0, 0, 0 }, 0 },
747 {
SC_OPCODE_LOG_INV_MS,
ENTRY(SC_OPCODE_LOG_INV_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_LOGINV, 3, { 0, 0, 0 }, 0 },
748 {
SC_OPCODE_NORM_DIST_MS,
ENTRY(SC_OPCODE_NORM_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_NORMDIST_MS, 4, { 0, 0, 0, 0 }, 0 },
749 {
SC_OPCODE_NORM_INV_MS,
ENTRY(SC_OPCODE_NORM_INV_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_NORMINV_MS, 3, { 0, 0, 0 }, 0 },
752 {
SC_OPCODE_T_DIST_MS,
ENTRY(SC_OPCODE_T_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_TDIST_MS, 3, { 0, 0, 0 }, 0 },
757 {
SC_OPCODE_T_TEST_MS,
ENTRY(SC_OPCODE_T_TEST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_TTEST_MS, 4, { 0, 0, 0, 0 }, 0 },
759 {
SC_OPCODE_PERCENT_RANK_INC,
ENTRY(SC_OPCODE_PERCENT_RANK_INC_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_PERCENTRANK_INC, 3, { 0, 0, 1 }, 0 },
761 {
SC_OPCODE_RANK_EQ,
ENTRY(SC_OPCODE_RANK_EQ_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_RANK_EQ, 3, { 0, 0, 1 }, 0 },
763 {
SC_OPCODE_PERCENT_RANK_EXC,
ENTRY(SC_OPCODE_PERCENT_RANK_EXC_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_PERCENTRANK_EXC, 3, { 0, 0, 1 }, 0 },
765 {
SC_OPCODE_RANK_AVG,
ENTRY(SC_OPCODE_RANK_AVG_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_RANK_AVG, 3, { 0, 0, 1 }, 0 },
768 {
SC_OPCODE_NEG_BINOM_DIST_MS,
ENTRY(SC_OPCODE_NEG_BINOM_DIST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_NEGBINOMDIST_MS, 4, { 0, 0, 0, 0 }, 0 },
769 {
SC_OPCODE_Z_TEST_MS,
ENTRY(SC_OPCODE_Z_TEST_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_Z_TEST_MS, 3, { 0, 0, 1 }, 0 },
773 {
SC_OPCODE_NETWORKDAYS_MS,
ENTRY(SC_OPCODE_NETWORKDAYS_MS_ARY), 0,
ID_FUNCTION_GRP_DATETIME,
HID_FUNC_NETWORKDAYS_MS, 4, { 0, 0, 1, 1 }, 0 },
774 {
SC_OPCODE_WORKDAY_MS,
ENTRY(SC_OPCODE_WORKDAY_MS_ARY), 0,
ID_FUNCTION_GRP_DATETIME,
HID_FUNC_WORKDAY_MS, 4, { 0, 0, 1, 1 }, 0 },
775 {
SC_OPCODE_AGGREGATE,
ENTRY(SC_OPCODE_AGGREGATE_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_AGGREGATE,
VAR_ARGS+3, { 0, 0, 0, 1 }, 0 },
776 {
SC_OPCODE_COLOR,
ENTRY(SC_OPCODE_COLOR_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_COLOR, 4, { 0, 0, 0, 1 }, 0 },
777 {
SC_OPCODE_CEIL_MATH,
ENTRY(SC_OPCODE_CEIL_MATH_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_CEIL_MATH, 3, { 0, 1, 1 }, 0 },
779 {
SC_OPCODE_NETWORKDAYS,
ENTRY(SC_OPCODE_NETWORKDAYS_ARY), 0,
ID_FUNCTION_GRP_DATETIME,
HID_FUNC_NETWORKDAYS, 4, { 0, 0, 1, 1 }, 0 },
780 {
SC_OPCODE_FLOOR_MATH,
ENTRY(SC_OPCODE_FLOOR_MATH_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_FLOOR_MATH, 3, { 0, 1, 1 }, 0 },
782 {
SC_OPCODE_RAWSUBTRACT,
ENTRY(SC_OPCODE_RAWSUBTRACT_ARY), 0,
ID_FUNCTION_GRP_MATH,
HID_FUNC_RAWSUBTRACT,
VAR_ARGS+2, { 0, 0, 1 }, 0 },
784 {
SC_OPCODE_FORECAST_ETS_ADD,
ENTRY(SC_OPCODE_FORECAST_ETS_ADD_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FORECAST_ETS_ADD, 6, { 0, 0, 0, 1, 1, 1 }, 0 },
785 {
SC_OPCODE_FORECAST_ETS_SEA,
ENTRY(SC_OPCODE_FORECAST_ETS_SEA_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FORECAST_ETS_SEA, 4, { 0, 0, 1, 1 }, 0 },
786 {
SC_OPCODE_FORECAST_ETS_MUL,
ENTRY(SC_OPCODE_FORECAST_ETS_MUL_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FORECAST_ETS_MUL, 6, { 0, 0, 0, 1, 1, 1 }, 0 },
787 {
SC_OPCODE_FORECAST_ETS_PIA,
ENTRY(SC_OPCODE_FORECAST_ETS_PIA_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FORECAST_ETS_PIA, 7, { 0, 0, 0, 1, 1, 1, 1 }, 0 },
788 {
SC_OPCODE_FORECAST_ETS_PIM,
ENTRY(SC_OPCODE_FORECAST_ETS_PIM_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FORECAST_ETS_PIM, 7, { 0, 0, 0, 1, 1, 1, 1 }, 0 },
789 {
SC_OPCODE_FORECAST_ETS_STA,
ENTRY(SC_OPCODE_FORECAST_ETS_STA_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FORECAST_ETS_STA, 6, { 0, 0, 0, 1, 1, 1 }, 0 },
790 {
SC_OPCODE_FORECAST_ETS_STM,
ENTRY(SC_OPCODE_FORECAST_ETS_STM_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FORECAST_ETS_STM, 6, { 0, 0, 0, 1, 1, 1 }, 0 },
791 {
SC_OPCODE_FORECAST_LIN,
ENTRY(SC_OPCODE_FORECAST_LIN_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_FORECAST_LIN, 3, { 0, 0, 0 }, 0 },
793 {
SC_OPCODE_TEXTJOIN_MS,
ENTRY(SC_OPCODE_TEXTJOIN_MS_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_TEXTJOIN_MS,
VAR_ARGS + 2, { 0, 0, 0 }, 0 },
795 {
SC_OPCODE_SWITCH_MS,
ENTRY(SC_OPCODE_SWITCH_MS_ARY), 0,
ID_FUNCTION_GRP_LOGIC,
HID_FUNC_SWITCH_MS,
PAIRED_VAR_ARGS + 1, { 0, 0, 0 }, 0 },
796 {
SC_OPCODE_MINIFS_MS,
ENTRY(SC_OPCODE_MINIFS_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_MINIFS_MS,
PAIRED_VAR_ARGS + 1, { 0, 0, 0 }, 0 },
797 {
SC_OPCODE_MAXIFS_MS,
ENTRY(SC_OPCODE_MAXIFS_MS_ARY), 0,
ID_FUNCTION_GRP_STATISTIC,
HID_FUNC_MAXIFS_MS,
PAIRED_VAR_ARGS + 1, { 0, 0, 0 }, 0 },
799 {
SC_OPCODE_REPLACEB,
ENTRY(SC_OPCODE_REPLACEB_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_REPLACEB, 4, { 0, 0, 0, 0 }, 0 },
800 {
SC_OPCODE_FINDB,
ENTRY(SC_OPCODE_FINDB_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_FINDB, 3, { 0, 0, 1 }, 0 },
801 {
SC_OPCODE_SEARCHB,
ENTRY(SC_OPCODE_SEARCHB_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_SEARCHB, 3, { 0, 0, 1 }, 0 },
802 {
SC_OPCODE_REGEX,
ENTRY(SC_OPCODE_REGEX_ARY), 0,
ID_FUNCTION_GRP_TEXT,
HID_FUNC_REGEX, 4, { 0, 0, 1, 1 }, 0 },
803 {
SC_OPCODE_FOURIER,
ENTRY(SC_OPCODE_FOURIER_ARY), 0,
ID_FUNCTION_GRP_MATRIX,
HID_FUNC_FOURIER, 5, { 0, 0, 1, 1, 1 }, 0 },
808 sal_Int32 nStrLen = 0;
809 ::std::vector<const ScFuncDesc*> tmpFuncVector;
815 ScFuncDescCore
const * pDescsEnd = aDescs +
SAL_N_ELEMENTS(aDescs);
818 const ScFuncDescCore *pEntry = std::lower_bound(aDescs, pDescsEnd,
i,
819 [](
const ScFuncDescCore &rItem, sal_uInt16 key)
821 return rItem.nOpCode < key;
826 if (pEntry != pDescsEnd && pEntry->nOpCode ==
i && pEntry->pResource)
829 bool bSuppressed =
false;
840 tmpFuncVector.push_back(pDesc);
843 if (nStrLen > nMaxFuncNameLen)
844 nMaxFuncNameLen = nStrLen;
854 OUString aDefArgNameValue =
"value";
855 OUString aDefArgNameString =
"string";
856 OUString aDefArgNameValues =
"values";
857 OUString aDefArgNameStrings =
"strings";
858 OUString aDefArgNameCells =
"cells";
859 OUString aDefArgNameNone =
"none";
860 OUString aDefArgDescValue =
"a value";
861 OUString aDefArgDescString =
"a string";
862 OUString aDefArgDescValues =
"array of values";
863 OUString aDefArgDescStrings =
"array of strings";
864 OUString aDefArgDescCells =
"range of cells";
865 OUString aDefArgDescNone =
"none";
867 OUString aArgName, aArgDesc;
869 for (
auto const& legacyFunc : rLegacyFuncColl)
871 const LegacyFuncData *
const pLegacyFuncData = legacyFunc.second.get();
888 for (sal_uInt16 j = 0; j < nArgs; ++j)
891 pLegacyFuncData->
getParamDesc( aArgName, aArgDesc, j+1 );
892 if ( !aArgName.isEmpty() )
918 if ( !aArgDesc.isEmpty() )
947 tmpFuncVector.push_back(pDesc);
949 if ( nStrLen > nMaxFuncNameLen)
950 nMaxFuncNameLen = nStrLen;
957 for (
tools::Long nFunc=0; nFunc<nUnoCount; nFunc++)
964 tmpFuncVector.push_back(pDesc);
966 if (nStrLen > nMaxFuncNameLen)
967 nMaxFuncNameLen = nStrLen;
1051 OSL_ENSURE( pFuncList,
"Functionlist not found." );
1060 OSL_ENSURE((pDesc->nCategory) <
MAX_FUNCCAT,
"Unknown category");
1062 ++catCount[pDesc->nCategory];
1076 for (
auto const& elemList :
aCatLists[0])
1079 aCatLists[elemList->nCategory].push_back(elemList);
1095 for (pDesc =
First(); pDesc; pDesc =
Next())
1096 if (pDesc->
nFIndex == nFIndex)
1103 OSL_ENSURE( nCategory <
MAX_FUNCCAT,
"Unknown category" );
1153 _rLastRUFunctions.clear();
1157 for (sal_uInt16
i = 0;
i < nLRUFuncCount; ++
i)
1159 _rLastRUFunctions.push_back(
Get( pLRUListIds[
i] ) );
1168 OSL_FAIL(
"Invalid category number!");
1172 return ScResId(RID_FUNCTION_CATEGORIES[_nCategoryNumber]);
1195 const sal_uInt16 nOpCode = rEntry.nOpCode;
1196 sal_uInt16 nFunctionFlags = rEntry.nFunctionFlags;
1199 rbSuppressed = ((nFunctionFlags & 1) != 0);
1200 pDesc->
mbHidden = ((nFunctionFlags & 2) != 0);
1202 pDesc->
sHelpId = rEntry.pHelpId;
1205 sal_uInt16 nVarArgsSet = 0;
1222 for (sal_uInt16
i = 0;
i < nArgs; ++
i)
1238 for (sal_uInt16
i = 0;
i < nArgs; ++
i)
1241 if (
nIndex < rEntry.nResourceLen)
1243 if (
nIndex + 1 < rEntry.nResourceLen)
1249 nVarArgsSet > 0 &&
i > nVarArgsSet && (
i == nArgs-1 ||
i == nArgs-2) &&
1252 sal_uInt16 nPrev =
i - nVarArgsSet;
::boost::spirit::classic::rule< ScannerT > argument
void getParamDesc(OUString &aName, OUString &aDesc, sal_uInt16 nParam) const
name and description of parameter nParam.
ParamType GetParamType(sal_uInt16 nIndex) const
sal_uInt16 GetParamCount() const
const OUString & GetInternalName() const
const OUString & GetModuleName() const
sal_uInt16 GetLRUFuncListCount() const
sal_uInt16 * GetLRUFuncList() const
Stores and generates human readable descriptions for spreadsheet-functions, e.g. functions used in fo...
std::vector< OUString > maDefArgDescs
Description(s) of parameter(s)
sal_uInt16 nArgCount
All parameter count, suppressed and unsuppressed.
virtual sal_uInt32 getParameterCount() const override
Returns number of arguments.
virtual void initArgumentInfo() const override
Requests function data from AddInCollection.
bool mbHidden
Whether function is hidden.
virtual void fillVisibleArgumentMapping(::std::vector< sal_uInt16 > &_rArguments) const override
Fills a mapping with indexes for non-suppressed arguments.
std::vector< OUString > maDefArgNames
Parameter name(s)
virtual OUString getParameterDescription(sal_uInt32 _nPos) const override
Returns description of parameter at given position.
virtual OUString getFunctionName() const override
Returns the name of the function.
virtual OUString getDescription() const override
Returns the description of the function.
void Clear()
Clears the object.
sal_uInt16 nCategory
Function category.
virtual bool isParameterOptional(sal_uInt32 _nPos) const override
Returns true if parameter at given position is optional.
virtual OString getHelpId() const override
Returns the help id of the function.
static bool compareByName(const ScFuncDesc *a, const ScFuncDesc *b)
Compares functions by name, respecting special characters.
sal_uInt16 GetSuppressedArgCount() const
Returns the number of non-suppressed arguments.
std::optional< OUString > mxFuncDesc
Description of function.
ParameterFlags * pDefArgFlags
Flags for each parameter.
virtual sal_Int32 getSuppressedArgumentCount() const override
virtual sal_uInt32 getVarArgsLimit() const override
Returns maximum number of (variable) arguments.
sal_uInt16 nFIndex
Unique function index.
virtual OUString getFormula(const ::std::vector< OUString > &_aArguments) const override
Returns the function signature with parameters from the passed string array.
virtual bool isHidden() const override
Returns whether function is hidden and not offered in the Function Wizard unless used in an expressio...
std::optional< OUString > mxFuncName
Function name.
virtual sal_uInt32 getVarArgsStart() const override
Returns start of variable arguments.
sal_uInt16 nVarArgsStart
Start of variable arguments, for numbering.
OUString GetParamList() const
Returns list of all parameter names.
OString sHelpId
HelpId of function.
virtual OUString getSignature() const override
Returns the full function signature.
virtual const formula::IFunctionCategory * getCategory() const override
Returns the category of the function.
bool bIncomplete
Incomplete argument info (set for add-in info from configuration)
sal_uInt16 nVarArgsLimit
Limit maximum of (variable) arguments, for numbering.
virtual OUString getParameterName(sal_uInt32 _nPos) const override
Returns name of parameter at given position.
virtual sal_uInt32 getCount() const override
virtual const formula::IFunctionDescription * getFunction(sal_uInt32 _nPos) const override
Gives the _nPos'th function in this category.
OUString m_sName
name of this category
const ::std::vector< const ScFuncDesc * > & m_rCategory
list of functions in this category
virtual sal_uInt32 getNumber() const override
virtual OUString getName() const override
sal_uInt32 m_nCategory
index number of this category
List of spreadsheet functions.
const ScFuncDesc * GetFunction(sal_uInt32 nIndex) const
const ScFuncDesc * First()
ScFunctionList(bool bEnglishFunctionNames)
sal_uInt32 GetCount() const
::std::vector< constScFuncDesc * >::iterator aFunctionListIter
position in function list
const ScFuncDesc * Next()
::std::vector< const ScFuncDesc * > aFunctionList
List of functions.
bool mbEnglishFunctionNames
std::vector< constScFuncDesc * >::const_iterator pCurCatListIter
position in current category
ScFunctionMgr()
Retrieves all calc functions, generates cumulative ('All') category, and the categories.
std::vector< const ScFuncDesc * > aCatLists[MAX_FUNCCAT]
array of all categories, 0 is the cumulative ('All') category
const ScFuncDesc * Next() const
Returns the next function of the current category.
virtual sal_uInt32 getCount() const override
virtual sal_Unicode getSingleToken(const formula::IFunctionManager::EToken _eToken) const override
Maps Etoken to character.
std::map< sal_uInt32, std::shared_ptr< ScFunctionCategory > > m_aCategories
map of category pos to IFunctionCategory
static OUString GetCategoryName(sal_uInt32 _nCategoryNumber)
Returns name of category.
std::vector< constScFuncDesc * >::const_iterator pCurCatListEnd
end of current category
const ScFuncDesc * Get(sal_uInt16 nFIndex) const
Returns function by index.
virtual const formula::IFunctionCategory * getCategory(sal_uInt32 nPos) const override
Returns a category.
const ScFuncDesc * First(sal_uInt16 nCategory=0) const
Returns the first function in category nCategory.
virtual void fillLastRecentlyUsedFunctions(::std::vector< const formula::IFunctionDescription * > &_rLastRUFunctions) const override
Appends the last recently used functions.
static LegacyFuncCollection * GetLegacyFuncCollection()
static SC_DLLPUBLIC ScUnoAddInCollection * GetAddInCollection()
static ScFunctionList * GetStarCalcFunctionList()
static CollatorWrapper & GetCaseCollator()
case-sensitive collator
static ScFunctionMgr * GetStarCalcFunctionMgr()
bool FillFunctionDesc(tools::Long nFunc, ScFuncDesc &rDesc, bool bEnglishFunctionNames)
const ScUnoAddInFuncData * GetFuncData(const OUString &rName, bool bComplete=false)
Only if bComplete is set, the function reference and argument types are initialized (component may ha...
tools::Long GetFuncCount()
OUString FindFunction(const OUString &rUpperName, bool bLocalFirst)
User entered name. rUpperName MUST already be upper case!
#define SC_OPCODE_NO_VALUE
#define SC_OPCODE_REPLACE
#define SC_OPCODE_CONFIDENCE_N
#define SC_OPCODE_RANK_EQ
#define SC_OPCODE_ST_DEV_P_MS
#define SC_OPCODE_CURRENT
#define SC_OPCODE_NOMINAL
#define SC_OPCODE_BAHTTEXT
#define SC_OPCODE_ST_DEV_S
#define SC_OPCODE_SUM_PRODUCT
#define SC_OPCODE_EXP_DIST_MS
#define SC_OPCODE_GET_TIME_VALUE
#define SC_OPCODE_PERCENTILE_INC
#define SC_OPCODE_F_DIST_LT
#define SC_OPCODE_FILTERXML
#define SC_OPCODE_NEG_BINOM_VERT
#define SC_OPCODE_CHI_TEST_MS
#define SC_OPCODE_IS_EVEN
#define SC_OPCODE_GET_DATE
#define SC_OPCODE_RANDOM_NV
#define SC_OPCODE_QUARTILE_EXC
#define SC_OPCODE_ADDRESS
#define SC_OPCODE_RANK_AVG
#define SC_OPCODE_DB_STD_DEV_P
#define SC_OPCODE_FORECAST_ETS_PIA
#define SC_OPCODE_FOURIER
#define SC_OPCODE_QUARTILE
#define SC_OPCODE_SUM_XMY2
#define SC_OPCODE_LOG_INV
#define SC_OPCODE_LOG_NORM_DIST
#define SC_OPCODE_AGGREGATE
#define SC_OPCODE_PRODUCT
#define SC_OPCODE_TAN_HYP
#define SC_OPCODE_LOG_NORM_DIST_MS
#define SC_OPCODE_GET_YEAR
#define SC_OPCODE_ARC_COT_HYP
#define SC_OPCODE_PEARSON
#define SC_OPCODE_T_DIST_MS
#define SC_OPCODE_MAT_TRANS
#define SC_OPCODE_GAMMA_INV_MS
#define SC_OPCODE_REPLACEB
#define SC_OPCODE_MODAL_VALUE_MS
#define SC_OPCODE_STANDARD
#define SC_OPCODE_SEARCHB
#define SC_OPCODE_MAT_INV
#define SC_OPCODE_T_TEST_MS
#define SC_OPCODE_GET_DIFF_DATE
#define SC_OPCODE_COUNT_IFS
#define SC_OPCODE_FISHER_INV
#define SC_OPCODE_DB_COUNT
#define SC_OPCODE_ST_DEV_A
#define SC_OPCODE_ERFC_MS
#define SC_OPCODE_POISSON_DIST
#define SC_OPCODE_NEG_BINOM_DIST_MS
#define SC_OPCODE_COVARIANCE_P
#define SC_OPCODE_GEO_MEAN
#define SC_OPCODE_PERCENTILE_EXC
#define SC_OPCODE_MAT_DET
#define SC_OPCODE_HYPERLINK
#define SC_OPCODE_IS_ERROR
#define SC_OPCODE_COSECANT_HYP
#define SC_OPCODE_QUARTILE_INC
#define SC_OPCODE_PERCENT_RANK_INC
#define SC_OPCODE_BINOM_DIST
#define SC_OPCODE_CURRENCY
#define SC_OPCODE_GET_HOUR
#define SC_OPCODE_ROUND_DOWN
#define SC_OPCODE_CEIL_PRECISE
#define SC_OPCODE_GET_MONTH
#define SC_OPCODE_SUM_X2MY2
#define SC_OPCODE_GET_TIME
#define SC_OPCODE_COLUMNS
#define SC_OPCODE_MINIFS_MS
#define SC_OPCODE_AVERAGE_IFS
#define SC_OPCODE_NORM_DIST_MS
#define SC_OPCODE_S_NORM_INV_MS
#define SC_OPCODE_HAR_MEAN
#define SC_OPCODE_PERMUTATION_A
#define SC_OPCODE_ARC_COT
#define SC_OPCODE_COT_HYP
#define SC_OPCODE_TRIM_MEAN
#define SC_OPCODE_IS_VALUE
#define SC_OPCODE_IS_NON_STRING
#define SC_OPCODE_COUNT_2
#define SC_OPCODE_CEIL_MS
#define SC_OPCODE_STD_NORM_DIST_MS
#define SC_OPCODE_PERCENTILE
#define SC_OPCODE_F_TEST_MS
#define SC_OPCODE_ISOWEEKNUM
#define SC_OPCODE_STD_NORM_DIST
#define SC_OPCODE_FREQUENCY
#define SC_OPCODE_ARC_TAN
#define SC_OPCODE_S_NORM_INV
#define SC_OPCODE_IS_LOGICAL
#define SC_OPCODE_ARC_COS_HYP
#define SC_OPCODE_T_DIST_2T
#define SC_OPCODE_F_INV_LT
#define SC_OPCODE_BETA_DIST_MS
#define SC_OPCODE_F_DIST_RT
#define SC_OPCODE_Z_TEST_MS
#define SC_OPCODE_MODAL_VALUE_MULTI
#define SC_OPCODE_WEEKNUM_OOO
#define SC_OPCODE_SUBSTITUTE
#define SC_OPCODE_FORECAST_ETS_STM
#define SC_OPCODE_CUM_PRINC
#define SC_OPCODE_IS_FORMULA
#define SC_OPCODE_BITRSHIFT
#define SC_OPCODE_AVERAGE
#define SC_OPCODE_ARC_SIN_HYP
#define SC_OPCODE_UNICHAR
#define SC_OPCODE_GAMMA_DIST_MS
#define SC_OPCODE_CUM_IPMT
#define SC_OPCODE_CHISQ_DIST_MS
#define SC_OPCODE_ENCODEURL
#define SC_OPCODE_SUB_TOTAL
#define SC_OPCODE_LOG_INV_MS
#define SC_OPCODE_WEBSERVICE
#define SC_OPCODE_COMBIN_A
#define SC_OPCODE_GET_DIFF_DATE_360
#define SC_OPCODE_BETA_DIST
#define SC_OPCODE_GAMMA_LN_MS
#define SC_OPCODE_GET_MIN
#define SC_OPCODE_GAMMA_LN
#define SC_OPCODE_GET_DAY_OF_WEEK
#define SC_OPCODE_NORM_DIST
#define SC_OPCODE_FORECAST_ETS_STA
#define SC_OPCODE_T_DIST_RT
#define SC_OPCODE_PDURATION
#define SC_OPCODE_WEIBULL
#define SC_OPCODE_UNICODE
#define SC_OPCODE_CHI_INV_MS
#define SC_OPCODE_FORECAST_ETS_ADD
#define SC_OPCODE_ARC_COS
#define SC_OPCODE_HYP_GEOM_DIST
#define SC_OPCODE_FLOOR_MS
#define SC_OPCODE_MAXIFS_MS
#define SC_OPCODE_ROUND_UP
#define SC_OPCODE_CHI_DIST_MS
#define SC_OPCODE_VAR_P_MS
#define SC_OPCODE_SECANT_HYP
#define SC_OPCODE_BINOM_DIST_MS
#define SC_OPCODE_BETA_INV
#define SC_OPCODE_TEXTJOIN_MS
#define SC_OPCODE_EUROCONVERT
#define SC_OPCODE_COSECANT
#define SC_OPCODE_PLUS_MINUS
#define SC_OPCODE_NETWORKDAYS
#define SC_OPCODE_GAMMA_INV
#define SC_OPCODE_BETA_INV_MS
#define SC_OPCODE_SUM_X2DY2
#define SC_OPCODE_ST_DEV_P
#define SC_OPCODE_BINOM_INV
#define SC_OPCODE_CONVERT_OOO
#define SC_OPCODE_AVERAGE_IF
#define SC_OPCODE_PERCENT_RANK_EXC
#define SC_OPCODE_RANDBETWEEN_NV
#define SC_OPCODE_ARC_TAN_2
#define SC_OPCODE_ST_DEV_P_A
#define SC_OPCODE_T_INV_2T
#define SC_OPCODE_IS_STRING
#define SC_OPCODE_CHI_TEST
#define SC_OPCODE_WEIBULL_MS
#define SC_OPCODE_CHI_DIST
#define SC_OPCODE_NETWORKDAYS_MS
#define SC_OPCODE_MODAL_VALUE
#define SC_OPCODE_GET_ACT_DATE
#define SC_OPCODE_CONFIDENCE_T
#define SC_OPCODE_CRIT_BINOM
#define SC_OPCODE_GAMMA_DIST
#define SC_OPCODE_WORKDAY_MS
#define SC_OPCODE_GET_PIVOT_DATA
#define SC_OPCODE_SIN_HYP
#define SC_OPCODE_ARC_SIN
#define SC_OPCODE_EASTERSUNDAY
#define SC_OPCODE_GET_ACT_TIME
#define SC_OPCODE_ERROR_TYPE
#define SC_OPCODE_BITLSHIFT
#define SC_OPCODE_FORECAST_LIN
#define SC_OPCODE_CONCAT_MS
#define SC_OPCODE_NORM_INV
#define SC_OPCODE_DB_COUNT_2
#define SC_OPCODE_AVERAGE_A
#define SC_OPCODE_POISSON_DIST_MS
#define SC_OPCODE_COS_HYP
#define SC_OPCODE_DECIMAL
#define SC_OPCODE_FORMULA
#define SC_OPCODE_DB_AVERAGE
#define SC_OPCODE_SWITCH_MS
#define SC_OPCODE_VAR_P_A
#define SC_OPCODE_GET_DATEDIF
#define SC_OPCODE_DB_VAR_P
#define SC_OPCODE_CHISQ_INV_MS
#define SC_OPCODE_MATRIX_UNIT
#define SC_OPCODE_FORECAST_ETS_SEA
#define SC_OPCODE_FLOOR_PRECISE
#define SC_OPCODE_GET_DATE_VALUE
#define SC_OPCODE_T_INV_MS
#define SC_OPCODE_CEIL_MATH
#define SC_OPCODE_CHI_INV
#define SC_OPCODE_COVARIANCE_S
#define SC_OPCODE_EXP_DIST
#define SC_OPCODE_AVE_DEV
#define SC_OPCODE_RAWSUBTRACT
#define SC_OPCODE_ROUNDSIG
#define SC_OPCODE_NUMBERVALUE
#define SC_OPCODE_FORECAST_ETS_MUL
#define SC_OPCODE_NORM_INV_MS
#define SC_OPCODE_CEIL_ISO
#define SC_OPCODE_COUNT_IF
#define SC_OPCODE_H_LOOKUP
#define SC_OPCODE_FORECAST_ETS_PIM
#define SC_OPCODE_ERROR_TYPE_ODF
#define SC_OPCODE_CHISQ_DIST
#define SC_OPCODE_COUNT_EMPTY_CELLS
#define SC_OPCODE_GET_SEC
#define SC_OPCODE_HYP_GEOM_DIST_MS
#define SC_OPCODE_GET_DAY
#define SC_OPCODE_MAT_MULT
#define SC_OPCODE_LAST_OPCODE_ID
#define SC_OPCODE_ARC_TAN_HYP
#define SC_OPCODE_DB_STD_DEV
#define SC_OPCODE_INTERCEPT
#define SC_OPCODE_FORECAST
#define SC_OPCODE_F_INV_RT
#define SC_OPCODE_V_LOOKUP
#define SC_OPCODE_IS_EMPTY
#define SC_OPCODE_PERCENT_RANK
#define SC_OPCODE_CONFIDENCE
#define SC_OPCODE_FLOOR_MATH
#define SC_OPCODE_SUM_IFS
#define SC_OPCODE_CHISQ_INV
#define SC_OPCODE_DB_PRODUCT
#define SC_OPCODE_INDIRECT
#define SC_OPCODE_IF_ERROR
static void ScFuncRes(const ScFuncDescCore &rEntry, ScFuncDesc *, bool &rbSuppressed)
#define SC_FUNCGROUP_COUNT
#define HID_FUNC_MITTELABW
#define HID_FUNC_ARSINHYP
#define HID_FUNC_NUMBERVALUE
#define HID_FUNC_ISTUNGERADE
#define HID_FUNC_FILTERXML
#define HID_FUNC_NORMINV_MS
#define HID_FUNC_DBVARIANZEN
#define HID_FUNC_ISTFORMEL
#define HID_FUNC_FORECAST_ETS_ADD
#define HID_FUNC_VERKETTEN
#define HID_FUNC_PERCENTRANK_INC
#define HID_FUNC_OSTERSONNTAG
#define HID_FUNC_QUADRATESUMME
#define HID_FUNC_BETAINV_MS
#define HID_FUNC_BETAVERT
#define HID_FUNC_ACHSENABSCHNITT
#define HID_FUNC_F_DIST_RT
#define HID_FUNC_NEGBINOMDIST_MS
#define HID_FUNC_CONCAT_MS
#define HID_FUNC_ANZAHLLEEREZELLEN
#define HID_FUNC_ZEITWERT
#define HID_FUNC_OBERGRENZE
#define HID_FUNC_GAMMAINV
#define HID_FUNC_COSECANTHYP
#define HID_FUNC_ZUFALLSZAHL
#define HID_FUNC_SUMMEXMY2
#define HID_FUNC_CEIL_PRECISE
#define HID_FUNC_BINOM_DIST_MS
#define HID_FUNC_AGGREGATE
#define HID_FUNC_ST_DEV_S
#define HID_FUNC_Z_TEST_MS
#define HID_FUNC_KUMZINSZ
#define HID_FUNC_EXPONVERT
#define HID_FUNC_ARCOTHYP
#define HID_FUNC_WEIBULL_DIST_MS
#define HID_FUNC_ISTGERADE
#define HID_FUNC_WEEKNUM_OOO
#define HID_FUNC_VARIANZEN
#define HID_FUNC_ERSETZEN
#define HID_FUNC_FAKULTAET
#define HID_FUNC_FLOOR_PRECISE
#define HID_FUNC_SCHAETZER
#define HID_FUNC_INDIREKT
#define HID_FUNC_TEXTJOIN_MS
#define HID_FUNC_VARIATION
#define HID_FUNC_EFFEKTIV
#define HID_FUNC_SUMMENPRODUKT
#define HID_FUNC_UMRECHNEN
#define HID_FUNC_F_INV_RT
#define HID_FUNC_COUNTIFS
#define HID_FUNC_ERROR_TYPE_ODF
#define HID_FUNC_VARIANZENA
#define HID_FUNC_STANDNORMVERT
#define HID_FUNC_RANDBETWEEN_NV
#define HID_FUNC_HYP_GEOM_DIST_MS
#define HID_FUNC_STD_NORMDIST_MS
#define HID_FUNC_QUARTILE_EXC
#define HID_FUNC_GETPIVOTDATA
#define HID_FUNC_ENCODEURL
#define HID_FUNC_KKLEINSTE
#define HID_FUNC_PERCENTILE_INC
#define HID_FUNC_CHISQINV
#define HID_FUNC_WOCHENTAG
#define HID_FUNC_STFEHLERYX
#define HID_FUNC_RANK_AVG
#define HID_FUNC_ZAEHLENWENN
#define HID_FUNC_RAWSUBTRACT
#define HID_FUNC_LOGNORMDIST_MS
#define HID_FUNC_GEOMITTEL
#define HID_FUNC_CHIINV_MS
#define HID_FUNC_WECHSELN
#define HID_FUNC_AVERAGEIFS
#define HID_FUNC_FORECAST_ETS_PIA
#define HID_FUNC_CHIVERT_MS
#define HID_FUNC_COSECANT
#define HID_FUNC_MINIFS_MS
#define HID_FUNC_CEIL_MATH
#define HID_FUNC_STD_NORMINV_MS
#define HID_FUNC_NORMDIST_MS
#define HID_FUNC_ABRUNDEN
#define HID_FUNC_CHISQDIST_MS
#define HID_FUNC_FLOOR_MS
#define HID_FUNC_NORMVERT
#define HID_FUNC_PERCENTILE_EXC
#define HID_FUNC_IDENTISCH
#define HID_FUNC_BETADIST_MS
#define HID_FUNC_VARIANZA
#define HID_FUNC_ISOWEEKNUM
#define HID_FUNC_MITTELWERT
#define HID_FUNC_VORZEICHEN
#define HID_FUNC_WVERWEIS
#define HID_FUNC_DBANZAHL2
#define HID_FUNC_GESTUTZTMITTEL
#define HID_FUNC_SAEUBERN
#define HID_FUNC_WIEDERHOLEN
#define HID_FUNC_NEGBINOMVERT
#define HID_FUNC_FORECAST_ETS_SEA
#define HID_FUNC_F_INV_LT
#define HID_FUNC_F_TEST_MS
#define HID_FUNC_QUARTILE_INC
#define HID_FUNC_ROUNDSIG
#define HID_FUNC_SECANTHYP
#define HID_FUNC_BESTIMMTHEITSMASS
#define HID_FUNC_TDIST_RT
#define HID_FUNC_SVERWEIS
#define HID_FUNC_KOMBINATIONEN
#define HID_FUNC_GAMMAVERT
#define HID_FUNC_HAEUFIGKEIT
#define HID_FUNC_STANDNORMINV
#define HID_FUNC_QUANTILSRANG
#define HID_FUNC_COVARIANCE_P
#define HID_FUNC_FLOOR_MATH
#define HID_FUNC_BITRSHIFT
#define HID_FUNC_SUMQUADABW
#define HID_FUNC_DBANZAHL
#define HID_FUNC_DBPRODUKT
#define HID_FUNC_PERCENTRANK_EXC
#define HID_FUNC_HYPERLINK
#define HID_FUNC_ISTFEHLER
#define HID_FUNC_ARABISCH
#define HID_FUNC_REPLACEB
#define HID_FUNC_FORECAST_LIN
#define HID_FUNC_ARCOSHYP
#define HID_FUNC_DBMITTELWERT
#define HID_FUNC_VARIATIONEN2
#define HID_FUNC_ISTKTEXT
#define HID_FUNC_POISSON_DIST_MS
#define HID_FUNC_GAMMADIST_MS
#define HID_FUNC_SUMMEWENN
#define HID_FUNC_HYPGEOMVERT
#define HID_FUNC_DBAUSZUG
#define HID_FUNC_ST_DEV_P_MS
#define HID_FUNC_TEILERGEBNIS
#define HID_FUNC_AUFRUNDEN
#define HID_FUNC_DBSTDABWN
#define HID_FUNC_SWITCH_MS
#define HID_FUNC_AVERAGEIF
#define HID_FUNC_BINOM_INV_MS
#define HID_FUNC_UNTERGRENZE
#define HID_FUNC_VAR_P_MS
#define HID_FUNC_GAMMAINV_MS
#define HID_FUNC_CHITEST_MS
#define HID_FUNC_STANDARDISIERUNG
#define HID_FUNC_SUMMEX2MY2
#define HID_FUNC_MAXIFS_MS
#define HID_FUNC_EINHEITSMATRIX
#define HID_FUNC_TDIST_MS
#define HID_FUNC_GANZZAHL
#define HID_FUNC_F_DIST_LT
#define HID_FUNC_WORKDAY_MS
#define HID_FUNC_NETWORKDAYS_MS
#define HID_FUNC_TABELLEN
#define HID_FUNC_TTEST_MS
#define HID_FUNC_KONFIDENZ
#define HID_FUNC_MODALWERT
#define HID_FUNC_FEHLERTYP
#define HID_FUNC_SUMMEX2PY2
#define HID_FUNC_ARTANHYP
#define HID_FUNC_FORECAST_ETS_STA
#define HID_FUNC_LOGNORMVERT
#define HID_FUNC_DBSTDABW
#define HID_FUNC_FISHERINV
#define HID_FUNC_MITTELWERTA
#define HID_FUNC_BEREICHE
#define HID_FUNC_CHISQINV_MS
#define HID_FUNC_KRITBINOM
#define HID_FUNC_WEBSERVICE
#define HID_FUNC_GAMMALN_MS
#define HID_FUNC_DBVARIANZ
#define HID_FUNC_LAUFZEIT
#define HID_FUNC_VARIATIONEN
#define HID_FUNC_FORECAST_ETS_PIM
#define HID_FUNC_MODAL_VALUE_MS
#define HID_FUNC_EUROCONVERT
#define HID_FUNC_MODAL_VALUE_MULTI
#define HID_FUNC_COVARIANCE_S
#define HID_FUNC_KUMKAPITAL
#define HID_FUNC_VERSCHIEBUNG
#define HID_FUNC_CEIL_ISO
#define HID_FUNC_UNGERADE
#define HID_FUNC_GLAETTEN
#define HID_FUNC_FORECAST_ETS_MUL
#define HID_FUNC_VERGLEICH
#define HID_FUNC_NETWORKDAYS
#define HID_FUNC_CONFIDENCE_N
#define HID_FUNC_HARMITTEL
#define HID_FUNC_ISTBEZUG
#define HID_FUNC_KGROESSTE
#define HID_FUNC_ROEMISCH
#define HID_FUNC_FORECAST_ETS_STM
#define HID_FUNC_QUARTILE
#define HID_FUNC_BAHTTEXT
#define HID_FUNC_KOMBINATIONEN2
#define HID_FUNC_KALENDERWOCHE
#define HID_FUNC_BITLSHIFT
#define HID_FUNC_CONFIDENCE_T
#define HID_FUNC_TDIST_2T
#define HID_FUNC_CHISQDIST
#define HID_FUNC_STEIGUNG
#define HID_FUNC_EXP_DIST_MS
#define HID_FUNC_BINOMVERT
#define HID_FUNC_WAHRSCHBEREICH
#define SAL_N_ELEMENTS(arr)
enumrange< T >::Iterator begin(enumrange< T >)
OUString ScResId(TranslateId aId)
#define ID_FUNCTION_GRP_ADDINS
#define ID_FUNCTION_GRP_STATISTIC
#define ID_FUNCTION_GRP_INFO
#define ID_FUNCTION_GRP_DATABASE
#define ID_FUNCTION_GRP_MATH
#define ID_FUNCTION_GRP_LOGIC
#define ID_FUNCTION_GRP_DATETIME
#define ID_FUNCTION_GRP_FINANCIAL
#define ID_FUNCTION_GRP_TEXT
#define ID_FUNCTION_GRP_TABLE
#define ID_FUNCTION_GRP_MATRIX
Stores whether a parameter is optional or suppressed.
bool bOptional
Parameter is optional.