InfoPath通過XPath求和

2021-04-12 14:19:24 字數 1235 閱讀 6287

給重複節點求和並不是infopath最強大的功能,像自定義順序。我們僅僅去建立一列重複表,然後對重複表中的一列進行求和。在一些時候這樣的求和很難被用到,因為實際情況中中間結果(重複列總合)不需要被儲存到資料來源中,而我們去做的是動態的計算橫向表中的求和值。這篇文章將給大家介紹怎樣通過一些工作實現此項功能

讓我們來簡單的看乙個例子:

通過利用方法來計算(price*quantity)的值,並把這個值付給lineitemtotal節點。然後我們建立乙個最終彙總的內容,並在新增上來的表示式框中使用內建sum功能

sum(my:group1

/my:lineitems

/my:lineitemtotal)

瞧,我們完成了,他將彙總當前lineitemtotal裡面的資料.

我們為什麼在這裡說這些簡單東西的理由:當然是為了一些複雜的事件了.

如果中間值的結果(這個元素是我們假定的)並沒有出現在我們的資料來源中,怎麼辦?這種情況只可能出現在你在操作乙個固定的schema或者你是乙個xml的純粹主義者,(至少我是

j),在你的xml中捨去那些沒必要的中間計算值.

我們的目標仍然是這樣的-但是資料來源不同了.

原來的lineitemtotal將以乙個表示式框的形式放在原來的文字框的位置上了;他的任務是計算簡單的(price*quantity).

但是這樣的計算結果怎麼彙總到最後的」order total」中呢?你首先肯定會本能的去想利用sum(price*quantity),可這樣做以後你會發現這個sum xpath功能其實僅僅計算出來的是乙個節點上的值…

讓我們一起回憶一下僅僅通過利用xpath來從頭到尾取值的技術吧.在這裡進行了詳細的描述.讓我們利用以下的方法來去給order total表示式付值:

sum(xdmath:eval(my:lineitems,」my:price 

*my:quantity」))

表示式寫出來了,相信大家有一些茫然,他是怎麼工作的呢?讓我們徹底的分析一下:

1)eval功能是來評估在橫向元素price*quantity結果的表示式中的內容(相當於上面的

ineitemtotal),

並在這個虛擬的節點中返回乙個值

.2)sum 功能是取得這些虛擬節點中的值

, 去求和

, 然後給我們乙個我們想要的值

.我會給大家乙個簡單的表單摸版,裡面有這個技術的執行,儲存xsn到本地後開啟.

這個方法工作在infopath 2003,2007,支援在瀏覽器中可能用到的表單摸版

java通過XPATH解析XML

日常開發過程中會遇到很多種xml檔案 source方面的解析 1 基於soap協議負載方式傳輸時伺服器會返回source,此時,需要將source解析成本地資料 jaxbcontext ctx jaxbcontext.newinstance user.class user物件 source resp...

C 通過XPath解析xml檔案

xpath語法講解 用xpath解析xml的用例在這裡 xpath裡面涉及到的一些引數的方法名 以上主要是我之前蒐集的,但是工作中還是遇到了一些小問題,比如說如何刪除乙個xmlnode。為此,我做了以下demo static void main string args removeall清除所有屬性...

apium 元素相同,通過拼接xpath實現定位

目的 編寫某個模組的自動化指令碼方案時,遇到問題 同乙個元素對應多個選單,選單的text不同,使用拼接xpath實現定位 環境 思路 這倆選單的id元素一致,xpath略有不同,無法通過id直接定位,也無法通過xpath直接定位 無法滿足需求 通過xpath拼接 text 實現定位 1 拼接xpat...