點(diǎn)擊藍(lán)字 關(guān)注我們
一
前言
SAP商業(yè)圖形項(xiàng)目中使用較少,究其原因也不排除調(diào)用比較麻煩的因素.
SAP商業(yè)圖形提供了一組函數(shù),整合在函數(shù)組BUSG中,其中GRAPH_MATRIX函數(shù)整合了2D,3D,4D的調(diào)用,適合用來作為SAP商業(yè)圖形整合類使用.
在考慮動(dòng)態(tài)報(bào)表引入圖形顯示時(shí),就一直研究怎么簡(jiǎn)化商業(yè)圖形的調(diào)用.通過一周多的努力,完成了類 ZCL_REP_COMM_GRAPH
本文主要介紹一個(gè)自開發(fā)的類,簡(jiǎn)潔快速的實(shí)現(xiàn)SAP商業(yè)圖形呈現(xiàn).
二
開發(fā)思路
把內(nèi)表或ALV顯示中的行/列選擇作為輸入
通過字段屬性識(shí)別關(guān)鍵字,指標(biāo)
根據(jù)關(guān)鍵字個(gè)數(shù)確定圖形的維度,超過三個(gè)關(guān)鍵字則保留三個(gè).
如果沒有關(guān)鍵字或指標(biāo),提示不輸出圖形,
如果指標(biāo)超過一個(gè),保留第一個(gè)
根據(jù)商業(yè)圖形顯示函數(shù)的規(guī)則(維度最大值).獲取最終顯示的圖形的數(shù)據(jù),
最終調(diào)用GRAPH_MATRIX 顯示圖形.
三
調(diào)用方式
主要區(qū)分了三個(gè)調(diào)用方式
全屏ALV顯示圖形 :方便全屏ALV調(diào)用
對(duì)象ALV顯示圖形 :方便對(duì)象ALV調(diào)用
內(nèi)表顯示圖形 : 不通過ALV, 程序中直接調(diào)用
01
全屏ALV顯示圖形
全屏ALV調(diào)用只需要傳遞控制參數(shù)及內(nèi)表即可
02
對(duì)象ALV顯示圖形
對(duì)象ALV調(diào)用傳入控制參數(shù),ALV對(duì)象,內(nèi)表
03
內(nèi)表顯示圖形
不通過ALV, 程序中直接調(diào)用.傳遞控制參數(shù),字段集(通過LVC_T_FCAT定義),內(nèi)表即可
四
呈現(xiàn)效果
對(duì)于ALV調(diào)用的,根據(jù)行列選擇與否,有以下幾種調(diào)用方式
僅選中列: 選中列作為維度和指標(biāo)(數(shù)量/金額字段).使用所有數(shù)據(jù)
僅選中行 : 選中的行用來限定顯示數(shù)據(jù)的范圍, 使用所有列(前三個(gè)關(guān)鍵字作為維度,第一個(gè)數(shù)字或金額作為指標(biāo))
選中行/列: 選中的行限定數(shù)據(jù)范圍,選中的列限定維度與指標(biāo)
通過自定義按鈕,根據(jù)獲取的維度判斷顯示2D,3D,4D圖形.
01
選中兩列的2D圖形
選中一個(gè)關(guān)鍵字,一個(gè)指標(biāo),按關(guān)鍵字統(tǒng)計(jì)后顯示2D圖形.
02
選中三列的3D圖形
選中兩個(gè)關(guān)鍵字,一個(gè)指標(biāo),按關(guān)鍵字統(tǒng)計(jì)后顯示3D圖形.
03
選中4列的4D圖形
選中三個(gè)關(guān)鍵字,一個(gè)指標(biāo),按關(guān)鍵字統(tǒng)計(jì)后顯示4D圖形.
04
選中行,列
根據(jù)選中的行限定數(shù)據(jù),根據(jù)選擇2列顯示2D圖形
五
控制參數(shù)介紹
不管那種調(diào)用方式, 有兩個(gè)控制參數(shù)作為可選項(xiàng)傳入
IV_DIM_COUNT 每個(gè)維度的最大行數(shù),2D/3D圖形最大值32 默認(rèn)值32. 4D圖形 各維度最大值的乘積不能超過1024.
IV_DIM_MAX_METHOD 多維保留維度數(shù)按指標(biāo)排序的方式 默認(rèn)值C
01
IV_DIM_COUNT
該參數(shù)控制了維度最大值.
SAP商業(yè)圖形限定每個(gè)維度的最大數(shù):2D/3D 圖形最大值32 默認(rèn)值32. 4D圖形,各維度最大值的乘積不能超過1024. 默認(rèn)為10
比如2D圖形顯示地點(diǎn)銷售數(shù)量. 2D圖形最多顯示32個(gè)地點(diǎn).但是實(shí)際地點(diǎn)數(shù)很可能超過32個(gè),此時(shí)就需要考慮把超出31個(gè)的其它值放入OTHERS中. 可以根據(jù)指標(biāo)的順序或倒序排序保留前31個(gè),后續(xù)歸集到OTHERS中.
02
IV_DIM_MAX_METHOD
多維保留維度數(shù)按指標(biāo)排序的方式 默認(rèn)值C
如果時(shí)2D圖形. 超出32 個(gè)的保留邏輯比較單一,按指標(biāo)倒序或正序排序即可. 但是3D/4D圖形中保留的維度值的方式就有4中情況
A全局倒序 : 所有關(guān)鍵字參與統(tǒng)計(jì),按指標(biāo)倒序排序,保留前面的關(guān)鍵字值.
B全局順序 : 所有關(guān)鍵字參與統(tǒng)計(jì),按指標(biāo)順序排序,保留前面的關(guān)鍵字值.
C單獨(dú)倒序 : 每個(gè)關(guān)鍵字單獨(dú)統(tǒng)計(jì),按指標(biāo)倒序排序,保留前面的關(guān)鍵字值.
D單獨(dú)順序 : 每個(gè)關(guān)鍵字單獨(dú)排序,按指標(biāo)順序排序,保留前面的關(guān)鍵字值.
六
關(guān)于類源代碼
實(shí)現(xiàn)方式不太復(fù)雜,只不過需要考慮較多的細(xì)節(jié)控制,感興趣的可以根據(jù)本文描述的開發(fā)思路自行實(shí)現(xiàn)一下.
如果確實(shí)有需要的,可以打賞文章后聯(lián)系392077索取.
七
總結(jié)
自定義類ZCL_REP_COMM_GRAPH 嘗試簡(jiǎn)化SAP商業(yè)圖形的顯示. 區(qū)分了多種調(diào)用方式, 根據(jù)用戶傳入的關(guān)鍵字統(tǒng)計(jì),自動(dòng)識(shí)別并顯示2D,3D,4D圖形. 同時(shí)會(huì)根據(jù)用戶傳入的最大維度值結(jié)合SAP商業(yè)圖形的最大維度值限制,調(diào)整數(shù)據(jù)內(nèi)容,把超出最大值的維度歸入特殊值OTHERS.
當(dāng)前版本只考慮了圖形的呈現(xiàn),后續(xù)考慮添加交互功能:
可以切換為維度顯示關(guān)鍵字或者關(guān)鍵字的描述(這個(gè)改動(dòng)需要結(jié)合碼表框架,
詳見無峰力崇,公眾號(hào):ABAP 技巧與實(shí)戰(zhàn)SAP開發(fā)框架系列之 碼表框架
可以改變關(guān)鍵字保留方式,
可以改變維度最大值
....
讓SAP商業(yè)圖形更加好用
THE
END