Как проверить более 5 полей в условии правила действия в infopath 2010 - PullRequest
1 голос
/ 06 марта 2012

Я работаю над формой / представлением infopath 2010 на основе списка.

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

Попытка сделать это и проверить условие позволяет мне проверять не более 5 полей одновременно.

Как установить хотя бы один из этих 7 флажковвыбран перед отправкой данных?

Любая помощь?Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 05 февраля 2013

Вы можете преодолеть это, изменив свое последнее условие на «Выражение» и используя «и» или «или», как необходимо для создания составного условия.Так, например, если вам нужно убедиться, что и field1, и field2 не пустые, вы должны использовать выражение:

     my:myFields/my:field1 != "" and my:myFields/my:field2 != ""

Если вам нужна помощь в определении правильного синтаксиса для вашего выражения, сначала установитеподнимите условие с помощью раскрывающихся списков (например, выберите field1 в первом раскрывающемся списке, затем «не пусто» во втором раскрывающемся списке), затем измените первое раскрывающееся меню на «Выражение» - каким бы ни было ваше условие,автоматически заполнить в поле для выражения.Вставьте это в текстовый редактор, а затем сделайте то же самое для остальных ваших условий.Добавьте и или или между ними по мере необходимости, и вы получите свое выражение!

Источник: http://www.infopathdev.com/forums/p/14871/52819.aspx

1 голос
/ 28 сентября 2018

У меня была похожая проблема, и я избегал использовать опцию «Выражение», потому что у меня было так много условий, чтобы проверить, прежде чем разрешить пользователю отправлять форму для определенных сценариев, и было бы очень сложно отлаживать и устранять неполадки.Я также рассмотрел решение Глена на основе суммы, потому что оно затрудняло поиск и устранение неисправностей, так как вы не можете точно определить, какое условие отсутствует, и вы не можете выполнять логические проверки того, что было выбрано или заполнено правильно.

MyРешением было установить текстовое поле CheckStatus и числовое поле CheckStatus-Value.Правила для проверенных полей добавят значения в поле CheckStatus, когда будут выполнены необходимые условия.И когда в поле CheckStatus-Value появится «магическое число» (6 в приведенном ниже примере), я разрешу пользователю отправить форму.Например, поля CheckStatus-Value и CheckStatus показаны ниже, но они будут скрыты, когда форма готова к производственному использованию: Поля CheckSum-Value и CheckSum

Затем для каждого требуемогоВ поле ввода я назначаю уникальную букву от «A» до «Z», или от «a» до «z», или от «0» до «9», и проверяю на требуемое условие.Таким образом, вы можете протестировать до 62 одновременных условий, хотя это будет немного сумасшедшим. Каждый раз, когда изменяется поле CheckStatus, запускается правило для подсчета количества значений и обновления CheckStatus-Value: Update CheckSum-Valueполе

ЕСЛИ условие истинно И поле CheckStatus уже не содержит уникальную букву / цифру, назначенную этому полю, тогда я добавляю присвоенный номер / букву (используя функцию concat) к CheckStatusполе.Если пустое значение является допустимым значением при определенных условиях, тогда я добавляю букву / цифру для поля при выполнении этого условия, поэтому форма, готовая к отправке, всегда имеет одно и то же значение в поле CheckStatus-Value.(Если действительное значение изменено на другое действительное значение, убедитесь, что буква / цифра добавляются только ОДИН РАЗ в поле CheckStatus.) Добавить значение A в поле CheckStatus ЕСЛИ условие имеет значение False, то я удаляюприсвоенный номер / буква (используя функцию перевода) из поля CheckStatus. Удалить значение A из поля CheckStatus

ЕСЛИ проверяемое поле (поле A) зависит от другого поля (поле B), я также добавляю правило поля A в поле Field-B, поэтому пользователю не нужно прикасаться к полю A, чтобы обновить CheckStatus.Будьте осторожны при копировании правил;помните, что InfoPath изменит имена полей автоматически!Я также добавил правила «Add-x» в правила загрузки форм (на вкладке «Данные»), чтобы обновлять CheckStatus при каждой загрузке записи.Надеюсь это поможет!-Steve

0 голосов
/ 08 марта 2012

Вот идея: используйте целочисленное поле и установите правило для каждого из ваших 7 флажков, которое добавляет 1 к полю.Тогда ваше окончательное правило проверки просто должно быть уверенным, что целочисленное поле больше нуля

(лучше также иметь правило вычитать 1, если флажок снят после проверки.)

-Glen

...