Hi,
I have a repeat set where I have some amount and in the bottom I want to display the total amount. I have said something like, <xf:output class="twms-total-value" value="format-number(sum(/laborDetail/hoursSpent), '#.00')"> </xf:output> However it is possible that some hours spent mite be empty, in which case I want to substitute 0 for empty while calculation. I tried something like, format-number( sum(if(number(/taskView/claim/serviceInformation/serviceDetail/laborPerformed/laborDetail/hoursSpent), '#.00') However this thing errors out saying that in a repeat row I should not use the number() function. Can someone tell me how this can be achieved? -- Regards, Kannan Ekanath -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Kannan
Try if(sum(/path/to/number) gt 0) then
format-number(sum(/path/to/number),'#.00') else ''
Ryan
Ryan
Puddephatt
-- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Ryan,
The suggestion of if(sum(/path/to/number) gt 0) then format-number(sum(/path/to/number),'#.00') doesnt work for me because the sum(/path/to/number) itself throws an error because the value is an empty "". The following error is thrown in the browser (If I use tools like firebug etc in firefox) <message>oxf:/ops/xforms/xforms-server.xpl, line 44, column 44, description executing processor: oxf:/ops/xforms/xforms-server.xpl, line 38, column 95, description reading processor output: null, line -1, column -1: Cannot convert string "" to a double Note that sum is failing and not the format, Do you have any suggestions for this? Regards, Kannan On 1/8/07, Ryan Puddephatt <[hidden email]> wrote:
-- Regards, Kannan Ekanath -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
add "not(empty(/path/to/number)) and" to the
if
Ryan
Puddephatt
-- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Ryan,
Apologies If I am not doing it right. Even with that the issue will still exist. Adding not(empty doesnt do the trick). To show you what I exactly want, take the file that I have attached with this email. This has some menu order items. Just clear some price in some row, you will see the error that I had mentioned. On 1/8/07, Ryan Puddephatt <[hidden email]> wrote:
-- Regards, Kannan Ekanath -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws Summation.xhtml (2K) Download Attachment |
Administrator
|
In reply to this post by Kannan Ekanath
Kannan,
Try something along this line: sum(for $hour in /laborDetail/hoursSpent return if ($hour = '') then 0 else $hour) -Erik [hidden email] wrote: > Hi, > I have a repeat set where I have some amount and in the bottom I want to > display the total amount. I have said something like, > <xf:output class="twms-total-value" > value="format-number(sum(/laborDetail/hoursSpent), > '#.00')"> > </xf:output> > > However it is possible that some hours spent mite be empty, in which > case I want to substitute 0 for empty while calculation. I tried > something like, > > format-number( > sum(if(number(/taskView/claim/serviceInformation/serviceDetail/laborPerformed/laborDetail/hoursSpent), > '#.00') > > However this thing errors out saying that in a repeat row I should not > use the number() function. Can someone tell me how this can be achieved? > -- > Regards, > Kannan Ekanath > > > ------------------------------------------------------------------------ > > > -- > You receive this message as a subscriber of the [hidden email] mailing list. > To unsubscribe: mailto:[hidden email] > For general help: mailto:[hidden email]?subject=help > ObjectWeb mailing lists service home page: http://www.objectweb.org/wws -- Orbeon Forms - Web Forms for the Enterprise Done the Right Way http://www.orbeon.com/ -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Thanks Erik,
It worked :) Regards, Kannan -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
Administrator
|
Wouldn't:
sum(/laborDetail/hoursSpent[. != '']) also work? Alex On 1/9/07, [hidden email] <[hidden email]> wrote: > Thanks Erik, > It worked :) > > Regards, > Kannan > > > -- > You receive this message as a subscriber of the [hidden email] > mailing list. > To unsubscribe: mailto:[hidden email] > For general help: mailto:[hidden email]?subject=help > ObjectWeb mailing lists service home page: http://www.objectweb.org/wws > > > -- Blog (XML, Web apps, Open Source): http://www.orbeon.com/blog/ -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
--
Follow Orbeon on Twitter: @orbeon Follow me on Twitter: @avernet |
This seems to be a better way :) It works !!!
Regards, Kannan -- You receive this message as a subscriber of the [hidden email] mailing list. To unsubscribe: mailto:[hidden email] For general help: mailto:[hidden email]?subject=help ObjectWeb mailing lists service home page: http://www.objectweb.org/wws |
what about when a user accidentally enters a string character? An error is thrown on the calculation even if there is a bind on the nodeset of type="xs:decimal". How do you prevent a calculation from running if there is an error? I have attempted to do a count of fr-errors-instance/error and if != 0 do not run but this does not work. Any suggestions - what am I missing. Thanks.
|
Never mind I figured it out - set an xforms:output using value attribute with a conditional test to see if the sum is 'castable as xs:integer'. If it is castable, perform calculation, string appears as error on xform. Thanks.
|
Free forum by Nabble | Edit this page |