1

当我将字段添加到表单时,如何根据旧字段在 InfoPath 表单中预填充新字段。

在我的 InfoPath 表单中,我有一个名为:“描述”的字段名称。现在我添加了另一个字段:“SummaryDescription”。假设从描述字段中获取前 10 个单词。

即使我添加了字段和逻辑,SharePoint 数据库中的现有表单数据也不会被修改。


编辑

@PatrickPitre

非常感谢您的快速回复。

我正在处理一个基于 Web 的 InfoPath 表单(Forms Services)。是的,我的计算机中确实安装了 Visual Studio 2008。

我需要做的一件事是修改现有的基于 Web 的 InfoPath 表单,即在旧表单的基础上再添加三个字段。添加字段后,当用户单击 Sharepoint 中已有的现有表单时,我需要确保这些新添加的字段不为空。我必须将现有字段中的前 200 个单词说“描述”并将其插入新字段“SummaryDescription”。

到目前为止我做了什么:

  1. 我将这三个新字段添加到基于 Web 的 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))
) 

但我根本无法将值添加到该字段。

这是我所做的屏幕截图。

在此处输入图像描述

我尝试了很多不同的方法。而且我很确定“SummaryDescription”是空白的,但我无法获得要显示的值

“Sharepoint 数据库”是什么意思?我认为基于 Web 的 InfoPath 表单中的所有内容都存储在某种数据库中。如我错了请纠正我。

非常感谢。

4

1 回答 1

0

仅仅通过扩展 InfoPath 表单的架构和逻辑并不意味着任何预先存在的数据(填写的表单)都会自动升级。

你有几个选择

  • 使用 XSLT 或自定义升级应用程序处理现有 XML 表单以转换 XML;
  • 利用表单代码隐藏中的VersionUpgrade事件来执行任何升级步骤。

主要区别在于,在第一种情况下,您可以进行批量升级,而在后一种情况下,它是在打开现有表单时按需进行的。

于 2011-12-21T23:06:32.870 回答