Поделиться через


Инструкции по настройке форм внешних списков с помощью Microsoft InfoPath

Дата последнего изменения: 16 апреля 2010 г.

Применимо к: SharePoint Server 2010

Microsoft Business Connectivity Services (BCS) автоматически создает формы SharePoint по умолчанию для просмотра, создания и изменения элементов из внешнего списка. Однако возможности настройки этих основных форм веб-частей могут быть ограничены. Если требуется существенная настройка или добавление декларативных правил или бизнес-логики в формы, можно заменить формы SharePoint создания, просмотра и обновления внешнего списка формами Microsoft InfoPath 2010.

Замена форм SharePoint по умолчанию формами InfoPath

  1. В браузере откройте внешний список.

  2. На сервера щелкните Изменить список. Внешний список откроется в Microsoft SharePoint Designer 2010.

  3. На ленте нажмите кнопку Разработка форм в InfoPath, как показано на Рис. 1.

    Рис. 1. Замена форм SharePoint по умолчанию формами InfoPath

    Разработка форм в InfoPath

  4. Создайте форму с настраиваемыми элементами. Для простых полей элементы управления создаются автоматически. Однако при использовании сложных типов потребуется перетащить элементы управления с панели инструментов.

  5. После завершения создания в меню Файл выберите Быстрая публикация, чтобы повторно опубликовать форму на сервере.

    Теперь можно перейти к внешнему списку и создать элемент или представление элемента. Вместо формы SharePoint по умолчанию отображается новая форма InfoPath.

Настройка внешнего вида форм

С помощью InfoPath можно настроить внешний вид и поведение форм внешних списков. В видео, посвященном настройке форм списков SharePoint в InfoPath 2010 (Возможно, на английском языке) руководитель группы по продукту InfoPath Даниэл Брокман (Daniel Broekman) показывает, как можно быстро настроить форму списка SharePoint с помощью InfoPath 2010. Для замены формы внешнего списка SharePoint по умолчанию на форму InfoPath можно выполнить аналогичную процедуру и изменить поведение и внешний вид формы.

Добавление декларативных правил или бизнес-логики в формы

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

Отображение сложных типов

Сценарий с заменой формы SharePoint на форму InfoPath 2010 полезен и в случае, если требуется отобразить и изменить сложные типы, которые определены во внешней системе. Например, рассмотрим поле Address, возвращаемое средством SpecificFinder внешнего типа контента. Поле Address может быть сложным типом во внешней системе и содержать несколько подтипов, как показано на рис. 2.

Рис. 2. Сложный тип в SharePoint Designer 2010

Сложные типы в SharePoint Designer

Обратите внимание на предупреждения, отображаемые в SharePoint Designer. Если Microsoft Business Connectivity Services (BCS) обнаруживает этот вид сложного типа в возвращаемом параметре SpecificFinder, он игнорирует это поле в форме внешнего списка SharePoint. На рис. 3 показана страница просмотра элемента по умолчанию внешнего списка, содержащего этот сложный тип Address. Обратите внимание, что поле Address пропущено и не отображается в форме. Кроме того, если поле Address является обязательным полем для операций создания или обновления во внешней системе, нельзя создать пользовательские элементы или изменить их.

Рис. 3. Страница просмотра элемента по умолчанию внешнего списка, содержащего сложный тип

Просмотр элемента, содержащего сложный тип

В этом случае можно преобразовать форму в InfoPath. Поскольку SpecificFinder содержит сложный тип (Address в рассматриваемом примере), Business Connectivity Services не создают форму со всеми требуемыми полями и элементами управления. Вместо этого создается пустая форма InfoPath без добавления полей в форму, как показано на рис. 4.

Рис. 4. Пустая форма InfoPath

Пустая форма Infopath

Чтобы устранить эту проблему, перетащите поля dataFields из раздела Поля области задач. Однако это помогает только в случае, если все подтипы сложного типа могут отображаться с помощью элементов управления, доступных в InfoPath. Например, все подтипы поля Address могут отображаться с помощью элемента управления полем Text.

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

После завершения создания формы ее можно сохранить и быстро опубликовать в текущем расположении. Теперь в форме внешнего списка отображаются все поля. На рис. 5 показана форма просмотра элемента внешнего списка после преобразования в форму InfoPath. Для этого потребовалось только перетащить элементы управления dataFields в область формы.

Рис. 5. Форма просмотра элемента внешнего списка, преобразованная в форму InfoPath

Просмотр увеличенной формы элементов в InfoPath

Обратите внимание, что отображается поле Address и все его подтипы. Если внешний тип контента задан операциями Create и Update, то с помощью формы внешнего списка можно создать и изменить настраиваемые элементы.

Встраивание средства выбора внешних элементов

Для сценариев, в которых пользователю требуется выбрать внешний элемент, например выбор клиента с именем Джон из списка клиентов, InfoPath 2010 предоставляет средство выбора внешних элементов, которое можно использовать для встраивания средства выбора в форму. Средство выбора внешних элементов предоставляет функции выбора для внешних элементов на сервере и в клиентских приложениях Microsoft Office.

При настройке ассоциаций для внешнего типа контента в хранилище метаданных BDC и форме внешнего списка для одного из внешних типов контента, содержащего внешний ключ, Business Connectivity Services автоматически добавляет средство выбора внешних элементов в форму для этого поля. Например, рассмотрим сценарий клиент/заказ. Предположим, что внешние типы контента и ассоциации уже настроены. При переносе в InfoPath формы внешнего списка Order Business Connectivity Services по умолчанию размещает средство выбора внешних элементов для поля CustomerID в форме Order. Это позволяет быстро находить требуемых клиентов при работе с заказами.

Однако если автоматически созданная форма InfoPath пуста, поскольку SpecificFinder содержит один или несколько сложных типов, потребуется перетащить средство выбора внешних элементов с ленты и задать требуемые свойства. Дополнительные сведения см. в статье Встраивание средства выбора внешних элементов в форму InfoPath.

Создание нескольких представлений формы

Форма внешнего списка InfoPath может иметь несколько представлений. Это особенно удобно для сценариев однократной записи, в которых внешняя система не позволяет обновить поле после его создания. В этих случаях можно создать два представления: одно для операции создания, а другое представление только для чтения для операции обновления. Чтобы показать правильность работы представления формы, можно обновить страницы ASPX для операций создания и изменения.

Добавление выделенного кода или правил

Наконец, в форму InfoPath можно добавить выделенный код или правила . (Дополнительные сведения о том, как добавить выделенный код в форму InfoPath, см. в справочнике разработчика InfoPath 2010 для шаблонов форм. Дополнительные сведения о том, как добавить правила в форму InfoPath, см. в справке InfoPath 2010.) Для выполнения дополнительной бизнес-логики можно добавить выделенный код или правила. Например, можно добавить выделенный код или правила для обеспечения правильного ввода почтового индекса. Кроме того, можно использовать объектную модель Business Connectivity Services в коде для доступа к внешней системе или хранилищу метаданных BDC в коде. Формы с выделенным кодом должны быть полностью доверенными для клиентов и запускаться с правами администратора.

Важное примечаниеВажно!
  • Создание форм внешних списков InfoPath следует начинать с автоматически создаваемых форм InfoPath, предоставляемых Business Connectivity Services.

  • Форма внешнего списка не может подключаться к другим источникам данных, т. е. нельзя иметь дополнительное подключение в форме.

  • Если SpecificFinder при преобразовании формы внешнего списка в форму InfoPath имеет сложные типы, создается пустое представление. Поэтому потребуется перетащить элементы управления dataFields из области задач.

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

  • В форму InfoPath можно добавлять декларативные правила или бизнес-логику, для чего не потребуется писать дополнительный код.

  • В форму InfoPath можно добавить выделенный код для добавления дополнительной бизнес-логики. Кроме того, можно использовать объектную модель Business Connectivity Services в коде для доступа к внешним системам или хранилищу метаданных BDC в коде.

  • Внешние страницы ASPX на сервере могут указывать на настраиваемые формы InfoPath. Однако такие формы не отображаются на клиентах при переходе внешнего списка в автономный режим.

  • Если версии внешнего типа контента и формы внешнего списка не совпадают, возможно, форма не будет работать на сервере и клиенте при переходе в автономный режим. В этом случае необходимо повторно опубликовать форму на сервере.