使用java?

XML資料集,就是指資料來源是一系列的xml檔案。而我們就是要將這些檔案作為資料來源,用java excel報表FineReport來呈現這些資料,並做相應的資料分析。

工具/原料

大小:148.2M 適用平臺:windows/linux

java excel報表FineReport7.1.1

方法/步驟

假設當前報表環境\WebReport\WEB-INF\reportlets目錄下已經存在frtest.xml.,其內容如下,下面我們來看下文字資料集的製作步驟:

使用java excel報表時,如何定義檔案資料集

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

使用java excel報表時,如何定義檔案資料集

選擇xml檔案

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

使用java excel報表時,如何定義檔案資料集

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

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

使用java excel報表時,如何定義檔案資料集

節點選擇

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

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

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

使用java excel報表時,如何定義檔案資料集

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

使用java excel報表時,如何定義檔案資料集

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

使用java excel報表時,如何定義檔案資料集

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

使用java excel報表時,如何定義檔案資料集

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

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

使用java excel報表時,如何定義檔案資料集

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

使用java excel報表時,如何定義檔案資料集

效果檢視

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

使用java excel報表時,如何定義檔案資料集

相關問題答案