Есть ли способ добавить данные из нескольких строк в повторяющуюся таблицу InfoPath?

Мои пользователи используют Excel для составления специальных списков принадлежащих нам зданий. Я создаю форму InfoPath для управления контрактами на эти здания. Я ищу способ разрешить моим пользователям указывать нужные им здания в Excel и вставлять этот список в элемент управления повторяющейся таблицей формы InfoPath.

В таблице несколько полей; пользователи должны выбрать столбец Building ID в своей электронной таблице, вставить его в поле Building ID в повторяющейся таблице, а затем форма InfoPath будет искать оставшуюся информацию о здании из источника данных, привязанного к элементу управления, используя идентификатор здания в качестве ключ.

Часть поиска в повторяющейся таблице в настоящее время работает: пользователь может ввести (путем ввода или вставки из Excel) один идентификатор здания, нажать Tab, и таблица найдет остальную информацию. Затем они могут вставить новую строку и ввести второй идентификатор здания, вспенить, ополоснуть и повторить. Это нормально для горстки зданий, но не для десятков или сотен. Итак, я ищу способ позволить им вставить список и заполнить таблицу оттуда.

Если они не могут вставить непосредственно в повторяющуюся таблицу, могу ли я вставить их в многострочный текстовый элемент управления, а затем проанализировать его с помощью выражения XPath? Как бы выглядел этот XPath? Одно последнее ограничение: нет кода программной части C # или VB - на данный момент мы решили, что логистика развертывания форм с выделенным кодом слишком сложна для текущего проекта.

Любая помощь приветствуется ...


person Val    schedule 22.10.2009    source источник


Ответы (2)


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

Единственный способ создать дополнительные записи в повторяющейся таблице - это вручную нажать вкладку «Вставить дополнительную строку» в нижней части таблицы.

Я настоятельно рекомендую использовать программный код, чтобы пользователь мог вставить свои данные Excel с разделителями табуляции из буфера обмена в поле; проанализируйте его на стороне сервера; и используйте эти данные вместе с процедурой для доступа к MainDataSource формы и таким образом добавьте дополнительные строки.

person gn22    schedule 22.10.2009
comment
Ага, я этого боялся; Я не мог найти способ добавить строки без нажатия пользователем кнопки или с помощью кода. Я нашел несколько статей об автоматизации процесса развертывания при использовании кода программной части, но они выглядят довольно сложными. Возможно, мы займемся этим в следующем проекте. А пока я думаю, что придумаю альтернативу, например, сохранение списка Excel пользователя в источнике данных, таком как список SharePoint или таблица SQL Server, и чтение формы из него. Спасибо за подтверждение! - person Val; 23.10.2009

Если вы извлечете исходные файлы из информационного пути, одним из документов будет файл template.xml. это будет содержать данные для вашей формы инфопатологии. используйте макрос Excel, чтобы открыть шаблон как XML-документ и добавить данные из электронной таблицы Excel. затем вы можете разрешить пользователю открывать файл самостоятельно или открывать его за него. Просто способ обойтись без кода.

person Nathan Fisher    schedule 22.10.2009
comment
Что ж, я не буду отрицать это, потому что это технически допустимое решение, но с точки зрения удобства использования это совершенно непрактично. Когда я обнаруживаю, что обращаюсь к подобным решениям, я думаю, это признак того, что я использую неправильную технологию. Вместо того, чтобы идти по такому пути, пора либо отказаться от функции, либо найти совершенно другой способ достижения цели с использованием существующей технологии, либо реализовать запрошенную пользователем функцию напрямую с использованием другой технологии. - person Val; 26.10.2009