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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ABAP屏幕上显示LIST的三种方法

發布時間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ABAP屏幕上显示LIST的三种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

屏幕上顯示LIST的三種方法

在abap開發中,經常有用戶提出list的需求,實現的方法很多,通常用的有以下三種總結一下供大家參考:

1:手工添加-就是根據需要把LIST要顯示的內容一條一條加到LIST列表中。對于手工添加,其優點就是簡單,對列表數據少且固定的LIST較易實現,缺點就是維護量大。

2:函數調用-就是編寫一個顯示LIST的函數實現,這種方法可一次生成LIST。
3:子例程實現-就是在程序中編寫子例程實現LIST的顯示,和第二種方法大同小異。

*1:手工添加
??P_kostl_ID?=?'P_CBZX'.
??value-key?=?'0011002101'.
??value-text?=?'成本中心'.
??APPEND?value?TO?list.
??CALL?FUNCTION?'VRM_SET_VALUES'
????EXPORTING
??????id?????=?P_CONGR_id
??????values?=?list.

*2:?函數調用
REPORT??z_functionlist.
**************取合并單元描述
DATA:?BEGIN?OF?i_kostl?OCCURS?0,
??????bukrs?LIKE?csks-bukrs,
??????kostl?LIKE?cskt-kostl,
??????ltext?LIKE?cskt-ltext,
??????name(50),
??????END?OF?i_kostl.
data:?p_name(30)?type?c.
*************CREAT?SCREEN
PARAMETERS:p_bukrs?LIKE?csks-bukrs?DEFAULT?'1100'.
PARAMETERS:?p_cbzx(30)?AS?LISTBOX?VISIBLE?LENGTH?45.

INITIALIZATION.

AT?SELECTION-SCREEN?OUTPUT.
??CALL?FUNCTION?'ZFI_LIST_KOSTL'
????EXPORTING
??????l_bukrs?=?p_bukrs
??????l_field?=?'P_CBZX'.

************************************************************
*?????顯示LIST的FUCTION定義
************************************************************

FUNCTION?zfi_list_kostl.
*"----------------------------------------------------------------------
*"*"Local?interface:
*"??IMPORTING
*"?????REFERENCE(L_BUKRS)?TYPE??BUKRS
*"?????REFERENCE(L_FIELD)?TYPE??C
*"----------------------------------------------------------------------

??TYPE-POOLS:?vrm.
??DATA:?congr_id?TYPE?vrm_id,
????????list???TYPE?vrm_values,
????????value?LIKE?LINE?OF?list.
??DATA:?BEGIN?OF?i_kostl?OCCURS?0,
????????bukrs?LIKE?csks-bukrs,
????????kostl?LIKE?cskt-kostl,
????????ltext?LIKE?cskt-ltext,
????????END?OF?i_kostl.
??congr_id?=?l_field.

??SELECT?csks~kostl?cskt~ltext?INTO?CORRESPONDING?FIELDS?OF?TABLE?i_kostl
????FROM?csks
??INNER?JOIN?cskt?ON?csks~kostl?EQ?cskt~kostl
??WHERE?csks~bukrs?=?l_bukrs.

??LOOP?AT?i_kostl.
????value-key?=?i_kostl-kostl?.
????CONCATENATE?i_kostl-kostl?'-'?i_kostl-ltext?INTO?value-text.
????APPEND?value?TO?list.
??ENDLOOP.
??CALL?FUNCTION?'VRM_SET_VALUES'
????EXPORTING
??????id?????=?congr_id
??????values?=?list.
ENDFUNCTION.

*3:?子例程實現?――也相當于函數調用,不過這里用到的是子例程

在at-selection-screen output 事件中調用

生成LIST的例程實現動態LIST的生成。

DATA: p_name(30) ?type c.

AT?SELECTION-SCREEN?OUTPUT.
?p_name =?'P_CBZX'.
??PERFORM?get_kostl?USING?p_name.

*&---------------------------------------------------------------------*
*&??????Form??get_kostl
*&---------------------------------------------------------------------*
*???????text
*----------------------------------------------------------------------*
*??????-->PU_CBZX????text
*----------------------------------------------------------------------*
FORM?get_kostl?USING?l_name?TYPE?c.
**************CREAT?LISTBOX
??TYPE-POOLS:?vrm.
??DATA:?name?TYPE?vrm_id,
????????????list??TYPE?vrm_values,
????????????value?LIKE?LINE?OF?list.
??CLEAR?i_kostl.
??name?=?l_name.
??SELECT?csks~kostl?cskt~ltext?INTO?CORRESPONDING?FIELDS?OF?TABLE?i_kostl
????FROM?csks
??INNER?JOIN?cskt?ON?csks~kostl?EQ?cskt~kostl
??WHERE?csks~bukrs?=?p_bukrs.
??LOOP?AT?i_kostl.
????value-key?=?i_kostl-kostl?.
????CONCATENATE?i_kostl-kostl?'-'?i_kostl-ltext?INTO?value-text.
????APPEND?value?TO?list.
??ENDLOOP.
??CALL?FUNCTION?'VRM_SET_VALUES'
????EXPORTING
??????id?????=?name
??????values?=?list.
ENDFORM.????????????????????"?GET_KOSTL

總結

以上是生活随笔為你收集整理的ABAP屏幕上显示LIST的三种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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