SAP工具箱 商業(yè)圖形(三) 簡(jiǎn)化商業(yè)圖形顯示

點(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


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市掖鱼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件台丛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挽霉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門防嗡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人侠坎,你說我怎么就攤上這事蚁趁。” “怎么了实胸?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵他嫡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我庐完,道長(zhǎng)钢属,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任门躯,我火速辦了婚禮淆党,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘讶凉。我一直安慰自己染乌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布懂讯。 她就那樣靜靜地躺著荷憋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪域醇。 梳的紋絲不亂的頭發(fā)上台谊,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音譬挚,去河邊找鬼锅铅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛减宣,可吹牛的內(nèi)容都是我干的盐须。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼漆腌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼贼邓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起闷尿,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤塑径,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后填具,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體统舀,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡匆骗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了誉简。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碉就。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖闷串,靈堂內(nèi)的尸體忽然破棺而出瓮钥,到底是詐尸還是另有隱情,我是刑警寧澤烹吵,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布碉熄,位于F島的核電站,受9級(jí)特大地震影響肋拔,放射性物質(zhì)發(fā)生泄漏具被。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一只损、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧七咧,春花似錦跃惫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)潮尝。三九已至和二,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卵皂,已是汗流浹背悼粮。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工闲勺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扣猫。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓菜循,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親申尤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子癌幕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容