Как добавить существующую информацию о полях в недавно добавленное поле infoPath - PullRequest
1 голос
/ 19 декабря 2011

Как предварительно заполнить новые поля в базе данных InfoPath на старых полях, когда я добавляю поля в форму.

В моей форме InfoPath у меня есть имя поля: «Описание».Теперь я добавил еще одно поле под названием «SummaryDescription».Предполагается, что первые 10 слов будут взяты из поля «Описание».

Несмотря на то, что я добавил поле и логику, существующие данные формы в базе данных SharePoint не изменяются.


Редактировать

@ PatrickPitre

Большое спасибо за быстрый ответ.

Я имею дело с веб-формой InfoPath (Forms Services).Да, на моем компьютере установлена ​​Visual Studio 2008.

Одна из вещей, которые мне нужно сделать, - это изменить существующую веб-форму InfoPath, то есть добавить еще три поля к старому.Когда я добавляю поля, мне нужно убедиться, что эти новые поля не пустые, когда пользователь щелкает по существующей форме, которая уже находится в Sharepoint.Я должен взять первые 200 слов в существующем поле сказать «Описание» и вставить его в новое поле «SummaryDescription».

Что я сделал до сих пор:

  1. Я добавил эти три новых поля в веб-форму InfoPath и опубликовал на одном тестовом сервере.Я могу просматривать недавно добавленные поля в существующей форме.

  2. Я пытаюсь использовать правило в InfoPath, чтобы помочь мне достичь того, что мне нужно сделать.Я проверяю, являются ли новые поля пустыми или нет.Если это так, возьмите поля в SummaryDescription и добавьте значение.

Это код:

concat(
substring((string-length(Description)), 1, ((string-length(Description)) <= 200) * (string-length(Description))), 
substring(number(201), 1, (not(string-length(Description))) * number(201))
) 

Но я не могу добавить значение в поле вообще.

Это скриншот того, что я сделал.

enter image description here

Я пробовал много разных способов.И я почти уверен, что «SummaryDescription» пусто, но я просто не смог получить значение для отображения

Что я подразумеваю под «базой данных Sharepoint»?Я думал, что все в веб-форме InfoPath хранится в какой-то базе данных.Поправьте меня если я ошибаюсь.

Большое спасибо.

1 Ответ

0 голосов
/ 22 декабря 2011

Простое расширение схемы и логики формы InfoPath не означает , что означает, что любые ранее существующие данные (заполненные формы) будут автоматически обновлены.

У вас есть несколько вариантов

  • Обработка существующих форм XML с помощью XSLT или пользовательского приложения обновления для преобразования XML;
  • Используйте событие VersionUpgrade в коде формы для выполнения любых шагов обновления.

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

...