#xpath #xforms #orbeon
#xpath #xforms #orbeon
Вопрос:
У нас проблема с производительностью при использовании элементов управления for, которые получают число в формате $ dollars в качестве входных данных. Чтобы преодолеть эту проблему с производительностью, мы использовали вместо и реализовали следующую функциональность вычисления в привязке элемента управления.
<xforms:bind id="Amount"
nodeset="instance('sample_form')/Amounts/Amount"
calculate="if (. !=0)
then format-number(xs:double(.),'$#,##0.000')
else ."/>
Но проблема с приведенным выше кодом заключается в том, что он преобразует значение элемента управления в строковый тип, что приводит к ошибке в элементах управления, значение которых зависит от этого. Пожалуйста, предоставьте мне решение вышеуказанной проблемы или предоставьте лучшую рекомендацию для решения этой ситуации.
Ответ №1:
Если вы хотите показать только форматированное значение (что, как я предполагаю, имеет место, поскольку вы собираетесь использовать calculate
), то вы могли бы поместить это выражение, которое у вас есть на calculate
, внутри:
<xforms:output value="..."/>
Если вам нужны и ввод, и вывод, и вы хотели бы, чтобы значение, хранящееся в вашем экземпляре, было просто неформатированным числом, то я не думаю, что есть простой способ обойти использование <fr:currency>
, кроме как каким-то образом переопределить функциональность, предоставляемую <fr:currency>
. Если вам нужны и ввод, и вывод, то я бы порекомендовал вам изучить это подробнее, чтобы найти, а затем решить источник проблемы с производительностью.