abap开发报表模版,虽然接触SAP这么多年了但是一直在做java,以及java与sap集成, 只停留在abap边缘,没有真正的去学习这强大的SAP,现在开始必须慢慢深入了,加油吧。 **&---------------------------------------------------------------------* **& Report ZZHZALV * *& * *&---------------------------------------------------------------------* * *&ALV模板代码 * *&create by 2010.12.29 * *&author zhanghz * *&---------------------------------------------------------------------* REPORT zzhzalv. TYPE-POOLS: slis. ************************************************************************* * *TABLES * ************************************************************************ TABLES:mara. ************************************************************************* * *internal table * ************************************************************************ DATA:BEGIN OF i_list OCCURS 0, matnr LIKE mara-matnr, vpsta LIKE mara-vpsta, laeng LIKE mara-laeng, END OF i_list. ************************************************************************* * *ALV data type * ************************************************************************ DATA: l_repid LIKE sy-repid. DATA: wa_fieldcat TYPE slis_fieldcat_alv, gt_fieldcat TYPE slis_t_fieldcat_alv. DATA: g_list_top_of_page TYPE slis_t_listheader. CONSTANTS:c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'. l_repid = sy-repid. ************************************************************************* * *SELECT-SRECCN * ************************************************************************ SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1."选择屏幕块 SELECT-OPTIONS: zmatnr FOR mara-matnr."范围的定义 selection-screen skip 1."跳过一行 parameters: werks like marc-werks obligatory."单值的定义 parameters: pp(10) matchcode object ZBMBZ."收索帮助,zbmbz为收索帮助的名称 parameters: a1 as checkbox."单选框 parameters: b1 radiobutton group g1,"复选框 b2 radiobutton group g1. SELECTION-SCREEN END OF BLOCK bl1. selection-screen comment 2(20) txt."选择屏幕的注释 at selection-screen on help-request for werks. message 'ssss' type 'I'. * ************************************************************************ * *SELECT-OF-SELECTION * ************************************************************************ START-OF-SELECTION. PERFORM sub_get_data. IF sy-subrc <> 0 . MESSAGE '您查找的数据未在数据库中找到,请重新输入!' TYPE 'I' . ELSE. * * PERFORM sub_process_data . PERFORM sub_display_data . ENDIF. * ************************************************************************* * **END-OF-SELECTION * ************************************************************************* END-OF-SELECTION . * **&--------------------------------------------------------------------* * **& Form top_of_page 显示标题用的 * **&--------------------------------------------------------------------* FORM top_of_page. "显示标题用的 CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = g_list_top_of_page. ENDFORM. " top_of_page **&---------------------------------------------------------------------* * *& Form sub_get_data 取得数据 * *&---------------------------------------------------------------------* * * text * *----------------------------------------------------------------------* FORM sub_get_data. SELECT * INTO CORRESPONDING FIELDS OF TABLE i_list FROM mara WHERE matnr IN zmatnr. ENDFORM. "sub_get_data **&---------------------------------------------------------------------* * *& Form sub_process_data 处理数据 * *&---------------------------------------------------------------------* * * text * *----------------------------------------------------------------------* FORM sub_process_data. ENDFORM. "sub_process_data **&---------------------------------------------------------------------* * *& Form sub_display_data 显示数据 * *&---------------------------------------------------------------------* * * text * *----------------------------------------------------------------------* FORM sub_display_data. * ******initial datatab DATA: l_i_output LIKE i_list OCCURS 0 WITH HEADER LINE. "i_list读取数据表 *****initial title PERFORM build_comment_summary TABLES l_i_output USING g_list_top_of_page[]. ****initial field category DATA: l_i_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE. PERFORM init_alv_summary TABLES l_i_fieldcat. * ****initial others DATA: l_s_layout TYPE slis_layout_alv. l_s_layout-colwidth_optimize = 'X'."字符适合宽度 * * l_s_layout-zebra = 'XXX'."行的颜色 ****initial event DATA:l_events TYPE slis_t_event. PERFORM build_eventtab USING l_events[]. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = l_repid i_default = 'X' i_save = 'X' * * i_layout-f2code = ' ' i_callback_user_command = 'USER_COMMAND' it_events = l_events[] is_layout = l_s_layout it_fieldcat = l_i_fieldcat[] TABLES t_outtab = i_list"读取数据的内表,显示在alv中 EXCEPTIONS program_error = 1 other = 2 . ENDFORM. "sub_display_data * *&---------------------------------------------------------------------* * *& Form build_eventtab * *&---------------------------------------------------------------------* FORM build_eventtab USING v_events TYPE slis_t_event. DATA: l_event TYPE slis_alv_event. "Returns table of possible events for a list type CALL FUNCTION 'REUSE_ALV_EVENTS_GET' EXPORTING i_list_type = 0 IMPORTING et_events = v_events. "List type (0,1,2,3) DATA: l_tabix LIKE sy-tabix. CLEAR l_event-form. READ TABLE v_events WITH KEY name = slis_ev_top_of_page INTO l_event. l_tabix = sy-tabix. IF sy-subrc = 0. MOVE c_formname_top_of_page TO l_event-form. MODIFY v_events FROM l_event INDEX l_tabix. ENDIF. ENDFORM. " build_eventtab **&---------------------------------------------------------------------* * *& Form build_comment_summary * *&---------------------------------------------------------------------* FORM build_comment_summary TABLES v_i_output STRUCTURE i_list "读取数据的内表 USING v_list_top_of_page TYPE slis_t_listheader. DATA: l_line TYPE slis_listheader. CLEAR l_line. l_line-typ = 'H'. l_line-key = ''. l_line-info = '我的测试表'. APPEND l_line TO v_list_top_of_page. ENDFORM. " build_comment_summary **&---------------------------------------------------------------------* * *& Form init_alv_summary * *&---------------------------------------------------------------------* FORM init_alv_summary TABLES v_i_fieldcat TYPE slis_t_fieldcat_alv. REFRESH v_i_fieldcat. CLEAR v_i_fieldcat. v_i_fieldcat-fieldname = 'MATNR'. v_i_fieldcat-tabname = 'I_LIST'. v_i_fieldcat-seltext_m = '物料号123'. v_i_fieldcat-key = 'X'. * * v_i_fieldcat-ref_fieldname = 'MATNR'. "收索帮助 * * v_i_fieldcat-ref_tabname = 'MAKT'. APPEND v_i_fieldcat. CLEAR v_i_fieldcat. v_i_fieldcat-fieldname = 'VPSTA'. v_i_fieldcat-tabname = 'I_LIST'. v_i_fieldcat-seltext_m = '维护全部物料状态'. * * v_i_fieldcat-outputlen = '20'."列的字符宽度 * * v_i_fieldcat-edit = 'X'."可编辑的属性 APPEND v_i_fieldcat. CLEAR v_i_fieldcat. * * v_i_fieldcat-decimals_out = '0'. "去掉该字段小数点后的0 * * v_i_fieldcat-EMPHASIZE = 'C700'. "给该字段加上颜色 * * v_i_fieldcat-just = 'L'. "对齐方式 v_i_fieldcat-fieldname = 'LAENG'. v_i_fieldcat-tabname = 'I_LIST'. v_i_fieldcat-seltext_m = '长度'. * v_i_fieldcat-do_sum = 'X'. "总计该列的值 APPEND v_i_fieldcat. ENDFORM. " init_alv_summary * *&--------------------------------------------------------------------* * *& Form USER_COMMAND * *&--------------------------------------------------------------------* * * text ** *---------------------------------------------------------------------* * * -->UCOMM text * * -->SELFIELD text * *---------------------------------------------------------------------* FORM user_command USING ucomm LIKE sy-ucomm "接收用户的命令 selfield TYPE slis_selfield. READ TABLE i_list INDEX selfield-tabindex. CHECK sy-subrc = 0. CASE ucomm. WHEN '&IC1'. "&DATA_SAVE响应保存键 CASE selfield-sel_tab_field. WHEN 'I_LIST-MATNR'. "这里必须大写 SET PARAMETER ID 'BES' FIELD i_list-matnr . "参数id为aun,根据id给屏幕传参数 CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN."调用事务位va03的事务且跳过第一个屏幕 * **************************************显示第二层ALV******************************** WHEN 'I_LIST-VPSTA'. LOOP AT I_LIST INTO I_LIST WHERE VPSTA = I_LIST-VPSTA. ENDLOOP. PERFORM frm_buildfieldcat_lips. PERFORM frm_display_lips. ENDCASE. ENDCASE. ENDFORM. "USER_COMMAND **&---------------------------------------------------------------------* * *& Form frm_buildfieldcat_lips * *&---------------------------------------------------------------------* * * text * *----------------------------------------------------------------------* * * --> p1 text * * <-- p2 text * *----------------------------------------------------------------------* FORM frm_buildfieldcat_lips . CLEAR wa_fieldcat. REFRESH gt_fieldcat[]. DEFINE add_field. "定义宏 wa_fieldcat-fieldname = &1. wa_fieldcat-reptext_ddic = &2. wa_fieldcat-hotspot = &3. append wa_fieldcat to gt_fieldcat. END-OF-DEFINITION. add_field 'MATNR' '物料号tc ' 'X'. add_field 'VPSTA' '描述' ' ' . add_field 'LAENG' '长度' ' ' . ENDFORM. " frm_buildfieldcat_ekpo * **&---------------------------------------------------------------------* * **& Form frm_display_lips * **&---------------------------------------------------------------------* * ** text * **----------------------------------------------------------------------* * ** --> p1 text * ** <-- p2 text * **----------------------------------------------------------------------* FORM frm_display_lips . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = l_repid it_fieldcat = gt_fieldcat i_screen_start_column = 20 i_screen_start_line = 30 i_screen_end_column = 80 i_screen_end_line = 40 TABLES t_outtab = i_list."第二层alv显示数据的内表 ENDFORM. " frm_display_lips
相关推荐
### ABAP ALV 报表基础模板(两种) #### 第一种:普通模板 在 SAP 的 ABAP 开发环境中,ALV(Application List Viewer)是一种常用的技术来展示数据列表。本篇文档将详细介绍一种用于创建 ABAP ALV 报表的基础...
### ALV OO模板详解 #### 一、ALV OO(Object-Oriented)概述 ALV(Application List Viewer)是SAP系统中用于显示列表数据的一种标准工具,它提供了丰富的功能,如排序、筛选、分组等。在ABAP语言中,ALV有两种...
根据提供的文件信息,本文将详细解析“ALV程序模板”的相关内容。ALV(Application List Viewer)是SAP系统中一种非常强大的列表展示工具,广泛应用于报告、查询等场景。接下来,我们将从类型池(Type Pools)、表...
SAP ABAP开发,ALV开发标准模板:程序开发中用到的表和变量声明,ALV数据组,类型池,定义ALV显示的字段列及其描述等属性,选择屏幕,获取数据,ALV 输出(设置 ALV 输出格式、设置 ALV 输出字段和ALV 显示)
ALV报表.abap报表 ALV(Application List Viewer)是一种常用的ABAP报表工具,通过它可以快速生成报表,具有良好的可读性和交互性。本文将通过一个实际的ALV报表示例,详细介绍ALV报表的编写过程和相关技术要点。 ...
描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,这表明我们将重点关注ALV的基本概念、数据格式以及如何通过REUSE_ALV_GRID_DISPLAY_LVC函数来实现ALV的显示。 ALV格式通常涉及如何组织...
ABAP OOALV报表开发,定义变量,选择屏幕定义,创建类,调用函数
[SAP ABAP开发技术总结]ALV详解(Fuction ALV 和OO ALV) 图文并茂,详细介绍了Fuction ALV 和OO ALV的相关开发 [SAP ABAP开发技术总结]ALV详解:Function ALV(一) [SAP ABAP开发技术总结]ALV详解:Function ALV...
"ABAP-ALV进阶知识点详解" ABAP-ALV进阶是指在SAP系统中使用ABAP语言开发的高级列表查看器(ALV)。ALV是SAP系统中心的列表标准,可以在ABAP程序中进行报表输出。下面是ABAP-ALV进阶的知识点详解: 一、ALV概要 ...
ALV,全称ABAP List Viewer,是一种在SAP系统中用于展示数据的标准组件。它允许开发者创建用户友好的表格界面,以统一的形式展示数据,同时提供了丰富的交互功能。ALV分为两种主要类型:简单列表(SIMPLE LIST)和...
### ABAP OOALV 学习文档详析 #### 一、ABAP OOALV 概述 **ABAP OOALV**(Object-Oriented Application List Viewer)是一种用于SAP系统的高级列表显示技术,主要用于生成复杂的报表和列表视图。自R/3 4.6C版本起...
### 在ALV里编写回车事件 #### 一、引言 在开发基于ABAP的业务应用程序时,经常需要处理用户界面(UI)中的各种事件,以实现与用户的交互。其中,ALV(Application List Viewer)是SAP ABAP平台上一个强大的列表...
在ABAP(Advanced Business Application Programming)中,ALV(ABAP List Viewer)是SAP提供的一种用于显示数据表的标准化接口。本篇我们将深入探讨如何使用Function来实现ALV Table的弹出窗口形式,这对于创建用户...
在SAP系统中,ALV(Accelerated List Viewer)是一种用于数据展示的工具,它提供了标准的表格形式来显示数据库查询结果。ALV是ABAP编程的重要组成部分,它简化了复杂数据的可视化处理。本篇将深入探讨如何通过ABAP...
标题中提及的“OOALV常用功能完整简例”,描述中说明了该简例包含的内容:热键单击、双击、帮助、编辑和自定义工具条等。OOALV是指面向对象的ALV,它是在SAP系统中常用的报表输出组件,用于将数据以表格形式展示。在...
SAP ALV Grid 资料整理(很全面) SAP ALV Grid 是一种灵活的工具,用于显示列表,并提供了常见的列表操作通用函数,可以通过自定义选项来增强其功能。ALV Grid 控件可以创建非层次的友好交互式报表,是一个基于...
面向对象的ALV开发在SAP ABAP环境中是一种先进的数据展示技术,相比于传统的函数模块`REUSE_ALV_GRID_DISPLAY`,面向对象的方式提供了更灵活、更可扩展的解决方案。通过利用`CL_SALV_TABLE`类,开发者可以构建更加...
在SAP系统中,ALV(Application List Viewer)是一种用于展示和处理大量数据的强大工具,它不仅能够以列表形式展示数据,还提供了多种交互功能,如排序、筛选、分组等。然而,在某些应用场景下,ALV界面中预设的一些...
在ABAP开发中,ALV(Accelerated List Viewer)是一种常用的数据展示工具,它提供了灵活的表格布局和交互性。用户通常需要对ALV进行定制,以满足特定的需求,例如添加自定义按钮来实现数据的打印或导出到Excel。本篇...
### SAP ABAP ALV 分页显示技术解析 #### 核心知识点:SAP ABAP ALV 分页显示 本篇文章将深入分析一个基于SAP ABAP的ALV(Application List Viewer)分页显示的实现方法。ALV是SAP GUI中用于展示表格数据的一种...