當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

主從表填報

1. 概述

1.1 問題描述

在實際填報表設計中,主從表是常見的一種填報場景,主表中的一條記錄對應從表中的多條記錄,例如「訂單表」和「訂單明細表」,「訂單表」的一個訂單可能對應「訂單明細表」中的多條産品數據,通過「訂單 ID」字段進行關聯。

修改上方訂單信息及明細數據時,數據将分别回填至對應的數據表中。

像這樣數據來自於多個數據源,填報時數據回填到多個表中的報表,也可以稱之爲多源填報表。

1.2 實現思路

首先通過設置過濾條件,将表與表關聯起來,然後通過定義多個内置 SQL 提交将數據回填到不同的數據表中。

2. 示例

2.1 數據準備

新建普通報表,新建兩個數據庫查詢,SQL 查詢語句分别爲:

ds1:SELECT * FROM 訂單

ds2:SELECT * FROM 訂單明細

2.2 報表設計

2.2.1 表格樣式設計

按照下圖所示設置表樣,并将對應的數據列拖入到對應的單元格中:

1612490670708972.png

将 B4、B6、B8 單元格的「左父格」均設置爲 A3 單元格,其餘單元格爲默認,即數據均是根據「訂單 ID」擴展得來。

2.2.2 單元格設置

1)各單元格添加控件類型如下表所示:

單元格
控件類型
B4、D4、F4、B8、A12下拉框控件
B6、D8、B12~E12數字控件
D6、F6文本控件
F8複選按鈕控件
F12、G12按鈕控件

2)設置 B4、D4、F4、B8、A12 單元格「下拉框控件」的「數據字典」,并且設置 B4、D4、F4、A12 單元格的「單元格屬性>形态」也爲「數據字典」,具體設置均如下表所示:

單元格  數據庫表 實際值    顯示值
B4客戶客戶ID公司名稱
D4雇員雇員ID姓名
F4運貨商運貨商ID公司名稱
B8訂單貨主城市貨主城市
A12産品産品ID産品名稱

控件「數據字典」設置如下圖:
1612428200475932.png

單元格形态「數據字典」設置如下圖:

1612428211688001.png

3)設置 F12 和 G12 的「按鈕控件」分别爲「插入行」和「删除行」按鈕,其指定單元格都爲 A12 單元格。如下圖所示:

1612428485573471.png

2.2.3 插入公式

在 H12 單元格中插入公式:C12 * D12 * (1 - E12),即:數量*進價*(1-折扣)

在 D8 單元格中插入公式:round(sum(H12) + B6,2)。表示「應付金額」爲數量*進價*(1-折扣)+運貨費

注:round() 表示應付金額保留兩位小數,函數詳細解釋可參考Round函數

2.2.4 插入行策略

選中 H12 單元格,點擊右側面板「單元格屬性>其他」,将插入行策略設置爲「原值」,确保單元格公式在插入行時被保留。

1612491371647074.png

2.3 參數設置

1)點擊菜單欄「模板>模板參數」,添加一個參數名爲 ID 的模板參數,默認值爲 10001。如下圖所示:

222

2)在參數界面添加參數生成相應控件,控件類型選擇爲「下拉框控件」,并設置下拉框控件的數據字典:數據庫表爲「訂單」,實際值和顯示值均爲第 1 列:訂單 ID。如下圖所示:

1612429401616392.png

2.4 過濾條件設置

雙擊 A3 單元格,設置過濾條件,條件爲普通條件:「訂單 ID 」列等於參數 $ID。如下圖所示:

1612429555920978.png

雙擊 A12 單元格,設置過濾條件,條件爲普通條件:「訂單 ID」 列等於單元格 A3。
1612429694611284.png

2.5 隐藏行列設置

1)A3 單元格只是作爲過濾數據使用,不需要展示在頁面上,所以需要隐藏。可以直接選中第 3 行的行序号,單擊鼠标右鍵選擇隐藏,如下圖所示:

1612429951535785.png

也可以通過給 A3 單元格添加一個行高爲 0 的條件屬性,如下圖所示:

1612430151763607.png

2)同樣點擊 H 列,單擊鼠标右鍵選擇隐藏,将 H12 單元格隐藏。

2.6 報表填報屬性設置

點擊菜單欄「模板>報表填報屬性」,按照下圖所示給報表增加兩個内置 SQL 提交

内置 SQL1:
222

内置 SQL2:
222

2.7 效果預覽

2.7.1 PC 端

保存報表,點擊「填報預覽」,查詢訂單号爲 10001 的數據,效果如下圖所示:
1612432113245059.png

修改子表,修改數量與進價,點擊提交,提示成功。刷新浏覽器,再選擇10001,可以看到數據已經改變,如下圖:

1612432202735236.png

2.7.2 移動端

App 端和 HTML5 端均支持,效果如下圖所示:

Screenshot_20210205_111000.jpg

3. 模板下載

已完成模板可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\MultiFormReport\主從填報.cpt

點擊下載模板:主從表填報.cpt

4. 注意事項

4.1 多個内置 SQL 的執行順序

若一個填報模板中定義了多個内置 SQL,其執行順序會按照定義的順序執行,若在執行其中一個内置 SQL 時出錯,會停止下面内置 SQL 的執行并對已執行的内置 SQL 進行回滾,回滾具體請查看 報表填報屬性

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

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

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

不再提示

10s後關閉

反饋已提交

網絡繁忙