日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ABAP--如何在选择屏幕上输出ALV GRID报表

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP--如何在选择屏幕上输出ALV GRID报表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有些客戶希望某些功能性的報表在輸出報表內容時,能同時看到選擇屏幕上的輸入參數,并
希望能反復地輸入選擇條件進行查詢。實現這個功能的辦法就是在選擇屏幕上輸出報表內容。

  一般情況下,大家都是直接從SAP的系統中找到相應的例程,然后進行加工修改。不過SAP系
統的例程是面向對象的開發,不大符合我們這一群老鳥的習慣。本人仔細研究了一下這個例程,
將其更改我們常用的編程模式。代碼見附件,具體說明如下:

  選擇屏幕也是一個屏幕,與一般創建的屏幕不同的是:它沒有PBO、PAI事件,報表程序中的
INITIALIZATION就是選擇屏幕的PBO事件,其它事件是選擇屏幕的PAI事件。具體事件與程序功能
代碼如下:

INITIALIZATION.
?

PERFORMsub_init_cond.???????"初始化選擇屏幕字段
? PERFORM sub_create_fieldcat.
? PERFORM sub_init_layout.
? PERFORMsub_create_object.???"創建選擇屏幕上的對象

START-OF-SELECTION.
? PERFORMsub_process_cond.???"對選擇條件進行處理
? PERFORM sub_query_t006a.??? "查詢相關數據

END-OF-SELECTION.
? PERFORMsub_refresh_table.??"刷新內表里的數據

  我們在INITIALIZATION事件下創建ALV GRID輸出需要的對象。如果輸出內表 GT_RESULT[]為
空,則跳過這段代碼;如果輸出內表 GT_RESULT[]內容不為空工,則創建ALV GRID需要的對象,
并在選擇屏幕上的BLOCK下面輸出相應的內容。

  系統MEMORY ID sy-cprog 是用來存儲結果內表數據的一個全局存儲區。如果感覺不方便,也
可以定義一個新的內表來保存結果內表的數據。只要在IMPORT MEMORY ID時將它的內容賦給結果
內表,在EXPORT MEMORY ID時將結果內表的數據賦給這個新內表即可。

  本程序還有一個重點就是如何在選擇屏幕上創建ALV所需要的對象,代碼如下:
?
? CREATE OBJECT go_dock
???EXPORTING
?????repid = sy-cprog
?????dynnr = sy-dynnr
?????ratio = 85
?????side? =cl_gui_docking_container=>dock_at_bottom
?????name? = 'DOCK_CONT'.

  然后再創建ALV所需要的CONTAINER對象。有了ALV所需要的對象,ALV報表基本上就沒什么難
點了。


總結

以上是生活随笔為你收集整理的ABAP--如何在选择屏幕上输出ALV GRID报表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。