如何使用權限對象S_ALV_LAYO控制ALV GRID標準報表中用戶不能設置全局佈局的詳解

如何使用權限對象S_ALV_LAYO控制ALV GRID標準報表中用戶不能設置全局佈局的詳解

作者:袁雲飛(AlbertYuan)- 微信號yuanalbert

以下內容均爲原創,希望對初學者有一些輔助作用,本人主要從事MM/QM/WM的相關工作,不專業處請多多指點,十足乾貨,碼字不易,且行且珍惜,你們的關注就是我努力的動力,轉載請引用出處,感激不盡;

當我們在使用標準報表顯示ALV GRID的結果時,可以設定各人所喜歡的LAYOUT,但是很多時候經常會出現用戶A設定的LAYOUT去影響到了用戶B的設定,或者覆蓋其他用戶的佈局字段;這讓很多小夥伴們比較頭疼,畢竟用戶使用習慣的佈局字段,一旦發生改動,第一時間會聯繫到報表出錯了,這給我們運維的人員比較大的負擔;

在這裏插入圖片描述
如上圖,雖然運維人員會不厭其煩的給用戶說明,上圖這兩個指示器的具體作用,但往往收效甚微;

所以,我們通過一個權限對象S_ALV_LAYO來進行一些控制,是比較有效的手段;
在這裏插入圖片描述
這個權限對象只有一個activity,如果分配對象了,但不勾選,則分配了該權限對象的用戶,在使用標準ALV報表的時候,佈局更改保存時期user-specific指示器會默認被勾上,也就是說,該用戶只能講更改的佈局設置爲本用戶所見狀態,這樣就不會保存爲全局佈局進而影響其他沒有設置該指示器的用戶了;

同時,其他用戶在選擇佈局的時候,也是無法看到另一個用戶所設置的user-specific佈局的;這樣就將各自用戶的佈局進行了分割並相互不干擾了;

那麼哪些標準報表會受到這個權限對象的控制呢,這個可以通過SU24去檢查你所需要的報表事務代碼,去觀察裏面是否有該權限對象即可;
在這裏插入圖片描述
那麼回過頭來,小夥伴們可能會問,我們自己開發的報表呢,可能那個更需要如此的控制啦;

其實自開發報表要控制佈局,特別是ALV展現形式的報表來說,也是可以通過這個權限對象來實現的,當然你可以用其他自開發的權限對象,不過使用這個權限對象對於設計和控制上的統一是非常有利的;只需要在自開發報表程序中設置對應的權限檢查代碼,檢查該權限對象的activity=23的值是否是X,然後決定再ALV輸出的時候讓用戶執行何種佈局保存方式即可;

如果是使用REUSE_ALV_GRID_DISPLAY_LVC展現,則在I_DEFAULT和I_SAVE入參上做文章即可實現;
如果使用的是OO ALV CL_GUI_ALV_GRID,則在SET_TABLE_FOR_FIRST_DISPLAY方法裏的I_SAVE和I_DEFAULT參數上做文章即可實現;這個會一點點開發的小夥伴們即可獨立完成;

以上爲本章全部內容,希望對小夥伴們有所幫助;

發佈了102 篇原創文章 · 獲贊 1 · 訪問量 8432
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章