報表中心FineReport中如何動態改變填報數據庫表?

客戶的用戶群體很大,涵蓋範圍很廣,為了數據安全,所以將不同區域的數據存在不同的數據庫表中,這些數據表的表結構完全一樣(即表的字段名,字段類型等等設置完全一樣)。所以在數據填報錄入時,需要根據用戶所在的區域,將用戶錄入的數據存入不同的數據庫表中,如果不同區域使用不同的模板,會加大開發和後期維護的工作量,那麼怎麼才能在一張模板中實現,根據區域的不同,將數據填報只不同的數據庫表中呢,也就是說根據參數將數據存入不同的數據庫?下面就通過報表中心FineReport來進行簡單介紹。

工具/原料

報表中心FineReport7.1.1

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

方法/步驟

新建一張空白模板,如下圖所示,往模板中添加控件:

報表中心FineReport中如何動態改變填報數據庫表

控件類型與單元格的對應關係如下圖:

報表中心FineReport中如何動態改變填報數據庫表

添加參數

點擊模板>模板參數,添加兩個參數base和table,其中base參數用來傳遞數據庫的名稱,table參數用來傳遞表名,如下圖:

報表中心FineReport中如何動態改變填報數據庫表

切換到參數設計面板,將剛剛添加的2個參數全部添加到面板中,base控件和table控件均使用下拉框,如下圖:

由於FineReport內置的數據連接只有一個FRDemo,故這裡的base參數就直接使用FRDemo,不變更其值,只改變table參數的值。base參數下拉框的默認值為FRDemo,無需數據字典。

報表中心FineReport中如何動態改變填報數據庫表

table參數下拉框的默認值為訂單,數據字典,如下圖:

報表中心FineReport中如何動態改變填報數據庫表

報表填報屬性設置

點擊模板>報表填報屬性,添加一個內置SQL,數據庫後面輸入=$base,表後面輸入=$table,然後點擊智能添加字段,會彈出一個參數輸入框,如下圖:

數據庫base參數輸入FRDemo,表table參數輸入訂單。

注:由於參與動態填報的數據庫中的數據表中與單元格綁定的字段都是一致的,所以隨便選擇一組在數據庫中存在的數據庫名和表名稱即可,主要是為了獲取需單元格綁定的數據表字段。

報表中心FineReport中如何動態改變填報數據庫表

選擇需要填報入庫的字段,然後點擊智能添加單元格,將模板總的字段與數據表字段綁定起來,並設置訂單ID為主鍵,如下圖:

報表中心FineReport中如何動態改變填報數據庫表

效果查看

保存模板,點擊填報預覽,如下圖,數據庫由於只有一個值,無需選擇,即base參數為FRDemo。

注:base參數也是可以改變的,只需要給其賦值即可。

數據表選擇訂單

web端參數界面上數據表選擇訂單,即base參數為訂單,點擊查詢,再填報一條記錄,提交入庫,如下圖,即可在訂單表中看到多了一條剛剛插入的記錄,而S訂單表中則沒有:

報表中心FineReport中如何動態改變填報數據庫表

數據表選擇S訂單

web端參數界面上數據表選擇S訂單,即base參數為S訂單,點擊查詢,再填報一條記錄,提交入庫,如下圖,即可在S訂單表中看到多了一條剛剛插入的記錄,而訂單表中則沒有:

報表中心FineReport中如何動態改變填報數據庫表

相關問題答案