Sharepoint custom field
Реально динамически-вычисляемого поля в Sharepoint-е создать нельзя! Ибо можно лишь задать некие условия для вычисления значений, но они вычисляются только раз.
И тому подтверждение множества линков под катом, с вариацией на тему создания custom field.
- Creating Custom Field Types
- v3 Creating Custom Field Types
- create custom field types for SharePoint
- walkthrough: Creating a Custom Field Type
- SharePoint – Destripando el Wiki (4)
- Limitation of a Calculated Column Type – It’s not dynamic but static
P.S. Смотрите комментарии…
В данном случае Автор не прав. Можно создать динамически-вычисляемого поле которое вычисляет свое значение (Custom field type) на основе других полей но для этого потребуются дополнительные усилия в виде написания Field Type Definition xml файла где можно реализовать логику по вычислению значения поля (JavaScript). В очень сложных вариантах можно использовать Ajax-технолигию (xmlHttpRequest) по получению значения.
Alex
28 Июн 08 at 12:53
Уважаемый Alex
В данном посте имелось ввиду что нельзя создать поле значение, которого каждый раз вычисляется на стороне сервера, при выдаче так сказать. JavaSript-ом на стороне клиента можно подгрузить вообще всё что угодно, но разве это
правильнокрасиво? :)Pash
28 Июн 08 at 13:13
Ajax-технолигию (xmlHttpRequest) можно использовать для вызова web-service method’а который будет вычислять наше значение.
С уважением,
Alex
Alex
28 Июн 08 at 13:18
C Ajax-м всё понятно, только для каждого поля тянуть данные с сервака…
Хотя можно придумать и некую очередь чтобы делать один запрос по множеству полей…
В общем это вариант создания динамического поля, только он не родной так сказать, а всё как-то больше с боку. А пост был (по крайне мере я его так видел) в контексте Lookup & Calculated fields.
Тем не менее, спасибо за идеи!
Pash
28 Июн 08 at 13:28
Ajax это для «тяжелых» полей, а так Field Type Definition xml файл в самый раз, тем более что для заказчика важен результат, а что за кадром – это проблема того кто разрабатывает :D
P.S.
Приятно узнать что у нас в РБ есть сайт с SharePoint тематикой.
Alex
28 Июн 08 at 13:48
Мне в свою очередь приятно что кто-то (я так понимаю у нас в РБ) также интересуется SharePoint-м.
Однако, при такой реализации динамичного поля, встаёт вопрос — что будет с такими динамичными полями при экспорте листа?…
Pash
28 Июн 08 at 14:07
Да, как я посмотрел, при экспорте листа данные не передаются, но думаю ситуация решаемая. Первый способ которой приходит в голову организация собственного export-workflow.
А насчет РБ – да я нахожусь в Минске.
Сейчас занимаюсь Publishing-ом и SharePoint Designer 2007. Оказалась довольно таки хорошей вещью после более пристального внимания :D
Alex
Alex
28 Июн 08 at 15:15
Вот к сожалению и получается, что решение не нативное и как результат надо будет во многих многих местах перекрывать функционал.
По крайне-мере если это делать для полноценного листа. Зато такой подход можно использовать в каких-либо более иных местах, webpart-х, аль ещё где.
Pash
28 Июн 08 at 15:39
Не согласен. Думаю причина в том что в классе отвечающий за этот мой field не переопределен метод GetValue (в моем случае мне не нужен был export как таковой и GetValue возвращает пустую строку тк класс наследовался от SPTextField). Так что решение все таки native.
Alex
Alex
28 Июн 08 at 18:04
Насколько мне помнится вызов GetValue не будет происходить каждый раз при обращении к данным. Т.е. актуальность данных будет весьма сомнительная.
Надо бы проверить, но под рукой нет ничего такого, я ваять пример сейчас нет желания. Но возможно понедельник расставит всё на свои места.
Удачного выходного!
Pash
28 Июн 08 at 18:40
Доброго всем времени суток! Помогите советом, пожалуйста! мне нужно, чтобы по значению из листбокса автоматически выбиралось имя пользователя…пробовал создавать вычисляемое поле, но имя пользователя в него нельзя поставить( Спасибо заранее!
Дмитрий
22 Фев 09 at 14:48
Приветствую
Чесно говоря не совсем понял вопроса..
Чем не подходит стандартное lookup поле User?
Опиши более подробно, что тебе (на ты ничего?) нужно.
Pash
23 Фев 09 at 10:35
Ничего, конечно) У меня форма подачи запроса на обслуживание, там есть раскрывающийся список «Тип проблемы» (Оборудование, программа, сеть и т.д), нужно, чтобы в зависимости от выбранного типа проблемы автоматически задача назначалась человеку или группе, которая специализируется на этом типе проблемы.
Дмитрий
23 Фев 09 at 14:30
Если тебе надо во время редактирования отображать человека или группу, которая специализируется на этом типе проблемы, то можно определить собственную форму для редактирования, а в ней воротить уже что заблагорассудится.
Если тебе необходимо лишь по факту назначать задачу тому или иному человеку или группе, в зависимости от выбранных данных, то на это дело подходит EventReciever. Вешаешь его на добавление элемента, а в обработчике уже для поля, на кого надо назначать, выставляешь необходимые тебе значения.
P.S. Поле типа User имеет значение SPFieldUserValue или SPFieldUserValueCollection в зависимости разрешен мультивыбор или нет.
Pash
23 Фев 09 at 14:40
А можно поподробней о EventReciever, пожалуйста? Или где почитать можно…
Дмитрий
23 Фев 09 at 14:46
В частности тебе надо List Item Event Receiver
поищи в msdn-м SDK по Sharepoint-у, там много инфы, например как то так
http://msdn.microsoft.com/en-us/library/bb736146.aspx (video)
Pash
23 Фев 09 at 15:04
Спасибо! Буду пробовать)
Дмитрий
23 Фев 09 at 15:10
Не могу понять, я в этом деле новичек просто( List Item Event Receiver пишется в Visual Studio, а как его подвесить на форму в MOSS и как его связать с полем?
Дмитрий
23 Фев 09 at 15:23
Event Receiver — исходя уже из названия, обработчик (получатель) события.
В частности тебе необходимо обрабатывать события добавление нового item-а в лист (есть еще события изменения/удаления item-а). И в обработчике этого события выставлять нужные тебе значения в нужное опять-таки поле. Event Receiver может быть завязан на лист (обработка событий листа), feature и т.д.
Вообщем копай матчасть. Успехов!
Pash
23 Фев 09 at 15:37
Сделал без EventReceiver, но теперь новая проблема, Рабочий процесс не хочет назначать задачу группе, только отдельному пользователю…не сталкивались с такой проблемой?
Дмитрий
25 Фев 09 at 14:26
А в листе задач, в поле, обозначающее на кого это задача назначается, разрешены группы?
Pash
25 Фев 09 at 16:01
Да, выбрано Пользователи и группы
Дмитрий
26 Фев 09 at 15:12
Ну тогда надобно более подробное описание твоей реализации назначения.
Pash
26 Фев 09 at 16:01
На форме добавления заявки сделан листбокс – Тип проблемы, по значению в списке и выбирается пользователь (поле Кому назначено)Создан рабочий процесс, в нем условия Если Тип проблемы = ххх то в поле Кому назначено вставляем УУУ. Так вот с пользователем работает, а с группой не хочет, дает неизвестную ошибку в рабочем процессе.
Дмитрий
27 Фев 09 at 2:20
Слегка уж запоздало, но надобно бы код, а так только по звездам могу предполагать :)
Pash
2 Мар 09 at 11:42
Там и кода нет, как такогого) Рабочий процесс делал в Sharepoint Designer, условиями если в поле Тип проблемы: X, то в поле Кому назначено: Y
Дмитрий
4 Мар 09 at 3:35
С такой проблемой не сталкивался, ибо workflow-в в Designer-е не делал :)
Успехов!
Pash
4 Мар 09 at 10:23
Да есть такая проблема. Чтобы происходило присвоение группы в поле кому назначено надо поправить права в самой группе. Сейчас у вас установлено настройка, состав группы могут просматривать только участники, если разрешить просмотр всем, то проблема решится.
LuckyNum
1 Дек 09 at 9:23
Здравсвуйте.
Вопрос довольно запоздалый и может немного не в тему.
Есть форма Dashboard созданная с помощью Microsoft Office PerfomancePoint Server 2007 в Dashboard Designer. Там есть один dashboard с неким набором фильтров. При открытии разными пользователями устанавливается последнее значение фильтра в dashboard. Он вроде как сериализуется в виде xml файла в таблицу БД. Можно ли как нибуть создать событие, которое при открытии документа будет определять пользователя и устанавливать фильтры с которыми он обычно работает. Я представляю, что силами этого дизайнера это не сделать. С Sharepoint работаю впервые. Так вот собственно можно ли как-нибудь выгрузить данную форму в Visual studio 2005\2008 чтобы не писать код страницы с нуля.
Буду очень благодарен за любую помощь. Спасибо
Dmitry
23 Апр 10 at 10:17
Приветствую
С Office PerformancePoint Server не работал, как следствие сходу не понятна связка с SharePoint-м. Посему вряд ли буду полезен ;)
Pash
23 Апр 10 at 10:36
А может сталкивались с необходимостью настройки фильтров через SharePoint Api для других сторонних сервисов? Это больше как вопрос по Windows SharePointServices 3.0 Не могу понять как управлять фильтрами в нем… Т.е. фильтр имеет значение по умолчанию и каждый раз просто устанавливать это значение через апи при загрузке страницы – как самый простой вариант….
Dmitry
28 Апр 10 at 12:31