none
Автозаполнение поля формы RRS feed

  • Вопрос

  • Есть форма создания элемента.

    В нем есть такие поля: "Время начала встречи" и "Время окончания встречи".

    Как при создании нового элемента автоматически добавлять в поле "Время окончания встречи" + 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:19

Все ответы

  • "Из коробки" SharePoint не предоставляет такой функционал.

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

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

    1. Своя собственная InfoPath-форма (замена для формы создания элемента)
    2. JavaScript, добавленный на форму создания элемента
    3. Своя собственная веб-часть вместо стандартной формы создания
    4. 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:19