06-ALV

news/2025/2/15 17:33:41/

开发ALV的基本流程

开发ALV的基本流程

第1步:声明变量

定义ALV所要用到的类型池:TYPE-POOLS: SLIS

针对ALV的控制信息数据(Layout & Fieldcat)

第2步:定义内表

存放自定义数据文件的数据,以及在ALV中显示

第3步:读取数据

读取数据存放至Internal Table

第4步:ALV格式控制

建立ALV显示样式(layout)和显示字段清单(Field Catalogs)

第5步:定义事件

建立事件清单(Event Catalogs)

第6步:显示ALV

调用ALV Function Module

第7步:用户事件

定义User按键处理事件

第一步:声明变量

数据变量(Data Area)定义

声明类型组SLIS

TYPE-POOLS: slis.

DATA:

fieldcat TYPE slis_t_fieldcat_alv, “字段清单内表

fieldcat_ln LIKE LINE OF fieldcat, “字段清单工作区

layout TYPE slis_layout_alv, “ALV格式

sortcat TYPE slis_t_sortinfo_alv, “ALV排序字段清单内表

sortcat_ln LIKE LINE OF sortcat,

eventcat TYPE slis_t_event, “ALV事件

eventcat_ln LIKE LINE OF eventcat.”ALV事件工作区

DATA: col_pos TYPE i.

第二步:定义内表

DATA: BEGIN OF ivbap OCCURS 0,

vbeln LIKE vbap-vbeln,

matnr LIKE vbap-matnr,

matkl LIKE vbap-matkl,

END OF ivbap.

第三步:读取数据

SELECT vbeln posnr matnr matkl kwmeng vrkme

INTO CORRESPONDING FIELDS OF TABLE ivbap

FROM vbap

WHERE vbeln NE space.

第四步:ALV格式控制

ALV格式控制

layout-zebra = ‘X’. ”呈现颜色交替

layout-detail_popup = ‘X’. "是否弹出详细信息窗口

layout-f2code = ‘&ETA’. "设置触发弹出详细信息窗口的功能码,这里是双击

layout-no_vline = ‘X’. "这个用来设置列间隔线

layout-colwidth_optimize = ‘X’. "优化列宽选项是否设置

layout-detail_initial_lines = ‘X’.

layout-detail_titlebar = ‘详细内容’."设置弹出窗口的标题栏

字段目录是用来控制ALV显示的网格中每个字段的属性的,比如字段的顺序,对齐方式,可编辑状态,颜色,等等

ADD 1 TO col_pos.

fieldcat_ln-ref_tabname = ‘VBAP’.

fieldcat_ln-fieldname = ‘VBELN’.

fieldcat_ln-key = ‘X’.

fieldcat_ln-do_sum = space.

fieldcat_ln-col_pos = col_pos.

fieldcat_ln-no_out = space.

fieldcat_ln-qfieldname = space.

fieldcat_ln-hotspot = ‘X’.

APPEND fieldcat_ln TO fieldcat.

在这里插入图片描述

在这里插入图片描述

第五步:定义事件

建立事件清单(Event Catalogs)

需定义事件块,否则出错

eventcat_ln-name = ‘TOP_OF_PAGE’

eventcat_ln-form = ‘PAGE_HEADER’.

APPEND eventcat_ln TO eventcat.

事件块:

FORM PAGE_HEADER.

ENDFORM.

第六步:显示ALV

ALV显示

DATA: pgm LIKE sy-repid.

pgm = sy-repid.

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’

EXPORTING

i_callback_program = pgm

i_callback_pf_status_set = ‘SET_STATUS’

i_callback_user_command = ‘USER_COMMAND’

is_layout = layout

it_fieldcat = fieldcat[]

it_sort = sortcat[]

i_save = ‘A’

”it_event = eventcat[]

TABLES

t_outtab = ivbap

EXCEPTIONS

program_error = 1

OTHERS = 2.

第七步:用户事件

USER-COMMAND子例程

FORM user_command USING ucomm LIKE sy-ucomm

selfield TYPE slis_selfield.

READ TABLE ivbap INDEX selfield-tabindex.

CHECK sy-subrc = 0.

CASE ucomm.

WHEN ‘&IC1’.

CASE selfield-sel_tab_field.

WHEN ‘IVBAP-VBELN’.

SET PARAMETER ID ‘AUN’ FIELD ivbap-vbeln.

CALL TRANSACTION ‘VA03’ AND SKIP FIRST SCREEN.

WHEN ‘IVBAP-MATNR’.

SET PARAMETER ID ‘MAT’ FIELD ivbap-matnr.

CALL TRANSACTION ‘MM03’ AND SKIP FIRST SCREEN.

ENDCASE.

ENDCASE.

ENDFORM.

ID ‘AUN’ FIELD ivbap-vbeln.

CALL TRANSACTION ‘VA03’ AND SKIP FIRST SCREEN.

WHEN ‘IVBAP-MATNR’.

SET PARAMETER ID ‘MAT’ FIELD ivbap-matnr.

CALL TRANSACTION ‘MM03’ AND SKIP FIRST SCREEN.

ENDCASE.

ENDCASE.

ENDFORM.


http://www.ppmy.cn/news/741288.html

相关文章

Web——Vaadin

Vaadin 依赖说明:一个 Web 框架,允许你用纯Java 编写 UI,而不会陷入JS、HTML 和 CSS 的泥潭。 Vaadin的工作方式依赖于服务器端渲染,因此可以自然地集成到诸如Spring之类的框架中。 当您是后端开发人员时,您会听到人们…

什么是 WAL

什么是 WAL WAL(Write Ahead Log)预写日志,是数据库系统中常见的一种手段,用于保证数据操作的原子性和持久性。 在计算机科学中,「预写式日志」(Write-ahead logging,缩写 WAL)是关系数据库系统中用于提供…

verilog理论刷题篇1 Alwaysblock1 2

总结: using an assign statement,连续赋值给wire类型赋值assigna combinational always block,组合逻辑 always 块给wire类型赋值always (*)and a clocked always block.时序逻辑always 块给reg类型赋值always (posedge clk) 组合逻辑:使用assign always (&#x…

sqlserver2016无域alwayson搭建

前期准备: windows系统:window server 2016 数据库:sqlserver 2016 两台电脑 两个虚拟IP 1.安装windows 故障转移功能; 2.两节点添加相同名称的后缀DNS 3.访问 C:\Windows\System32\drivers\etc ,修改host文件&#xff08…

ALE简介

ALE的全称:Application Level Events ALE的位置: ALE的优势:屏蔽了“获取EPC数据组件”、“过滤组件”、“应用程序”之间的联系,使得其中任意组件的改变都不会影响到其他组件。 ALE接口: 1. Reading API 2. Writing A…

AVL-Review

二叉树的删除 最值节点一定是叶节点,没有子树,所以在移动最值节点后删除的时候不用考虑最值节点下的节点移动问题。 完全二叉树和完美二叉树的区别: 完美二叉树:一个深度为k(>-1)且有2^(k1) - 1个结点的二叉树 ​ 深度&am…

alv

*&---------------------------------------------------------------------* *& REPORT ZMMR238 *& *&---------------------------------------------------------------------* *& 需求描述:設備進機明細系統化 *& 需求單號&#xff1a…

ALV小计

导语:最近开发程序的时候,用户方有需求为特定商品以月维度看每天的销售明细,然后还要在每个月最后一单下面显示出月汇总,这就属于分组汇总的意思了。标准的合计按钮只能合计一列的所有,下面说一下具体实现方式。 我一…