表格製作軟體FineReport教程:[23]主從填報表?

下面就通過表格製作軟體FineReport來介紹。

工具/原料

表格製作軟體FineReport7.1.1

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

方法/步驟

問題描述

如下圖通過單個報表實現主子表的業務邏輯,上面為訂單資訊,資料來自訂單表;下面是該訂單的明細,資料來自於訂單明細表,通過訂單id進行關聯。

修改上方訂單資訊及明細資料時,資料將分別回填至對應的資料表中。

像這樣資料來自於多個數據源,填報時資料回填到多個表中的報表,我們稱之為多源填報表。

表格製作軟體FineReport教程:[23]主從填報表

實現思路

首先通過設定過濾條件,將子表與主表關聯起來,然後通過定義多個內建sql將資料回填到不同的資料表中。

增加資料集

新建工作簿,增加資料集ds1,SQL語句為:SELECT * FROM [訂單]。

再增加一個數據集ds2,SQL語句為:SELECT * FROM [訂單明細]。

表樣設計

按照下圖所示設定表樣,並將對應的資料列拖入到對應的單元格中:

表格製作軟體FineReport教程:[23]主從填報表

在D8單元格中填入公式:=round(sum(H12) + B6,2)。

注:公式的意義在於應付金額為數量*進價*(1-折扣),為什麼要使用round函式可檢視Round函式章節。

在H12單元格中填入公式:=C12 * D12 * (1 - E12)。

給B4,D4,F4以及A12單元格增加資料字典設定。

引數設定

點選模板>報表引數,增加一個引數名為ID的報表引數,預設值為10001。

過濾條件設定

給A3設定過濾條件,過濾為訂單ID等於引數$ID。

行高列寬設定

將A3的行高與H12的列寬隱藏。

單元格編輯屬性設定

下拉框

設定B4,D4,F4,A12為下拉框,其資料字典都選擇資料庫表,選擇對應的實際值與顯示值。

數字

設定B6,B12,C12,D12,E12的控制元件型別為數字型。

文字型

設定D6和F6的控制元件型別為文字型。

按鈕

設定F12和G12的控制元件型別分別為插入行以及刪除行按鈕,其指定單元格都為A12。

報表填報屬性設定

按照下圖所示給報表增加兩個內建SQL。

內建SQL1:

表格製作軟體FineReport教程:[23]主從填報表

內建SQL2

表格製作軟體FineReport教程:[23]主從填報表

效果檢視

點選填報預覽,查詢訂單號為10001的資料,效果如下:

表格製作軟體FineReport教程:[23]主從填報表

修改子表,修改數量與進價,點選提交,提示成功。重新整理瀏覽器,再選擇10001,可以看到資料已經改變,如下圖:

表格製作軟體FineReport教程:[23]主從填報表

多個內建SQL的執行順序

若一個填報模板中定義了多個內建SQL,其執行順序會按照定義的順序執行,若在執行其中一個內建SQL時出錯,會停止下面內建SQL的執行並對已執行的內建SQL進行回滾,回滾具體請檢視報表填報屬性。

教程, 軟體, 表格, 報表, 主從,
相關問題答案