Альтернативное решение для <fr: currency> - PullRequest
0 голосов
/ 03 мая 2011

У нас есть проблема производительности, использующая для элементов управления, которая получает число в формате $ долларов в качестве входных данных. Чтобы устранить эту проблему с производительностью, мы использовали вместо нее и реализовали следующую функцию вычисления в привязке элемента управления.

<xforms:bind id="Amount" 
             nodeset="instance('sample_form')/Amounts/Amount" 
             calculate="if (. !=0) 
                        then format-number(xs:double(.),'$#,##0.000') 
                        else ."/>

Но проблема с приведенным выше кодом заключается в том, что он преобразовывает значение элемента управления в тип String, что приводит к ошибке в элементах управления, значение которых зависит от этого. Пожалуйста, предоставьте мне решение для вышеуказанной проблемы или предоставьте лучшую рекомендацию для решения этой ситуации.

1 Ответ

0 голосов
/ 03 мая 2011

Если вы хотите показать только отформатированное значение (что, как я полагаю, имеет место, поскольку вы думаете об использовании calculate), то вы можете поместить это выражение в calculate внутри:

<xforms:output value="..."/>

Если вам нужны как ввод, так и вывод, и вы хотите, чтобы значение, хранящееся в вашем экземпляре, было просто неформатированным числом, то я не думаю, что есть простой способ обойти <fr:currency> otherчем-то переопределить функциональность, предоставляемую <fr:currency>.Если вам нужны как входные, так и выходные данные, я бы порекомендовал вам дополнительно изучить это, чтобы найти, а затем устранить источник проблемы с производительностью.

...