1

Infopath に繰り返しテーブルがあります。フィールド変更イベントでは、問題の行のデータを使用して計算を実行する必要があります。コード ビハインド (C#) と Xpath でこれを行うにはどうすればよいですか?

たとえば、開始日と終了日があります。コード ビハインドでは、スパン内の時間数を計算する計算を行います。これは最初の行では機能しますが、後続の行では機能しません。これまでに書いた方法が最初の行でしか機能しないことはわかっていますが、これをすべての行で機能させるにはどうすればよいですか?

4

1 に答える 1

2

これには XPathNodeIterator を使用できます。例: これには XPathNodeIterator を使用できます。例えば:

        XPathNodeIterator nodes = MainDataSource.CreateNavigator().Select("/my:myFields/my:group1/my:group2", this.NamespaceManager);

        string field1 = string.Empty;
        string field2 = string.Empty;
        string field3 = string.Empty;

        foreach (XPathNavigator node in nodes)
        {
            field1 = node.SelectSingleNode("my:field1", this.NamespaceManager).Value;
            field2 = node.SelectSingleNode("my:field2", this.NamespaceManager).Value;
            field3 = node.SelectSingleNode("my:field3", this.NamespaceManager).Value;
        }

これにより、各フィールドの値が取得され、文字列変数がその値に設定されます。すべての値を連結したい場合は、これを変更する必要があります。次のような非常に簡単なことを行うことができます。

field1 = node.SelectSingleNode("my:field1", this.NamespaceManager).Value + " " + field1;
于 2012-07-16T14:13:50.473 に答える