Лучший отвечающий
Автозаполнение поля формы

Вопрос
-
Есть форма создания элемента.
В нем есть такие поля: "Время начала встречи" и "Время окончания встречи".
Как при создании нового элемента автоматически добавлять в поле "Время окончания встречи" + 3 часа ко "Времени начала встречи"?
15 января 2012 г. 12:41
Ответы
-
Я бы из выше перечисленного использовал бы JavaScript. На мой взгляд проще всего.
Рисовать всю форму целиком ради двух полей мне кажется не совсем правильно, а если использовать кастомный филд, то потом будет довольно сложно отображать эту встречу в представлении календаря.
По поводу JS, по ссылке есть описание функций, которые довольно просто позволяют читать/записывать значение полей на форме http://sharepointjavascript.wordpress.com/2010/05/28/get-or-set-value-for-sharepoint-field-in-newform-editform-and-dispform-get-only-in-dispform/
Исходники самих функций в самом конце статьи
- Предложено в качестве ответа IAfanasovModerator 15 января 2012 г. 18:06
- Помечено в качестве ответа Roman Zhukov 22 января 2012 г. 12:04
15 января 2012 г. 14:23 -
В SPD2010 выгляди как то так:
Действия "Добавить время к дате" и "Задать поле в текущем элементе". И делаете автозапуск рабочего процесса при создании нового элемента.
Как результат:
При создании элемента я заполнил только "время 1". Остальное сделал РП.
- Изменено Йурра 23 января 2012 г. 14:35
- Помечено в качестве ответа Шкутов Михаил 23 января 2012 г. 17:10
23 января 2012 г. 14:19
Все ответы
-
"Из коробки" SharePoint не предоставляет такой функционал.
Если вы готовы допустить что на форме создания автоподстановка значения в поле "Время окончания встречи" не критично, то вы можете использовать валидацию.
В другом случае без определенных знаний не обойтись для решения такой тривиальной задачи. вот некоторые способы которые вам смогут помочь:
- Своя собственная InfoPath-форма (замена для формы создания элемента)
- JavaScript, добавленный на форму создания элемента
- Своя собственная веб-часть вместо стандартной формы создания
- Custom Field, который позволит ввести как дату начала так и дату окончания.
Список выше организован в порядке возрастания сложности (имхо)
Я бы порекомендовал использовать валидацию, но если заказчика не переубедить то InfoPath.
Think -> Search -> Ask -> Think again.15 января 2012 г. 13:31 -
На сервере SP Foundation 2010, поэтому формы InfoPath не получится создать.
Буду смотреть в сторону JavaScript, потому как валидация совсем не подходит.
15 января 2012 г. 13:43 -
Я бы из выше перечисленного использовал бы JavaScript. На мой взгляд проще всего.
Рисовать всю форму целиком ради двух полей мне кажется не совсем правильно, а если использовать кастомный филд, то потом будет довольно сложно отображать эту встречу в представлении календаря.
По поводу JS, по ссылке есть описание функций, которые довольно просто позволяют читать/записывать значение полей на форме http://sharepointjavascript.wordpress.com/2010/05/28/get-or-set-value-for-sharepoint-field-in-newform-editform-and-dispform-get-only-in-dispform/
Исходники самих функций в самом конце статьи
- Предложено в качестве ответа IAfanasovModerator 15 января 2012 г. 18:06
- Помечено в качестве ответа Roman Zhukov 22 января 2012 г. 12:04
15 января 2012 г. 14:23 -
Все верно, если Foundation то javascript проще и быстрее.
Так как выше указана ссылка на один из примеров как изменить значение, (опередили :))
тогда вот вам пример как изменить\добавить форму создания элемента.
Think -> Search -> Ask -> Think again.15 января 2012 г. 14:31 -
Вариант с Sharepoint Designer не подходит? Создаете в нем рабочий процесс и при сохранении элемента добавляется 3 часа. Проверил, работает. Или у вас версия ШП не позволяет?
23 января 2012 г. 6:55 -
Как именно это сделать?23 января 2012 г. 7:48
-
В SPD2010 выгляди как то так:
Действия "Добавить время к дате" и "Задать поле в текущем элементе". И делаете автозапуск рабочего процесса при создании нового элемента.
Как результат:
При создании элемента я заполнил только "время 1". Остальное сделал РП.
- Изменено Йурра 23 января 2012 г. 14:35
- Помечено в качестве ответа Шкутов Михаил 23 января 2012 г. 17:10
23 января 2012 г. 14:19