反饋已提交

網絡繁忙

XML資料集

1. 概述

XML 資料集,就是指資料源是一系列的 XML 檔案。我們可以將這些檔案作為資料來源,用 FineReport 來呈現這些資料,並做相應的資料分析。

%FR_HOME%webrootWEB-INF eportlets目錄下建立 frtest.xml,其內容如下,下面我們來看下正文資料集的製作步驟:



<?xml version="1.0" encoding="UTF-8"?>
<frtest>
    <Customers>
    <Name>ALFKI</Name>
<type>ALfreds Futterkiste</type>
<value>90</value>
</Customers>
    <Customers>
    <Name>ANATR</Name>
<type>Ana Trujillo Emparedados y helados</type>
<value>90</value>
</Customers>
</frtest>

注:如果要使用已存在的 XML 檔案作為資料集,需把相應的檔案copy到%FR_HOME%webappswebrootWEB-INF eportlets 目錄下。

2. 定義檔案資料集

下面我們來為大家介紹下如何定義檔案資料集。

點選資料集下面的「加號」,選擇「檔案資料集」,如下圖:

2.1 選擇 XML 檔案

彈出檔案資料集對話框後,正文類型選擇「XML」。點選本地檔案後面的選擇按鈕,選擇已經存在的 frtest.xml 檔案,右側的關鍵節點面板即會自動重新整理獲取 XML 中的所有節點資訊,並將節點以樹狀結構的形式顯示出來,如下圖所示:

注:若一節點,有多個同名同級子節點,但各個子節點的葉子節點不同(儲存資料的節點標籤),取葉子節點的並集,如下圖所示:

另:如果 XML 資料集中有 2 個根節點,那麼 FineReport 會自動在頂部新增一個沒有名稱的空根節點。

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
    <book>
    <author>J K.Rowing</author>
<title>HMWHERE</title>
<author>J K.Rowing</author>
<author>J K.Rowing</author>
</book>
    <book>
    <author>J K.Rowing</author>
<author>J K.Rowing</author>
<author>J K.Rowing</author>
<price>19</price>
</book>
</bookstore>

2.2 節點選擇

FineReport 的 XML 檔案資料集支援將檔案中的所有節點以樹狀結構顯示出來,但是不能像儲存程式一樣傳回多個結果集,將每個節點的資料均顯示在一個資料集中,一次只能傳回一個子節點中的所有資料,想要顯示哪個子節點的資訊就選中該子節點即可,最後資料來源於選中節點的子節點、子節點的子節點直至葉子節點。

<?xml version="1.0" encoding="GBK"?>
<PickBillPrintEntity>
    <modifyTime>2013-08-11</modifyTime>
<exprossCode>STO</exprossCode>
<expressName>申通E物流</expressName>
    <pickDetail>
  <PrintPickDetailEntity>
    <address>陳村鎮白陳路錦龍工業儲存格</address>
<city>佛山市</city>
<contactName>曹淑儀</contactName>
<deliveryOrderNo>668267627204339729</deliveryOrderNo>
<district>順德區</district>
<prov>廣東省</prov>
<qty>1.0</qty>
  </PrintPickDetailEntity>
  <PrintPickDetailEntity>
    <address>陳村鎮白陳路錦龍工業儲存格</address>
<city>佛山市</city>
<contactName>曹淑儀</contactName>
<deliveryOrderNo>668267627204339729</deliveryOrderNo>
<district>順德區</district>
<prov>廣東省</prov>
<qty>2.0</qty>
  </PrintPickDetailEntity>
    </pickDetail>
<packDetail>
  <PrintPackEntity>
    <baocai>SJZX*1</baocai>
<itemCode>694852470667309</itemCode>
<goodDese>電話</goodDese>
<marksNumber>220cm*240cm</marksNumber>
<qty>1.0</qty>
<orderCount>1.0</orderCount>
<skuCount>1.0</skuCount>
  </PrintPackEntity>
  <PrintPackEntity>
    <baocai>SJZX*1</baocai>
<itemCode>694852471667309</itemCode>
<goodDese>時光印記</goodDese>
<marksNumber>220cm*240cm</marksNumber>
<qty>1.0</qty>
<orderCount>1.0</orderCount>
<skuCount>1.0</skuCount>
  </PrintPackEntity>
  <PrintPackEntity>
    <baocai>SJZX*1</baocai>
<itemCode>694852472667309</itemCode>
<goodDese>維多利亞</goodDese>
<marksNumber>200cm*230cm</marksNumber>
<qty>2.0</qty>
<orderCount>1.0</orderCount>
<skuCount>2.0</skuCount>
  </PrintPackEntity>
  <other>
    <otherNo>1</otherNo>
  </other>
    </packDetail>
</PickBillPrintEntity>

注:如果編碼類型選擇 UTF-8,預覽的時候中文字元可能會出現亂碼,這時你需將編碼類型換成 GBK 或其他類型即可。

其傳回資料集中的資料遵循以下五個規則:

  • 選中節點只有葉子節點,則葉子節點的並集為資料集欄位;

選中節點只有一個非葉子節點的子節點,則此子節點的葉子節點為資料集欄位,如選中 PickDetail,效果與選中 PrintPickDetailEntity 一致;

  • 選中節點有多個子節點(非葉子節點),此時按第一個子節點來計算。如選中 pactDetail,有多個子節點(PrintPackEntity 和 Other),此時按照第一個子節點“PrintPackEntity”來計算;

  • 選中節點既有葉子節點,又有普通子節點(非葉子節點),此情況為一對多,(其中葉子節點為“一”,普通子節點的葉子節點為“多),則資料集欄位為所有葉子節點加第一個普通子節點的葉子節點,資料內容:其中“一”跟隨“多”來擴展,如選中根節點 PickBillPrintEntity,他有三個葉子節點和兩個子節點(pickDetail和 PacDetail,選第一個),資料如下圖,顯示其三個葉子節點和第一個子節點中的資料:


  • 若同一葉子節點有多個值,用“;”隔開,如下圖,author 這個欄位的值為:James McGovern;Per Bothner;Kurt Cagle;James Linn;Vaidyanathan Nagaraian。



注:必須選中一個節點,否則點選確定後預覽為空。

範例中只有一個子節點 Customers,我們這裏選中父節點 frtest,子節點 Customers 或者葉子節點的任何一個,其返注回的結果都一樣,那麼就選中 Customers 子節點,點選預覽按鈕,如下圖:

2.3 效果查看

設定完後,可以看到範本資料集中會增加一個名為 'File1' 的資料集,如下圖:



3. 動態 XML 資料集

其製作步驟與 Excel 資料集相同。

4. 遠端 XML 資料集

遠端 XML 資料集有兩種:

  • 透過 JSP 呼叫,其實現思路與 Excel 資料集相同,詳細請參考 遠端 Excel 資料集

  • 直接透過 URL 呼叫 XML 檔案。

下文介紹直接透過 URL 呼叫 XML 檔案。 

4.1 直接呼叫 XML 檔案

直接呼叫 XML 檔案,可以透過在 URL 中輸入:http://ip:埠/應用名稱/xml檔案來呼叫

注:請使用英文為 XML 檔案命名,否則會連結失敗。

假設 Tomcat 環境下的 WebReport 工程目錄下存在上面範例中用的 frtest.xml,下面可以在 URL 中輸入:http://localhost:8075/WebReport/frtest.xml,如下圖所示:


點選關鍵節點面板的重新整理按鈕,讀取 XML 檔案中而的資料,然後選中需要使用的節點,選擇規律與本地 XML 檔案一致。

5. 注意事項

不支援 Unicode 十進制編碼值為 183、215、247 的字元,會導致  XML 檔案資料集無法載入,查詢 Unicode 碼錶,發現對應的三個字元為:· × ÷

解決方法:刪掉 XML 裏面的這三個字元即可,或者使用 <![CDATA[xxx]]> 包裹起來


附件列表


主題: 資料準備
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙