ЖизниЛЕНТА

Copyright © 2007 Шапель Павел

Sharepoint custom field

with 31 comments

Реально динамически-вычисляемого поля в Sharepoint-е создать нельзя! Ибо можно лишь задать некие условия для вычисления значений, но они вычисляются только раз.
И тому подтверждение множества линков под катом, с вариацией на тему создания custom field.

P.S. Смотрите комментарии…

Written by Pash

Июнь 4th, 2008 at 11:11 пп

Posted in Разработка

Tagged with

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

31 Responses to 'Sharepoint custom field'

Subscribe to comments with RSS

  1. В данном случае Автор не прав. Можно создать динамически-вычисляемого поле которое вычисляет свое значение (Custom field type) на основе других полей но для этого потребуются дополнительные усилия в виде написания Field Type Definition xml файла где можно реализовать логику по вычислению значения поля (JavaScript). В очень сложных вариантах можно использовать Ajax-технолигию (xmlHttpRequest) по получению значения.

    Alex

    28 Июн 08 at 12:53

  2. Уважаемый Alex
    В данном посте имелось ввиду что нельзя создать поле значение, которого каждый раз вычисляется на стороне сервера, при выдаче так сказать. JavaSript-ом на стороне клиента можно подгрузить вообще всё что угодно, но разве это правильно красиво? :)

    Pash

    28 Июн 08 at 13:13

  3. Ajax-технолигию (xmlHttpRequest) можно использовать для вызова web-service method’а который будет вычислять наше значение.

    С уважением,
    Alex

    Alex

    28 Июн 08 at 13:18

  4. C Ajax-м всё понятно, только для каждого поля тянуть данные с сервака…
    Хотя можно придумать и некую очередь чтобы делать один запрос по множеству полей…
    В общем это вариант создания динамического поля, только он не родной так сказать, а всё как-то больше с боку. А пост был (по крайне мере я его так видел) в контексте Lookup & Calculated fields.

    Тем не менее, спасибо за идеи!

    Pash

    28 Июн 08 at 13:28

  5. Ajax это для «тяжелых» полей, а так Field Type Definition xml файл в самый раз, тем более что для заказчика важен результат, а что за кадром – это проблема того кто разрабатывает :D

    P.S.
    Приятно узнать что у нас в РБ есть сайт с SharePoint тематикой.

    Alex

    28 Июн 08 at 13:48

  6. Мне в свою очередь приятно что кто-то (я так понимаю у нас в РБ) также интересуется SharePoint-м.

    Однако, при такой реализации динамичного поля, встаёт вопрос — что будет с такими динамичными полями при экспорте листа?…

    Pash

    28 Июн 08 at 14:07

  7. Да, как я посмотрел, при экспорте листа данные не передаются, но думаю ситуация решаемая. Первый способ которой приходит в голову организация собственного export-workflow.

    А насчет РБ – да я нахожусь в Минске.
    Сейчас занимаюсь Publishing-ом и SharePoint Designer 2007. Оказалась довольно таки хорошей вещью после более пристального внимания :D

    Alex

    Alex

    28 Июн 08 at 15:15

  8. Вот к сожалению и получается, что решение не нативное и как результат надо будет во многих многих местах перекрывать функционал.
    По крайне-мере если это делать для полноценного листа. Зато такой подход можно использовать в каких-либо более иных местах, webpart-х, аль ещё где.

    Pash

    28 Июн 08 at 15:39

  9. Не согласен. Думаю причина в том что в классе отвечающий за этот мой field не переопределен метод GetValue (в моем случае мне не нужен был export как таковой и GetValue возвращает пустую строку тк класс наследовался от SPTextField). Так что решение все таки native.

    Alex

    Alex

    28 Июн 08 at 18:04

  10. Насколько мне помнится вызов GetValue не будет происходить каждый раз при обращении к данным. Т.е. актуальность данных будет весьма сомнительная.
    Надо бы проверить, но под рукой нет ничего такого, я ваять пример сейчас нет желания. Но возможно понедельник расставит всё на свои места.
    Удачного выходного!

    Pash

    28 Июн 08 at 18:40

  11. Доброго всем времени суток! Помогите советом, пожалуйста! мне нужно, чтобы по значению из листбокса автоматически выбиралось имя пользователя…пробовал создавать вычисляемое поле, но имя пользователя в него нельзя поставить( Спасибо заранее!

    Дмитрий

    22 Фев 09 at 14:48

  12. Приветствую
    Чесно говоря не совсем понял вопроса..
    Чем не подходит стандартное lookup поле User?
    Опиши более подробно, что тебе (на ты ничего?) нужно.

    Pash

    23 Фев 09 at 10:35

  13. Ничего, конечно) У меня форма подачи запроса на обслуживание, там есть раскрывающийся список «Тип проблемы» (Оборудование, программа, сеть и т.д), нужно, чтобы в зависимости от выбранного типа проблемы автоматически задача назначалась человеку или группе, которая специализируется на этом типе проблемы.

    Дмитрий

    23 Фев 09 at 14:30

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

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

    P.S. Поле типа User имеет значение SPFieldUserValue или SPFieldUserValueCollection в зависимости разрешен мультивыбор или нет.

    Pash

    23 Фев 09 at 14:40

  15. А можно поподробней о EventReciever, пожалуйста? Или где почитать можно…

    Дмитрий

    23 Фев 09 at 14:46

  16. В частности тебе надо List Item Event Receiver
    поищи в msdn-м SDK по Sharepoint-у, там много инфы, например как то так
    http://msdn.microsoft.com/en-us/library/bb736146.aspx (video)

    Pash

    23 Фев 09 at 15:04

  17. Спасибо! Буду пробовать)

    Дмитрий

    23 Фев 09 at 15:10

  18. Не могу понять, я в этом деле новичек просто( List Item Event Receiver пишется в Visual Studio, а как его подвесить на форму в MOSS и как его связать с полем?

    Дмитрий

    23 Фев 09 at 15:23

  19. Event Receiver — исходя уже из названия, обработчик (получатель) события.
    В частности тебе необходимо обрабатывать события добавление нового item-а в лист (есть еще события изменения/удаления item-а). И в обработчике этого события выставлять нужные тебе значения в нужное опять-таки поле. Event Receiver может быть завязан на лист (обработка событий листа), feature и т.д.

    Вообщем копай матчасть. Успехов!

    Pash

    23 Фев 09 at 15:37

  20. Сделал без EventReceiver, но теперь новая проблема, Рабочий процесс не хочет назначать задачу группе, только отдельному пользователю…не сталкивались с такой проблемой?

    Дмитрий

    25 Фев 09 at 14:26

  21. А в листе задач, в поле, обозначающее на кого это задача назначается, разрешены группы?

    Pash

    25 Фев 09 at 16:01

  22. Да, выбрано Пользователи и группы

    Дмитрий

    26 Фев 09 at 15:12

  23. Ну тогда надобно более подробное описание твоей реализации назначения.

    Pash

    26 Фев 09 at 16:01

  24. На форме добавления заявки сделан листбокс – Тип проблемы, по значению в списке и выбирается пользователь (поле Кому назначено)Создан рабочий процесс, в нем условия Если Тип проблемы = ххх то в поле Кому назначено вставляем УУУ. Так вот с пользователем работает, а с группой не хочет, дает неизвестную ошибку в рабочем процессе.

    Дмитрий

    27 Фев 09 at 2:20

  25. Слегка уж запоздало, но надобно бы код, а так только по звездам могу предполагать :)

    Pash

    2 Мар 09 at 11:42

  26. Там и кода нет, как такогого) Рабочий процесс делал в Sharepoint Designer, условиями если в поле Тип проблемы: X, то в поле Кому назначено: Y

    Дмитрий

    4 Мар 09 at 3:35

  27. С такой проблемой не сталкивался, ибо workflow-в в Designer-е не делал :)
    Успехов!

    Pash

    4 Мар 09 at 10:23

  28. Да есть такая проблема. Чтобы происходило присвоение группы в поле кому назначено надо поправить права в самой группе. Сейчас у вас установлено настройка, состав группы могут просматривать только участники, если разрешить просмотр всем, то проблема решится.

    LuckyNum

    1 Дек 09 at 9:23

  29. Здравсвуйте.
    Вопрос довольно запоздалый и может немного не в тему.
    Есть форма Dashboard созданная с помощью Microsoft Office PerfomancePoint Server 2007 в Dashboard Designer. Там есть один dashboard с неким набором фильтров. При открытии разными пользователями устанавливается последнее значение фильтра в dashboard. Он вроде как сериализуется в виде xml файла в таблицу БД. Можно ли как нибуть создать событие, которое при открытии документа будет определять пользователя и устанавливать фильтры с которыми он обычно работает. Я представляю, что силами этого дизайнера это не сделать. С Sharepoint работаю впервые. Так вот собственно можно ли как-нибудь выгрузить данную форму в Visual studio 2005\2008 чтобы не писать код страницы с нуля.
    Буду очень благодарен за любую помощь. Спасибо

    Dmitry

    23 Апр 10 at 10:17

  30. Приветствую
    С Office PerformancePoint Server не работал, как следствие сходу не понятна связка с SharePoint-м. Посему вряд ли буду полезен ;)

    Pash

    23 Апр 10 at 10:36

  31. А может сталкивались с необходимостью настройки фильтров через SharePoint Api для других сторонних сервисов? Это больше как вопрос по Windows SharePointServices 3.0 Не могу понять как управлять фильтрами в нем… Т.е. фильтр имеет значение по умолчанию и каждый раз просто устанавливать это значение через апи при загрузке страницы – как самый простой вариант….

    Dmitry

    28 Апр 10 at 12:31

Leave a Reply