2009-10-22 6 views
1

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

Таблица имеет несколько полей; пользователи будут выбирать столбец «Идентификатор здания» в своей электронной таблице, вставить его в поле «Идентификатор здания» в таблице повторений, а затем форма InfoPath будет искать оставшуюся информацию о здании из источника данных, привязанного к элементу управления, используя идентификатор здания как ключ.

В настоящее время работает эта часть поиска повторяющихся таблиц: пользователь может ввести (путем ввода или вставки из Excel) одного идентификатора здания, нажать клавишу Tab, а таблица просмотрит остальную информацию. Затем они могут вставить новую строку и ввести второй идентификатор здания, намыть, полоскать, повторить. Это нормально для нескольких зданий, но не для десятков или сотен. Поэтому я ищу способ дать им вставить список и заполнить таблицу оттуда.

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

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

ответ

0

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

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

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

+0

Да, я боялся этого; Я не мог найти способ добавить строки без нажатия кнопки пользователем или с помощью кода. Я нашел несколько статей об автоматизации процесса развертывания, когда используются коды, но они выглядят довольно сложными. Мы могли бы решить это в следующем проекте. Тем временем, я думаю, что я придумаю альтернативу, например, сохранение списка Excel пользователя в источнике данных, таком как список SharePoint или таблица SQL Server, и получение формы из этого. Спасибо, что подтвердили! – Val

0

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

+0

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