2012-07-13 71 views
1

我在Infopath中有一個重複表格。在字段更改事件中,我需要執行計算來處理相關行中的數據。我如何在代碼隱藏(C#)和Xpath中解決這個問題?Infopath重複表格 - 從當前行獲取字段

例如,我有一個開始日期和結束日期。在代碼後面做一個計算來計算跨度中的小時數。這適用於第一行,但不適用於後續行。我知道迄今爲止我編寫它的方式只適用於第一行,但我如何使這項工作適用於所有行?

+0

或者(如果你不希望訴諸後面的代碼),你可以做原始日期差異與字段解析的字段。然後,您可以使用內置的規則(爲您保留重複行)。如果您堅持使用代碼,或者在別處已經有代碼,那麼只需使用其中一個答案中給出的XPathNodeIterator即可。 – ktharsis 2012-07-16 21:21:12

回答

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; 
相關問題