[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [OASIS Issue Tracker] Commented: (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
[ http://tools.oasis-open.org/issues/browse/OFFICE-3844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=34638#action_34638 ]
Robert Weir commented on OFFICE-3844:
--------------------------------------
Reviewed and discussed on TC call of 2013-09-16. TC members are invited to review and ask questions. We will consider the proposal for approval at a future TC call.
> 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]