Реализация мастер / Детали отношения с использованием настраиваемых списков

Форум пользователей часто как такие вопросы, как это:

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

SharePoint обеспечивает некоторые из коробки средства поддержки видов бизнес-требований как.

В целом, один связь двух списков вместе с помощью столбца подстановок. Список содержит сведения о заголовке счета-фактуры и список B содержит сведения о счете.

Используйте дополнительные списки для поддержки номера клиента, номера продукта, и т.д..

Используйте запрос содержимого веб-части (в MOSS только) и/или веб-части для создания объединенного представления списков представления данных. Службы отчетов SQL Server (SRS) также доступен для отчетности стороны его.

Однако, Существуют некоторые важные ограничения, которые сделают его трудно использовать чистые функции out-of--box для что-нибыдь которое даже умеренно сложных. К ним относятся:

  • Размер соответствующих подстановок перечисляются vs. "хитрость" тип столбца подстановок. Тип столбца подстановок представляет себя на UI по-разному в зависимости от ли вы включили множественного выбора или нет. В любом случае, out-of--box управления показывает все доступные элементы из исходного списка. Если в списке Источник 1,000 элементы, Это собирается быть проблемой. Элемент поиска не страница через эти пункты. Вместо этого, он тянет все из них в элементе управления. Это делает для очень неловко пользовательского интерфейса как с точки зрения ввода данных и производительность.
  • Поиск "тянуть обратно" один столбец информации. Вы никогда не можете отступить более одного столбца данных из списка источник. К примеру, нельзя выбрать клиента "12345" и отображения числа, а также имя и адрес заказчика, в то же время. Поиска показывает только клиента, номер и ничего больше. Это делает для неудобно и сложно пользовательский интерфейс.
  • Отсутствие коммуникации внутри формы. Я писал об этом здесь. Нельзя реализовать каскадных раскрывающихся списков, условно включить/отключить поля, и т.д..
  • Не каскадное удаление или встроенный ссылочной целостности. SharePoint обрабатывает пользовательские списки как независимых образований и не позволяют связать их друг с другом в традиционном смысле ERD. Например, SharePoint позволяет создать два настраиваемых списков, "клиента" и «заголовок счета». Можно создать счет заголовок ссылки обратно на клиент в списке клиентов. Затем, Вы можете удалить клиента из списка. Из коробки, нет никакого способа предотвратить это. Для решения такого рода проблем, обычно используется обработчиков событий.

Это может показаться мрачно, но я хотел бы по-прежнему использовать SharePoint как отправной точки для создания такого рода функциональности. Хотя есть пробелы между то, что вам нужно в растворе, SharePoint позволяет нам для заполнения этих пробелов, используя инструменты такие, как:

  • Обработчики событий. Использовать их для обеспечения ссылочной целостности.
  • Пользовательские столбцы: Создавать пользовательские типы столбцов и использовать их вместо по умолчанию столбец подстановок. Добавление разбиения по страницам, Буферизация и возможности AJAX сделать их реагировать.
  • BDC. Мосс только позволяет нам запрос, другие SharePoint списков с Улучшенный пользовательский интерфейс для столбца подстановок обычной. BDC также могут выйти на задней части серверного приложения. Позволяет избежать репликации BDC. Вместо того чтобы реплицировать сведения о клиентах из задней части ERP системы, Вместо этого используйте BDC. BDC функции обеспечивают приятный пользовательский интерфейс тянуть эту информацию непосредственно из системы ERP, где он принадлежит и позволяет избежать хлопот по поддержанию решение репликации.

    Резервный контроллер домена — это функция Мосс (не имеется в WSS) и сложно настроить.

  • ASP.NET веб-формы: Создайте полнофункциональный с поддержкой AJAX форму, использующий модель и/или веб-службы объектов SharePoint использовать списки SharePoint обеспечивая весьма быстродействующего пользовательского интерфейса.

Последний вариант может чувствовать себя, как вы начинаете с нуля, но учитывать тот факт, что платформы SharePoint начала работы вам следующие ключевые особенности:

  • Модель безопасности с сопровождением.
  • Система меню с сопровождением.
  • "Главной таблицы" (т.е.. Настраиваемые списки) с безопасностью, Встроенный обслуживание и аудита.
  • Поиск.
  • Средства интеграции серверной части (BDC).

Если вы начинаете с новой пустой проект в visual studio, у вас есть много инфраструктуры и сантехники для построения прежде чем вы получите ближе к SharePoint предлагает.

Я верю, что Microsoft намеревается расширить в этом направлении разработки приложений SharePoint. Это кажется естественным продолжением существующей базы SharePoint. Приложение Microsoft CRM обеспечивает значительную расширяемость типов, необходимых для поддержки разработки приложений заголовок/подробности. Хотя эти функции находятся в CRM, Технология очевидно доступен для разработчиков SharePoint, и я надеюсь, что это будет сделать свой путь в продукт SharePoint к концу 2008. Если кто имеет знание или понимание в этом, Пожалуйста, оставьте комментарий.

</конец>

5 мысли о «Реализация мастер / Детали отношения с использованием настраиваемых списков

  1. Пол Galvin

    Raghu, Я не думаю, что есть ли простой способ сделать это. Я хотел бы сосредоточиться на обучение пользователей, когда использовать какой-либо из них и может дать им подсказка с именем содержание самого типа. Я не думаю, что вы действительно можете ногтей это один, технически.

  2. Raghu написал:
    Я создаю realationship родитель/потомок с помощью двух типов контента и пользовательский список, как описано в выше комментарий. Но у меня есть проблема; Мне нужно сделать недоступными на уровне элемента типа контента Item недоступен на уровне папки и тип содержимого папки. Пожалуйста, руководство меня на этом. Спасибо…
  3. Майкл Викерс

    Это немного клудж, но я использую ASP.Net dropdown, который тени «раскрывающийся список подстановок" генерируемые SharePoint. Пункты источник данных на основе списка, содержащий элемент подстановки ASP.Net раскрывающийся список, что позволяет мне использовать поле ID как значение и столбец моего выбора в качестве отображаемого текста. Я не связывать ASP.Net раскрывающегося списка поля подстановок потому, что он генерирует ошибки на стороне сервера.

    На странице загрузки я использую javascript чтобы назначить правильное значение в раскрывающемся списке ASP.Net, и затем присоединить события onchange выпадающего меню для присвоения новых значений соответствующего раскрывающегося списка поиска SharePoint. Я на самом деле скрыть строку, содержащую раскрывающегося списка SharePoint.

    Один последний вещь — из-за SharePoint предоставляет тупой поиска выпадающее меню, когда количество элементов получает прошлом 20 Я использую объект настраиваемой оболочки для получения/установки значения раскрывающегося списка. У меня есть блог пост подробно этот процесс здесь:

    http://www.idiotsyncrasies.com/2007/12/lookup-list-dropdowns-in-sharepoint.aspx

    Одобрительное восклицание,

    Майкл

  4. Давид

    Можно создать тип содержимого для заголовка счета на основе типа содержимого папки и затем создать другой счет тип содержимого и добавить оба в список SharePoint. Это фактически создает отношения родитель-потомок, который позволит вам создать несколько счетов на основе содержимого типа счета, которые живут под типом содержимого заголовка счета-фактуры, которая дает вам и мгновенного связь между двумя элементами и если заголовок счета-фактуры, элемент списка является удалить все дочерние элементы счета внутри этой папки будут удалены. Можно также указать, что тип контента быть доступны только из папки. Этот подход аналогичен как обсуждение библиотека работает и очень полезно для этого типа отношения между элементами. Обработчики событий и код с некоторыми ограничениями, но в целом поможет быстро простое решение.

Оставить ответить Raghu написал: отменить ответ

Ваш электронный адрес не будет опубликован. Обязательные поля помечены *