OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] Created: (OFFICE-3844) Semantics to function IF part 2, section 6.15.4, does not cover all syntax variants and is ambiguous in at least one case


Semantics to function IF part 2, section 6.15.4, does not cover all syntax variants and is ambiguous in at least one case 
--------------------------------------------------------------------------------------------------------------------------

                 Key: OFFICE-3844
                 URL: http://tools.oasis-open.org/issues/browse/OFFICE-3844
             Project: OASIS Open Document Format for Office Applications (OpenDocument) TC
          Issue Type: Bug
          Components: OpenFormula
    Affects Versions: ODF 1.2
            Reporter: Regina Henschel
             Fix For: ODF 1.3


When I resolve the optional parts [], I get seven valid syntax variants, here without data type.
A:  IF(Condition)
B:  IF(Condition;)
C:  IF(Condition;IfTrue)
D:  IF(Condition;;)
E:  IF(Condition;;IfFalse)
F:  IF(Condition;IfTrue;)
G:  IF(Condition;IfTrue;IfFalse)

Some of them have missing parts. I should be able to determine the correct resulting value from the "Semantics"-part. But that is not possible for all variants.
(use non-proportional font to get the table nice formatted)

Condition     |Condition      |Text in part Semantics
evaluates     |evaluates      |and the fitting syntax variants
to TRUE       |to FALSE       |
--------------+---------------+--------------------------------
result TRUE() |               | "If there is only 1 parameter, IfTrue is
              |               | considered to be TRUE()" fits to A
--------------+---------------+----------------------------------
              | result FALSE()| "If there are less than 3 parameters, IfFalse
              |               | is considered to be FALSE()" fits to A,B,C
--------------+---------------+-----------------------------------
              | result 0      | "If there are 2 or 3 parameters but the second
              |               | parameter is null (two consecutive ;;
              |               | semicolons), IfFalse is considered to be 0."
              |               | fits to B,D,E, perhaps C fits too.
--------------+---------------+-----------------------------------
              | result 0      | "If there are 3 parameters but the third
              |               | parameter is null, IfFalse is considered to
              |               | be 0." fits to D,F

Problems:
(1) Variants B and C are ambiguous, see row 2 and row 3
(2) Why is a rule for IfFalse given, when the second parameter is missing, see row 3?
(3) If the third parameter is not null but IfFalse, then IfFalse should be returned, if Condition is FALSE, but semantics say 0 in row 3.
(4) For Condition TRUE in variants B, D and E no value for the missing second parameter is given. Perhaps the text "If there are 2 or 3 parameters but the second parameter is null (two consecutive ;;semicolons), *IfTrue* is considered to be 0." was intended?
(5) It is not clear, whether C fits to row 3.

Remarks.
In variant B and C with condition FALSE, Gnumeric and Excel return FALSE
In variant B,D, and E with condition TRUE, Gnumeric and Excel return 0 for the missing second parameter.
In variant E with condition FALSE, Gnumeric and Excel return IfFalse and not 0.
LibreOffice and AOO does not handle variants with ;; or ;)


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]