Преобразование даты в xforms

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

По умолчанию дата хранится в формате CCYY-MM-DD. Я хотел бы иметь еще один узел (temp-transaction-date), который будет обновляться в формате MMM/DD/CCYY в событии xforms-value-changed.

  <xforms:instance id="form-instance">
      <attributes>
         <transaction-date></transaction-date>
         <temp-transaction-date></temp-transaction-date>
      </attributes>
  </xforms:instance>


  <xforms:bind id="transaction-date" nodeset="instance('form-instance')/transaction-date" type="xforms:date" />



  <td>
     <xforms:input bind="transaction-date">
        <xforms:action ev:event="xforms-value-changed">
            <xforms:setvalue ref="instance('form-instance')/temp-transaction-date" value="?"/>
        </xforms:action>
     </xforms:input>
  </td>

Пожалуйста, дайте мне знать, как я могу установить значение в формате марта/09/2011 или есть альтернативный способ добиться того же.


person Thangamani J    schedule 09.03.2011    source источник


Ответы (1)


Вы можете сделать это с помощью <xforms:bind calculate="…"> и функции format-date():

<xforms:bind nodeset="temp-transaction-date"
    calculate="format-date(../transaction-date), '[MNn,*-3]/[D01]/[Y]')"/>
person avernet    schedule 11.03.2011