2017-03-03 83 views
0

我有一個使用XML文件輸入的用Word編寫的報告卡。在XML文件中,如果學生在所有三個三學期都保持在同一部分,則該類將有一個節點;如果他們在三個月更換部分,則每個部分都會有一個節點。節點看起來像這樣(大大簡化):在MSWord郵件合併中彙總XML數據

<ReportCardSectionFB Abs1="2" Abs2="11" CourseID="ELMATH1" CourseTitle="Math" PeriodStart="3" TeacherName="Jones, Jennifer" TermCode="Year" SectionID="ELMATH1-4" /> 

<ReportCardSectionFB Abs1="1.50" Abs2="6" CourseID="ELMATH1" CourseTitle="Math" PeriodStart="3" TeacherName="Smith, Tina" TermCode="Year" SectionID="ELMATH1-3" /> 

有XML中無指示哪個三個月節點所屬。

在Word文檔中,我們用下面的郵件合併命令拉沒有數據:

{MERGEFIELD "ReportCardSectionFB[@PeriodStart='3']/ @Abs1" \# 0.# \* MERGEFORMAT } 

那不是在這種情況下工作:它僅會從第一個節點沒有數據它跨越說到,即:2.0。是否有辦法獲得所有第3階段的@ Abs1的總和,即:3.5?如果不是的話,是否有辦法在第3期獲得最後的@ Abs1,即:1.5

+0

你有沒有嘗試在'sum()'中包裝整個xpath? – har07

+0

我得到各種錯誤,這取決於我放置sum()的位置(圍繞整個XPath表達式,圍繞@ Abs1等)。任何建議的功能應該去哪裏? –

+0

正如我所說,正確的xpath 1.0表達式應該是'sum()',總和(ReportCardSectionFB [@ PeriodStart ='3']/@ Abs1)''。另請參見xpath測試程序中的[演示](http://xpatheval.apphb.com/0I6Bg6Q4J) – har07

回答

0

我建議您使用此第三方產品,該產品可以使用xml作爲輸入並且能夠將其與MS Word模板進行合併。我也比內置Word的郵件合併功能強大得多。你可以看到一些例子here

0

您也可以嘗試總結Synergy中的缺席情況 - AttDef1,2等下面有一個新的複選框,它將數據範圍內的所有缺失加起來 - 包括整個日期範圍的全天數據,而不考慮部分註冊或部分時間段。這樣,每個部分的缺席應該是相同的,如果這對您的區域有效。

您也可以在Word中嘗試使用SET函數將MERGEFIELDS嵌套爲書籤,然後使用Word運算符函數添加書籤。