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

2021-07-22 16:20:55 字數 1454 閱讀 5085

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

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)

ll_cnt = long(dw_2.describe('datawindow.column.count'))

//設定靜態模式

dw_2.modify('datawindow.crosstab.staticmode=yes')

ll_cnttmp = long(dw_2.describe('datawindow.column.count'))

for i = 0 to ll_cnttmp - ll_cnt

ls_name = dw_2.describe('#' + string(ll_cnt) + '.name')

//獲取動態標題名

if i = 0 then

ls_name_text = ls_name + '_t'

ls_text = dw_2.describe( ls_name_text + '.text')

else

ls_name_text = ls_name + '_t_' + string(i)

ls_text = dw_2.describe( ls_name_text + '.text')

end if

//獲取動態列名

ls_name = dw_2.describe('#' + string(ll_cnt + i) + '.name')

//當前pb版本

if env.pbmajorrevision > 6 then

//返回dwobject

ldwo = dw_2.object.__get_attribute( ls_name, true )

else

//pb6使用get_attribute返回dwobject

ldwo = dw_2.object.get_attribute( ls_name, true )

end if

//獲取動態列值

ls_str1 = ''

for ll_row = 1 to dw_2.rowcount()

ls_str1 += string( ldwo.primary[ll_row] ) + ','

next

'~t列:' + ls_name + '~t列值:' + ls_str1 + '~r~n'

next

//設回動態模式

dw_2.modify('datawindow.crosstab.staticmode=no')

messagebox( '', ls_str )

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

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

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

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

動態交叉表頭報表的製作

在資料資訊系統中,常常會看到這樣一類報表需求,它們的樣式為交叉報表的變形 既縱向分組擴充套件又橫向分組擴充套件,在交叉區域對統計項進行彙總 同時在縱向分組時,要求每個組跟隨乙個與分組相對應的橫向表頭。對比效果如下圖所示 從上圖可看到,報表縱向按照年進行分組擴充套件,同時每年又能生成乙個橫向分組表頭,...