如何在潤幹報表中製作分組填報表

2021-09-12 18:57:07 字數 2343 閱讀 9164

同樣地,我們以 demo 示例庫中的雇員表資訊維護為例,在資料填報頁面,需要實現以下效果:

1)雇員資訊按照地區分組顯示

2)雇員基本資訊可進行修改

效果圖如下圖所示:

在製作分組填報表之前,我們先來看一下它的設計原理。

原理說明:

分組填報表中有兩個維度:分組維度和明細維度,如何處理兩者之間的邏輯關係是重點,這兩個維度之間應該是什麼樣的一種邏輯關係呢?我們先來看乙個簡單的例子,a1 單元格為分組維度,b1 單元格為明細維度,兩者關係如下:

a1:[1,2]     單元格在解析計算時會展開成 1,2 兩個分組

b1:[[11,55],[22,44]]   b1 需要按照 a1 的分組維度展開對應的資料

分組維度是兩個值,那麼明細維度要分別對應設定序列:1 對應 [11,55],2 對應 [22,44],最終解析結果如上圖右側所示。

從這裡我們可以看出來,明細維度和分組維度是一一對應的,我們需要將符合維度值的資料整理為乙個序列,這樣才能保證結果頁面資料的對應關係是正確的。

在了解了原理之後,我們來看詳細實現步驟:

第一步 新建空白填報表

第二步 設定資料處理

其中,a2:通過 query 函式取出要進行修改的表資料;

a3:通過 id 函式對地區去重,獲取到分組維度資料;

a4:通過 run 函式逐個取地區分組維度下的雇員 id,並返回序列;

在 run 函式中,先定義了乙個變數 dq,dq 的值為當前執行的 a3(地區),然後我們通過 select 函式過濾出來對應的雇員 id 資料,最後將結果插入到 b1 單元格,返回完整的明細維度序列資料。

a5:吧分組維度(地區)和明細維度(雇員 id)整合到乙個序列中返回;

a6:吧雇員資訊寫到雇員物件中,便於在填報表中取數;

ps:指令碼寫法不唯一,只需要保證「地區」和「雇員 id」兩個維度的邏輯關係正確就可以了。

去向指令碼內容如下圖所示:

其中,a2:通過 update 函式實現對雇員表資料的維護,將頁面新資料與原有舊資料進行比較,將差異資料更新到雇員表中;

a3:獲取資料庫操作過程中的異常資訊;

a4:如果 a3 獲取到的異常資訊為空,那麼就提交入庫,否則就執行事務回滾;

第三步 配置取數表示式和欄位名稱

其中,a2 單元格:設定單元格型別為維度格,欄位名稱配置為:雇員. 地區,

單元格取數表示式為:=dim(1),表示取 dim 物件中的第一條記錄;

b2 單元格:設定單元格型別為維度格,單元格取數表示式為:=dim(2),表示取 dim 物件中的第二條記錄;

因為第一行的標題內容和欄位名稱一致,所以 a2 後面的單元格不需要再配置欄位名稱。

ps:對資料採集規則不理解的同學,可以直接對每個數值格設定欄位名稱,規則是:物件名. 欄位名。

這裡分享乙個 **【小技巧】**,我們可以通過設計器的預覽按鈕檢視填報表的分割槽識別結果:

在製作填報表時,需要保證右側識別到的物件、欄位名稱和**指令碼的物件結構是匹配的,這是將資料成功更新入庫的必要條件之一。

第四步 其他設定

按照需求設定編輯風格、校驗、自動計算、顯示格式等。

其中,校驗設定可參考文章: 報表資料填報中的合法性校驗 ](

自動計算配置可參考文章: 報表資料填報中的自動計算 ](

總結:

至此,乙個簡單的單分組填報表就製作完成了。這裡實現的難點在於分組維度資料和明細維度資料之間邏輯關係的理解和處理,還是不會怎麼辦?盤它,盤的多了,你會發現集算器指令碼進行資料處理時的各種驚豔之處。

潤幹報表分組求和 潤幹報表實現組內排序報表及改進

報表開發中經常會遇到需要進行組內排序的報表,如按月份的分組彙總值排序顯示,並顯示每月銷售額前十名的記錄。使用報表工具一般通過隱藏行列輔助可以實現,下面通過例項說明潤幹報表的實現過程,以及改進方案。報表需求 根據銷售管理系統資料統計客戶所在地區的訂單總額,地區並按訂單總額降序排列,要求每個地區中顯示銷...

分組填報表的製作

同樣地,我們以 demo 示例庫中的雇員表資訊維護為例,在資料填報頁面,需要實現以下效果 1 雇員資訊按照地區分組顯示 2 雇員基本資訊可進行修改 效果圖如下圖所示 在製作分組填報表之前,我們先來看一下它的設計原理。原理說明 分組填報表中有兩個維度 分組維度和明細維度,如何處理兩者之間的邏輯關係是重...

分組填報表的製作

同樣地,我們以 demo 示例庫中的雇員表資訊維護為例,在資料填報頁面,需要實現以下效果 1 雇員資訊按照地區分組顯示 2 雇員基本資訊可進行修改 效果圖如下圖所示 在製作分組填報表之前,我們先來看一下它的設計原理。原理說明 分組填報表中有兩個維度 分組維度和明細維度,如何處理兩者之間的邏輯關係是重...