2011-12-19 119 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

相關問題