反饋已提交
網絡繁忙
如果資料庫表中某個欄位所存的資料為 XML 格式。如下圖所示:
那麼如何將存於 XML 欄位中的值讀取出來作為報表資料源使用呢。如下圖所示:
通程式式連結目標資料庫後,執行 SQL 查詢語句,將表資料全部查詢出來,透過一個資料提取 GetXmlDate類,將 XML 資料解析出來,將解析後的資料存成多個資料列,然後在設計器中建立程式資料集使用。
範例將實現 1.1 中的效果,將資料庫表內 XML 格式的資料提取出來使用,資料存在 MySql 資料庫的 xmltest 表中。表中每條 XML 記錄資料如下:
注:完成此範例前,需在資料庫準備一個含有 XML 類型資料的資料表,如 1.1 節中所示。
<Field><Name>MemoryFreeSize</Name><Type>int</Type><Value>1962</Value></Field> <Field><Name>MemoryTotalSize</Name><Type>int</Type><Value>2047</Value></Field> <Field><Name>MemoryUsage</Name><Type>int</Type><Value>4</Value></Field>
<Field><Name>MemoryFreeSize</Name><Type>Int</Type><Value>1999</Value></Field> <Field><Name>MemoryTotalSize</Name><Type>Int</Type><Value>2048</Value></Field> <Field><Name>MemoryUsage</Name><Type>Int</Type><Value>10</Value></Field>
<Field><Name>MemoryFreeSize</Name><Type>Int</Type><Value>2000</Value></Field> <Field><Name>MemoryTotalSize</Name><Type>Int</Type><Value>2050</Value></Field> <Field><Name>MemoryUsage</Name><Type>Int</Type><Value>15</Value></Field>
編譯程式前,需先建立一個 Java 工程環境,並且需要一個 Java 編輯器,如 Eclipse 或 idea 。
在編輯器工程中匯入 FineReport 工程 JAR 包。包括安裝的報表工程
%FR_HOME%/lib下的所有的包,
%FR_HOME%/server/lib 下的所有包,
%FR_HOME%/webapps/webroot/WEB-INF/lib下的所有包,
還要引入 JDK 下的的 tools.jar。詳細操作可參考:編譯Java程式
連結目標資料庫後,執行sql查詢語句,將 xmltest 表資料全部查詢出來,對於 ID、NAME 欄位的值我們將其直接存於新的結果集 ArrayList 中,對於 XML 欄位我們透過GetXmlDate類對其進行解析後再滾入 ArrayList 中。
1)在編輯器中編寫 Java 檔案 GetXmlDate.java,實現對於XML 欄位進行解析的功能。完整程式碼可參見:
https://code.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/data/GetXmlDate.java
2)在編輯器中定義類 XMLRead.java,繼承 AbstractTableData API,實現 getColumnCount、getColumnName、getRowCount、getValueAt 四個方法。完整程式碼可參見:
注:程式碼中的資料庫連結資訊和資料表資訊需要改成使用者自己存放 xmltest 表的資訊。
https://code.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/data/XMLRead.java
Java 檔案編寫完成後,在編譯器中首先編譯 GetXmlDate.java 然後再編譯 XMLRead.java。編譯透過後,將會在編譯器對應工程檔案儲存路徑下生成 class 檔案。如下圖所示:
將其放於WEB-INF/classes/com/fr/data下。
將以上編譯後生成的所有類檔案複製到 %FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\data工程目錄下。如下圖所示:
注:遠端設計時,本地設計器和遠端伺服器的工程下都需要放置程式資料集對應的 class 檔案。
建立普通報表,資料集管理面板建立程式資料集,選擇我們定義好的程式資料集 XMLRead.class 檔案。如下圖所示:
配置好程式資料源後便可以使用自訂的程式資料集,與其他類型的資料集使用方法相同,可以透過拖曳方法實現儲存格資料列綁定。如下圖所示:
以上資料庫表欄位為 XML 類型的資料就實現了轉換為報表資料源使用。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙