2011-12-19 87 views
1

如何在基于旧字段的InfoPath表单中预填充新字段,并将字段添加到表单中。如何将现有字段信息添加到新添加的infoPath文本框?

在我的InfoPath表单中,我有一个名为“Description”的字段名称。现在我添加了另一个名为“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)) 
) 

但我不能将值添加到外地的。

这是我所做的屏幕截图。

enter image description here

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

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

非常感谢。

+1

您如何看待VSTO,并用一些C#代码让自己的手变脏? – 2011-12-20 05:26:48

+0

@PatrickPitre我愿意用C#代码弄脏我的手。只要我能够更新字段。我在Sharepoint很新。如果你能带领我走向正确的方向,我将不胜感激。 – yyc2001 2011-12-20 06:11:26

+1

好的,首先:您是在处理InfoPath客户端本身还是基于Web的InfoPath表单(Forms Services)?其次,你是否安装了Visual Studio(VS 2008,最好的情况,但VS 2010也可以)。另外,你能解释一下你所做的更好吗?此外,你是什么意思的“SharePoint数据库”? – 2011-12-20 06:28:35

回答

0

刚通过延伸InfoPath表单的架构和逻辑并不意味着任何预先存在的数据(填充的形式)将是自动的升级。

您有几种选择

  • 过程与XSLT或定制升级应用程序转换XML现有的XML形式;
  • 在表单的代码隐藏中使用VersionUpgrade事件来执行任何升级步骤。

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

+0

谢谢你的回应。我在Sharepoint和InfoPath中很新。如果我使用XSLT处理现有的XML表单,如何将修改表单返回到Sharepoint。我的意思是我知道如何从Sharepoint中提取所有表格,但我不太清楚如何将其还原。 – yyc2001 2011-12-22 03:59:36

相关问题