当前位置:网站首页>abap ALV总结整理

abap ALV总结整理

2022-07-22 19:03:00 月阴荒

https://www.cnblogs.com/VerySky/articles/2192401.html

开发ALV的基本流程

第一步:定义一些基本的数据结构,主要用于存数和alv的一些参数变量

第三步:定义一些显示ALV时所要使用到的变量,例如:
Data: w_repid like sy-repid, “ABAP程序,我们一般取当前程序

    w_callback_ucomm   type slis_formname,   "字符型,功能

    w_print            type slis_print_alv,  "类型组

    w_layout           type slis_layout_alv, "类型组

    w_html_top_of_page type  slis_formname,  "字符型

    w_fieldcat_alv     like line of i_fieldcat_alv, “从上面的数据结构类型引用过来的

    w_excluding        like line of i_excluding,    “同上

    w_events           like line of i_events,       “同上

    w_event_exit       like line of i_event_exit,   “同上

    w_list_comments    like line of i_list_comments.“同上

第二步:制作屏幕

第三步:获取屏幕输入的数据,用该数据从数据库中获取所需的数据放到前面定义的内表中

第四步:调用ALV生成函数。其中还要为ALV定义表结构,布局等信息,主要是layout和fieldcat.其中定义报表字段fieldcat的时候可以用子程序便捷的赋值

其中我们可以分解成如下几个步骤
(1)调用一个子程序,(通常命名为frm_get_dataXXX(X代表任意自定义字母)),用于获取ALV所要显示的数据;
例如:
FROM frm_get_data.
… … "其他处理逻辑
SELECT lifnr "供应商账号
ktokk "账号组
name1 ''名称1
name2 "名称2
INTO CORRESPONDING FIELDS OF TABLE it_main
FROM zmmjyht003
WHERE (l-where)
.
… …
ENDFORM.

2)调用一个子程序(通常命名为frm_alv_layout_build),用于设置ALV所要显示的样式;
例如:
FROM frm_alv_layout_build.
g_layout-zebra = ‘X’ .
g_layout-colwidth_optimize = ‘X’ "列数据最优化显示
g_layout-box-fieldname = ‘SELFLAG’. *表示ALV行项目选中的字段
ENDFORM.

(3)调用一个子程序(通常命名为frm_alv_set_columns),用于完成ALV索要显示的列的相关设置;
例如:
FROM frm_alv_set_columns.
REFRESH g_fieldcat_alv.
PERFROM frm_set_l_fieldcat USING 1 ‘LIFNR’ ‘供应商账号’.
ENDFORM.
FORM frm_set_l_fieldcat USING p_pos p_name p_text.
DATA: l_fieldcat TYPE slis_fieldcat_alv.
l_fieldcat TO g_fieldcat_alv.
EMDFORM.

(4)调用显示ALV的函数,例如:REUSE_ALV_GRID_DISPLAY ;
FORM frm_alv_display_data.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = g_repid
i_callback_pf_status_set = ‘FRM_STATUS_ALV’
i_callback_user_command = ‘FRM_USER_COMMAND_ALV’
is_layout = g_layout
it_fieldcat = g_fieldcat_alv[]
TABLES
t_outtab = it_main
EXCEPTIONS
program_error = 1
OTHERS = 2
.
ENDFORM.

原网站

版权声明
本文为[月阴荒]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43847969/article/details/125931771