新しい SharePoint リスト アイテムを作成する InfoPath 2010 フォームがあります。基本的に、フォームには 1 つの入力フィールドと 1 つの出力フィールドがあります。入力フィールドに何かが入力されると、なんらかの計算が実行され、その結果が出力フィールドに表示されます。計算はやや複雑なので、ルールではなくコードで行う必要があります。
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 を使用) を試しましたが、結果はゼロでした。また、結果を別のフィールドに割り当てて、「フィールド値の設定」ルールを起動して遊んでみましたが、これも役に立ちませんでした。
フォームを送信すると、出力値は問題なく保存されますが、送信する前にユーザーに出力フィールドを見てもらいたいです。
何か案は?ありがとう。