反饋已提交

網絡繁忙

主從表填報

1. 概述

1.1 問題描述

在實際填報表設計中,主從表是常見的一種填報場景,主表中的一條記錄對應從表中的多條記錄,例如「訂單表」和「訂單明細表」,「訂單表」的一個訂單可能對應「訂單明細表」中的多條產品資料,透過「訂單 ID」欄位進行聯動。

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

1.2 實現思路

首先透過設定過濾條件,將表與表聯動起來,然後透過定義多個內建 SQL 提交將資料回填到不同的資料表中。

2. 範例

2.1 資料準備

建立普通報表,建立兩個資料庫查詢,SQL 查詢語句分別為:

ds1:SELECT * FROM 訂單

ds2:SELECT * FROM 訂單明細

2.2 報表設計

2.2.1 表格樣式設計

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

將 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產品名稱

元件「資料字典」設定如下圖:

儲存格形態「資料字典」設定如下圖:

3)設定 F12 和 G12 的「按鈕元件」分別為「插入行」和「刪除行」按鈕,其指定儲存格都為 A12 儲存格。如下圖所示:

2.2.3 插入公式

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

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

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

2.2.4 插入行策略

選中 H12 儲存格,點選右側面板「儲存格屬性>其他」,將插入行策略設定為「原值」,確定儲存格公式在插入行時被保留。

2.3 參數設定

1)點選菜單欄「範本>範本參數」,新增一個參數名為 ID 的範本參數,預設值為 10001。如下圖所示:

2)在參數介面新增參數生成相應元件,元件類型選擇為「下拉框元件」,並設定下拉框元件的資料字典:資料庫表為「訂單」,實際值和顯示值均為第 1 列:訂單 ID。如下圖所示:

2.4 過濾條件設定

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

雙擊 A12 儲存格,設定過濾條件,條件為普通條件:「訂單 ID」 列等於儲存格 A3。

2.5 隱藏行列設定

1)A3 儲存格只是作為過濾資料使用,不需要展示在頁面上,所以需要隱藏。可以直接選中第 3 行的行序號,按滑鼠右鍵選擇隱藏,如下圖所示:

也可以透過給 A3 儲存格新增一個行高為 0 的條件屬性,如下圖所示:

2)同樣點選 H 列,按滑鼠右鍵選擇隱藏,將 H12 儲存格隱藏。

2.6 報表填報屬性設定

點選菜單欄「範本>報表填報屬性」,按照下圖所示給報表增加兩個內建 SQL 提交

內建 SQL1:

內建 SQL2:

2.7 效果預覽

2.7.1 PC 端

儲存報表,點選「填報預覽」,查詢訂單號為 10001 的資料,效果如下圖所示:

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

2.7.2 行動端

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

3. 範本下載

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

點選下載範本:主从表填报.cpt

4. 注意事項

4.1 多個內建 SQL 的執行順序

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

附件列表


主題: 填報應用
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

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

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

不再提示

10s後關閉