You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openoffice.apache.org by bu...@apache.org on 2020/12/22 12:02:24 UTC
[Issue 128190] Tooltip for SUMIFS has wrong syntax
https://bz.apache.org/ooo/show_bug.cgi?id=128190
Czesław Wolański <cz...@gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |czeslaw.wolanski@gmail.com
--- Comment #2 from Czesław Wolański <cz...@gmail.com> ---
Comment by RusselB in topic "[Solved] SUMIFS not working for me"
(link provided in the bug report):
"I've noticed this problem in the tooltip text for a few functions,
but it seems to me that it's always a *IFS function..."
These *IFS functions are: AVERAGEIFS, COUNTIFS, and SUMIFS
1.
Obviously tooltip (shown in the input line / in the cell) does not employ
the entry in the corresponding AOO Help topic (.xhp file).
Instead it is assembled from entries stored in file "scfuncs.src".
Process of creating the data structure (full information on all functions)
and using it are quite complex. Files of interest i.a.:
- global.cxx
http://openoffice-vm1-he-de.apache.org/xref/trunk/main/sc/source/core/data/global.cxx?r=86e1cf34
- scfuncs.src
http://openoffice-vm1-he-de.apache.org/xref/trunk/main/sc/source/ui/src/scfuncs.src?r=4e5ac204
- formulabase.cxx
http://openoffice-vm1-he-de.apache.org/xref/trunk/main/oox/source/xls/formulabase.cxx?r=39c2db0b
- funcdesc.hxx
http://openoffice-vm1-he-de.apache.org/xref/trunk/main/sc/inc/funcdesc.hxx?r=38d50f7b
- inputhdl.cxx
http://openoffice-vm1-he-de.apache.org/xref/trunk/main/sc/source/ui/app/inputhdl.cxx?r=4d7c9de0
2.
Whether commas are added or not depends on what type of arguments
a particular function has.
A method in the source code - ScFuncDesc::GetParamList() composes the string.
http://openoffice-vm1-he-de.apache.org/xref/trunk/main/sc/source/core/data/global.cxx?r=86e1cf34#1469
Part reponsible for paired variable arguments (PAIRED_VAR_ARGS)
1528 {
1529 sal_uInt16 nFix = nArgCount - PAIRED_VAR_ARGS;
1530 for ( sal_uInt16 nArg = 0; nArg < nFix; nArg++ )
1531 {
1532 if (!pDefArgFlags[nArg].bSuppress)
1533 {
1534 aSig += *(ppDefArgNames[nArg]);
1535 aSig.Append(sep);
1536 aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " " ));
1537 }
1538 }
1539
1540 aSig += *(ppDefArgNames[nFix]);
1541 aSig += '1';
1542 aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( ", " ));
1543 aSig += *(ppDefArgNames[nFix+1]);
1544 aSig += '1';
1545 aSig.Append(sep);
1546 aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " " ));
1547 aSig += *(ppDefArgNames[nFix]);
1548 aSig += '2';
1549 aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( ", " ));
1550 aSig += *(ppDefArgNames[nFix+1]);
1551 aSig += '2';
1552 aSig.Append(sep);
1553 aSig.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ... " ));
1554 }
Notice that the code in Line 1542 and 1549 adds _a comma sign_ to the string.
Let's take - as an example - SUMIFS functions. Relevant information is
in file "scfuncs.src".
http://openoffice-vm1-he-de.apache.org/xref/trunk/main/sc/source/ui/src/scfuncs.src?r=4e5ac204#2936
Resource SC_OPCODE_SUM_IFS
Extra Data: PAIRED_VAR_ARGS+1
Name of Parameter 1: "sum_range"
Name of Parameter 2: "range "
Name of Parameter 3: "criteria "
Parameter 1 is fixed. Parameters 2 and 3 are paired variables.
Therefore the code produces:
"sum_range; range 1, criteria 1; range 2, criteria 2; ..."
3.
As pointed out in the bug report:
"tooltip for SUMIFS contains commas in the syntax which should be semicolons".
The same holds true for any *IFS functions.
The proper sign - a semicolon - one can see in AOO Help, in sections:
"Syntax" and "Example" (cf. the attached file "IFs.jpeg").
4.
Issue confirmed in AOO 4.1.8 and AOO 4.2.-dev
5.
Help vs User Interface
Compare, for example:
AOO Help:
SUMIFS( Reference R ; Reference R1 ; Criterion C1 [ ; Reference R2 ; Criterion
C2 ]... )
User Interface:
SUMIFS(► sum_range; range 1, criteria 1; range 2, criteria 2; ... )
Lack of uniformity in the naming convention is evident.
6.
The Unicode character used in the tooltip i.e. ►
is BLACK RIGHT-POINTING POINTER, code U+25BA.
Query with search term "0x25ba"
http://openoffice-vm1-he-de.apache.org/search?project=trunk&full=0x25ba&defs=&refs=&path=&hist=&type=&si=full
yields 3 results. Of interest is file:
/trunk/main/sc/source/ui/app/inputhdl.cxx
(cf. point 1. above)
7.
Pootle:
string identifier has one of the prefixes:
RID_SC_FUNCTION_DESCRIPTIONS1 or RID_SC_FUNCTION_DESCRIPTIONS2
and internal code of function
for example,
SUMIFS function:
"sum_range" --->
scfuncs.src#RID_SC_FUNCTION_DESCRIPTIONS1.SC_OPCODE_SUM_IFS.2.string.text
https://translate.apache.org/pl/translate/#search=scfuncs.src%23RID_SC_FUNCTION_DESCRIPTIONS1.SC_OPCODE_SUM_IFS.2.string.text&sfields=locations
XOR function:
"Number 1" --->
scfuncs.src#RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_BITXOR.2.string.text
https://translate.apache.org/pl/translate/#search=scfuncs.src%23RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_BITXOR.2.string.text&sfields=locations
8.
Entries in file "scfuncs.src" are also used in:
- the Function Wizard ('Insert > Function')
- the Function List ('Insert > Functions' or via the Sidebar).
FINAL NOTE (lbl):
I don't know C++ so I might be utterly wrong.
--
You are receiving this mail because:
You are the assignee for the issue.