【SAP ABAP】动态显示ALV
来源:互联网 发布:sketch mac 激活码 编辑:程序博客网 时间:2024/05/16 08:04
动态显示ALV分为以下几步:
一、创建动态的fieldcat:和普通创建fieldcat的方法相同,不过通过循环去创建实现动态的列;
二、根据上一步骤创建的fieldcat创建动态的内表,使用cl_alv_table_create=>create_dynamic_table;
三、指针为动态表赋值;
四、显示ALV。
本人将以上步骤精简,做了一个小程序(画面参数p_col是将要显示的alv列数)总结,如下:
* test:动态alv
REPORT ztest_02.
* definition for data get
TYPES:BEGIN OF typ_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
END OF typ_vbap.
DATA:
gt_vbap TYPE TABLE OF typ_vbap,
st_vbap TYPE typ_vbap.
* definition for dynamic table
DATA:
t_dyntab TYPE REF TO data,
s_dyntab TYPE REF TO data.
FIELD-SYMBOLS:
<dyntab> TYPE STANDARD TABLE,
<fs_val> TYPE any ,
<fs_wa> TYPE any .
* definition for alv
DATA:
t_fcat TYPE lvc_t_fcat,
s_fcat TYPE lvc_s_fcat.
DATA:
g_fname TYPE char2.
DEFINE fcat.
s_fcat-FIELDNAME = &1.
s_fcat-SCRTEXT_L = &2.
APPEND s_fcat to t_fcat.
CLEAR s_fcat.
END-OF-DEFINITION.
PARAMETERS p_col TYPE i.
START-OF-SELECTION.
* 取数
SELECT vbeln posnr
INTO TABLE gt_vbap
FROM vbap
UP TO p_col ROWS.
* fcat set
fcat 'VBELN' 'SO'.
fcat 'POSNR' 'SOITEM'.
DO p_col TIMES.
g_fname = sy-index.
CONCATENATE 'F' g_fname INTO g_fname.
fcat g_fname g_fname.
ENDDO.
* dynamic table create
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = t_fcat
IMPORTING
ep_table = t_dyntab
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE 'create dynamic table error' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
* dynamic table data fill
ASSIGN t_dyntab->* TO <dyntab>.
CREATE DATA s_dyntab LIKE LINE OF <dyntab>.
ASSIGN s_dyntab->* to <fs_wa>.
LOOP AT gt_vbap INTO st_vbap.
ASSIGN COMPONENT 'VBELN' OF STRUCTURE <fs_wa> TO <fs_val>.
<fs_val> = st_vbap-vbeln.
ASSIGN COMPONENT 'POSNR' OF STRUCTURE <fs_wa> TO <fs_val>.
<fs_val> = st_vbap-posnr.
APPEND <fs_wa> TO <dyntab>.
ENDLOOP.
* alv display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
IT_FIELDCAT_LVC = t_fcat
TABLES
t_outtab = <dyntab>
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE 'alv display error' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
- 【SAP ABAP】动态显示ALV
- SAP ABAP ALV进阶
- SAP ABAP同时显示多个ALV的方法
- ABAP 动态的实现任意表的ALV显示
- ABAP 动态的实现任意表的ALV显示
- SAP ABAP ALV构建动态输出列与构建动态内表
- SAP ABAP ALV构建动态输出列与构建动态内表
- ABAP动态内表ALV
- ABAP 屏幕容器ALV显示
- SAP ABAP ALV控制显示的网格中的每一个字段属性
- ABAP:利用SAP定时器自动刷新ALV
- ABAP:利用SAP定时器自动刷新ALV
- ABAP:利用SAP定时器自动刷新ALV
- SAP ABAP alv中设置回车事件
- alv动态显示列
- ABAP开发如何动态的实现任意表的ALV显示
- ABAP实现ALV表头动态输出--日期
- abap- ALV报表动态内表输出
- eclipse配置java虚拟机的方法
- ASoC Machine驱动代码框架图
- WebCamTexture摄像头画面颠倒的问题
- 【宽搜】ECNA 2015 E Squawk Virus (Codeforces GYM 100825)
- UGUI 按钮监听事件
- 【SAP ABAP】动态显示ALV
- 学习Google新建项目 Navigation Drawer Activity
- MySQL explain
- AIM Tech Round (Div. 2) C. Graph and String
- android屏幕录制adb及转换gif实现
- iOS CoreTelephony框架介绍与使用案列
- java学习阶段建议(转自他人微博)
- 1005. Spell It Right (20)
- 算法题 之 lucky_price