2012-08-03 45 views
0

我有一個InfoPath 2010表單來創建一個新的Sharepoint列表項。本質上,該表單具有一個輸入字段和一個輸出字段。如果在輸入字段中輸入了某些內容,則執行一些計算,我希望結果顯示在輸出字段中。由於計算有點複雜,我需要在代碼中執行,而不是通過規則。在基於代碼的計算後刷新InfoPath字段

private void CalculateOutput() 
{ 
    XPathNavigator main = MainDataSource.CreateNavigator(); 
    XPathNavigator service = main.SelectSingleNode("my:meineFelder/my:serviceValue", NamespaceManager); 
    double serviceValue = service.ValueAsDouble; 
    double output = 3*serviceValue; // much abbreviated version 

    // output now has the correct value 
    XPathNavigator outputNav = main.SelectSingleNode("my:meineFelder/my:output", NamespaceManager); 

    //Remove the "nil" attribute (otherwise we get an error when the field is a double instead of a string) 
    if (outputNav.MoveToAttribute("nil", "http://www.w3.org/2001/XMLSchema-instance")) outputNav.DeleteSelf(); 

    outputNav.SetValue(output.ToString()); 
} 

我的問題是,一切工作正常在InfoPath預覽,但一旦我部署的形式,並在瀏覽器的輸出字段沒有更新運行它,也就是我看不到我的計算結果。

我試過了.ReplaceSelf(用OuterXML),結果爲零。我也玩過將結果分配給另一個字段,從而發射「設置字段值」規則,也無濟於事。

如果我提交表單,輸出值保存確定,但我真的很希望用戶在提交之前看到輸出字段。

任何想法? Thx很多。

回答

0

在瀏覽器中啓用形式的情況下,請確保您已設置的「回傳設置」刷新「始終」

要做到在其上回發,則觸發控制這一權利點擊。 (在你的情況下服務價值)。轉到瀏覽器表單選項卡並將傳回設置設置爲Always