Показать/скрыть метки в раскрывающемся списке XForms

Привет, я пытаюсь использовать XPath для динамического отображения/скрытия параметров в раскрывающемся списке XForms.

Вот XML с моим выпадающим списком:

<xml_someField>
  <label>Podmiot</label>
  <hint/>
  <help/>
  <alert/>
  <item>
    <label>1</label>
    <value>1</value>
  </item>
  <item>
    <label>2</label>
    <value>2</value>
  </item>
  <item>
    <label>3</label>
    <value>3</value>
  </item>
  <item>                  
    <label>4</label>
    <value>4</value>
  </item>
</xml_someField>

В основном у меня есть other_field, которые дают мне вывод, например, - 1, 1 2, 1 3, 1 2 3 4 и т. Д. в зависимости от того, что я проверяю в другом поле со списком.

Итак, в моем раскрывающемся списке в calculate я написал выражение XPath

if(//other_field != '') then 
if(//other_field castable as xs:integer) then 
     //other_field
    else .
else
    false()

Если я получаю из other_field только одно число - 1, 2, 3 или 4, это работает, оно заполняет мое xml_someField выбранным числом, но если я получаю больше одного, например, - 2 3 4 или 1 3 4, это дает мне выбрать все 4 варианта.

Все, что я хочу, это когда я получаю 1 3 4, чтобы в моем раскрывающемся списке отображались варианты 1, 2 и 3 без 4.

Я могу распознать номер, используя

if(contains(//othe_field, '1') then

Но что дальше, есть ли способ показать/скрыть метку или значение элемента?

//other_field/item/label[text() = '1'] = false()

И я должен написать это в рассчитать или лучше в ограничении?


person michalavis    schedule 25.02.2014    source источник


Ответы (1)


Все, что я хочу, это когда я получаю 1 3 4, чтобы в моем раскрывающемся списке отображались варианты 1, 2 и 3 без 4.

Используйте ограничение:

 constraint=". &lt; 4"

И я должен написать это в вычислении или, может быть, лучше в ограничении?

Используйте constraint, потому что рассчитанные значения автоматически становятся доступными только для чтения.

Ссылки

person Paul Sweatte    schedule 02.06.2014