← Back to team overview

dhis2-users team mailing list archive

Re: Problem with the d2:condition function in program operator

 

Thanks,
and that would be great Martin :)
https://github.com/dhis2/dhis2-docs

Markus

> 7. feb. 2018 kl. 09:13 skrev Martin Van Aken <martin@xxxxxxxxxxxxxxxx>:
> 
> Just tried, it works! This will help me & more importantly some users a lot!
> Long history of being bitten by operator priorities, so I tend to go the "non ambiguous way". Are the operator priorities documented somewhere (I expect the "standard math ones", but better safe than sorry)
> 
> Thanks for the quick answer - I'll fill the Jira. A very small fix would be to add this to the doc - if the doc is on GitHub I'll gladly submit a PR.
> 
> Martin
> 
> On Wed, Feb 7, 2018 at 9:05 AM, Markus Bekken <markus@xxxxxxxxx <mailto:markus@xxxxxxxxx>> wrote:
> Hi Martin,
> I think it is the parenthesis within the condition that breaks the evaluation. When I would always argue for adding the parenthesis for the clarity of reading the expression, I think you are in luck here - if you remove all the parenthesis your numerical operators will be applied in the same order even if you remove them.
> 
> Please consider registering an issue on the parenthesis problem if it turns out to be the source of the problem.
> 
> Best regards
> Markus
> 
>> 7. feb. 2018 kl. 08:46 skrev Martin Van Aken <martin@xxxxxxxxxxxxxxxx <mailto:martin@xxxxxxxxxxxxxxxx>>:
>> 
>> Hello,
>> I'm trying to create a program indicator which would evaluate if a ratio is equal higher than 80 and return 1 or 0 if not the case.
>> 
>> This is what I have in the expression:
>> 
>> d2:condition('((#{tbLC6IHktf0.CpOPiHrFG8C} * 100) /  #{tbLC6IHktf0.spWKINz7xwF}) >= 80', 100, 0)
>> 
>> The program indicator show the expression as valid, but when I try to use it in a event report, I get this error:
>> 
>> "Illegal arguments, expected 3 arguments: condition, true-value, false-value."
>> 
>> I tested the ratio separately and it works. 
>> 
>> Any one have any insight of what could be wrong there? I could not find a lot of public examples using d2:condition so I may have done a basic mistake here.
>> 
>> Thanks !
>> 
>> Martin
>> 
>> -- 
>> Martin Van Aken - Freelance Enthusiast Developer
>> 
>> Mobile : +32 486 899 652 <> 
>> 
>> Follow me on Twitter : @martinvanaken <http://twitter.com/martinvanaken>
>> Call me on Skype : vanakenm
>> Hang out with me : martin@xxxxxxxxxxxxxxxx <mailto:martin@xxxxxxxxxxxxxxxx>
>> Contact me on LinkedIn : http://www.linkedin.com/in/martinvanaken <http://www.linkedin.com/in/martinvanaken>
>> Company website : www.joyouscoding.com <http://www.joyouscoding.com/>_______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-users <https://launchpad.net/~dhis2-users>
>> Post to     : dhis2-users@xxxxxxxxxxxxxxxxxxx <mailto:dhis2-users@xxxxxxxxxxxxxxxxxxx>
>> Unsubscribe : https://launchpad.net/~dhis2-users <https://launchpad.net/~dhis2-users>
>> More help   : https://help.launchpad.net/ListHelp <https://help.launchpad.net/ListHelp>
> 
> 
> 
> 
> -- 
> Martin Van Aken - Freelance Enthusiast Developer
> 
> Mobile : +32 486 899 652 <> 
> 
> Follow me on Twitter : @martinvanaken <http://twitter.com/martinvanaken>
> Call me on Skype : vanakenm
> Hang out with me : martin@xxxxxxxxxxxxxxxx <mailto:martin@xxxxxxxxxxxxxxxx>
> Contact me on LinkedIn : http://www.linkedin.com/in/martinvanaken <http://www.linkedin.com/in/martinvanaken>
> Company website : www.joyouscoding.com <http://www.joyouscoding.com/>

References