2012-02-21 8 views
2

Я использую шаблон раздела, созданный Orbeon Form Builder, который я включил в другую форму, также созданную Form Builder. Когда в этой форме мы делаем шаблон раздела невидимым, он исчезает из экземпляра формы.Почему элементы для необязательного шаблона раздела отсутствуют?

Возможно ли сделать шаблон шаблона невидимым без потери его в форме экземпляра?

+0

Это звучит как ошибка для меня; Я попытаюсь воспроизвести и исследовать это завтра, и опубликую последующую информацию здесь. – avernet

+0

спасибо вам заблаговременно – trin86

ответ

1

Для каждого шаблона раздела Form Builder генерирует компонент XBL, который обертывает поля в этом разделе. В форме, использующей XBL, соответствующей шаблону раздела, в XML для экземпляра имеется только один элемент для всего раздела, а компонент XBL связан с этим элементом. Компонент XBL «знает», что XML для полей в разделе, и во время выполнения, когда он становится релевантным, он вставляет их внутри элемента для раздела. Следовательно, если раздел никогда не становится актуальным, эти поля будут отсутствовать в экземпляре.

Это поведение не согласуется с тем, что происходит для обычных разделов, но это не должно вызывать каких-либо особых проблем для Form Runner. Скажем, если вы сохраните данные без этих полей, отредактируйте их позже, и раздел станет релевантным, компонент XBL затем добавит элементы в экземпляр. По этой причине мы создали это issue.

+0

После нескольких тестов я просто обнаружил, что нет проблем, когда секция видна при загрузке формы, а затем скрывается во время выполнения. Проблема возникает только тогда, когда секция невидима при загрузке формы. – trin86

+1

Точно: при первом включении раздела элементы добавляются в экземпляр. Поэтому, если раздел имеет значение при загрузке формы, тогда элементы будут присутствовать в экземпляре. – avernet

+0

Планируется ли, что к экземпляру добавляются скрытые (или не имеющие значения) элементы? Потому что, как пользователь, я бы ожидал такого поведения. – Ben

1

Я не работает на Form Builder, но вы можете сделать раздел/поля невидимых с помощью

  1. <xforms:group> или
  2. с помощью relevant условия в определении связывания.

Если вы используете <xforms:group>, тогда раздел/полей не будет удален из экземпляра модели.

Если вы используете соответствующее условие, раздел будет удален из экземпляра модели, если соответствующее условие является ложным.

+0

Я подтверждаю, что вы сказали об использовании соответствующих. Поэтому я попытался скрестить компонент из шаблона раздела в группе xforms: this, как это показано ниже. "><компонент: myComponent />, но он работал так же, как если бы я использую соответствующее условие – trin86

Смежные вопросы