動態列 模板 複雜報表設計之動態報表

2021-10-14 22:23:02 字數 1584 閱讀 6275

如上圖所示,可以需選擇不同的分組維度進行資料分析,例如類別、**商維度;

可以通過使用者輸入的引數值進行資料動態過濾,例如傳入不同**商、類別的值進行資料查詢過濾;

可以選擇要顯示的附加字段資料;

同時要求顯示有排名(每個分組內的資料從大到小顯示)、佔比(產品占該分組維度總訂購量的百分比)。

此示例使用指令碼資料集完成資料的準備工作,此處使用指令碼資料集是處於對組內排名需求的考慮,完整指令碼配置如下圖所示:

其中,a1:使用 connect 函式連線 demo 資料來源

a2:使用 query 函式進行資料的過濾查詢

a3:使用 group 和 sort 函式實現組內排序效果,即排名結果

其中,a2:=if(arg1==「**商 id」,ds1.group( **商 id:1),ds1.group(類別 id:1)) 實現動態分組效果

b2:=ds1.sum(訂購量) b 列為隱藏列,用於佔比的分母值計算

c2:=&d2 排名效果實現,此處使用組內序號的配置即可,資料集準備的資料中已完成排名計算

d2:=ds1.select(產品 id) 明細資料的展現,跟隨 a2 不同的分組維度顯示產品明細

e2:=ds1. 訂購量 同乙個資料集的 select 函式後面跟隨取值表示式,不需要再使用 select 函式取數

f2:=if(b2==0,「-」,e2/b2) 佔比的實現是除法,準備好分子和分母的資料即可,此處使用 if 對分母為 0 的資料做了特殊處理,顯示為「-」

g1:=split(arg4,「,」) 對傳入要附件顯示的列名進行拆分,需要設定 g1 單元格的擴充套件方式為橫向擴充套件

g2:=ds1.field(g1) 使用 field 函式對該字段進行取數顯示

主表設計完成,儲存報表,例如儲存名稱為:kehu1.rpx,我們可以通過設計器的預覽按鈕看下效果:

輸入引數值後,得到如下結果:

d2:編輯風格為下拉資料集,並設定 web 變數名為 arg2

此 ds1 資料集需在引數模板的 報表–資料集中進行定義

f2:編輯風格為下拉資料集,並設定 web 變數名為 arg3

b3:編輯風格為下拉列表,並設定 web 變數名為 arg4

最後,將引數模板儲存為主表名稱 _arg.rpx,此示例名稱為 kehu1_arg.rpx

至此,整體效果已完成設定。

動態列 模板 複雜報表設計之動態報表

如上圖所示,可以需選擇不同的分組維度進行資料分析,例如類別 商維度 可以通過使用者輸入的引數值進行資料動態過濾,例如傳入不同 商 類別的值進行資料查詢過濾 可以選擇要顯示的附加字段資料 同時要求顯示有排名 每個分組內的資料從大到小顯示 佔比 產品占該分組維度總訂購量的百分比 此示例使用指令碼資料集完...

GridView動態新增模板列

gridview動態新增模板列 這個case 經常會遇到,網上相關資料也不少,但是關於如何動態為新增在模板列中的控制項新增事件卻沒有。本文就是為解決這種情況而寫。如下 gridviewtemplatedemo.aspx xhtml view plain copy page language c au...

PB 提取動態交叉報表動態標題名和動態列值

提取動態交叉報表動態標題名和動態列值 string ls str,ls str1,ls name,ls name text,ls text long ll cnt,ll cnttmp,i,ll row dwobject ldwo environment env getenvironment env ...