[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]