当前位置: 首页 > news >正文

ABAP OOALV模板

自用模板,可能存在问题

一、主程序

*&---------------------------------------------------------------------*
*& Report ZVIA_OO_ALV
*&---------------------------------------------------------------------*
REPORT ZVIA_OO_ALV.INCLUDE ZVIA_OO_ALV_TOP1."OO ALV定义相关 (可能需要修改)
INCLUDE ZVIA_OO_ALV_TOP2."程序数据定义相关 (需要修改)
INCLUDE ZVIA_OO_ALV_S01."选择屏幕,获取用户输入 (需要修改)
INCLUDE ZVIA_OO_ALV_F01."取数逻辑等子例程 (需要修改)
INCLUDE ZVIA_OO_ALV_F02."OO ALV 相关 (需要修改)START-OF-SELECTION.PERFORM FRM_GET_DATA.END-OF-SELECTION.CALL SCREEN 2000.

二、OO ALV定义相关

*&---------------------------------------------------------------------*
*& 包含               ZVIA_OO_ALV_TOP1
*&---------------------------------------------------------------------*
DATA:gv_ucomm TYPE sy-ucomm,ok_code  TYPE sy-ucomm.DATA:gv_col_pos             LIKE sy-cucol,g_wa_allfields         TYPE lvc_s_fcat,g_grid_alv             TYPE REF TO cl_gui_alv_grid, "列表g_container_alv        TYPE scrfname VALUE 'GC_2000', "容器 (可能需要修改)g_custom_container_alv TYPE REF TO cl_gui_custom_container,gw_layout_alv          TYPE lvc_s_layo,gt_fieldcat_alv        TYPE lvc_t_fcat,gw_fieldcat_alv        TYPE lvc_s_fcat,gw_exclude_alv         TYPE ui_func,gt_exclude_alv         TYPE TABLE OF ui_func.*OO ALV Display*
DATA:go_alv TYPE REF TO cl_gui_alv_grid."声明ALV对象

 需要创建屏幕2000

三、程序数据相关

*&---------------------------------------------------------------------*
*& 包含               ZVIA_OO_ALV_TOP2
*&---------------------------------------------------------------------**根据报表数据结构来定义内表和结构体*
DATA:git_stu TYPE STANDARD TABLE OF zvia_stu,"内表gw_stu  TYPE zvia_stu."结构体TABLES:zvia_stu."使用到的表

四、选择屏幕

确认要使用到的用户选择字段

*&---------------------------------------------------------------------*
*& 包含               ZVIA_OO_ALV_S01
*&---------------------------------------------------------------------*
SELECT-OPTIONS:s_id FOR zvia_stu-stuid.

五、 取数逻辑等子例程

写自己的取数逻辑,这里写的比较简单

*&---------------------------------------------------------------------*
*& 包含               ZVIA_OO_ALV_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
*& 取数逻辑
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_get_data .SELECT *from  ZVIA_STUINTO TABLE git_stuWHERE stuid in s_id.
ENDFORM.

六、OO ALV 显示等相关 

*&---------------------------------------------------------------------*
*& 包含               ZVIA_OO_ALV_F02
*&---------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.PUBLIC SECTION.METHODS:handle_top_of_pageFOR EVENT top_of_page OF cl_gui_alv_gridIMPORTING e_dyndoc_id,handle_double_clickFOR EVENT double_click OF cl_gui_alv_gridIMPORTING e_row e_column es_row_no,handle_toolbar_alvFOR EVENT toolbar OF cl_gui_alv_gridIMPORTING e_object e_interactive,handle_user_command_alvFOR EVENT user_command OF cl_gui_alv_gridIMPORTING e_ucomm,handle_onf4_helpFOR EVENT onf4 OF cl_gui_alv_gridIMPORTING e_fieldnamees_row_no"ER_EVENT_DATE,er_event_data,"HANDLE_DATE_CHANGED_alvHANDLE_DATA_CHANGED_alvFOR EVENT data_changed OF cl_gui_alv_gridIMPORTING er_data_changed.PRIVATE SECTION.
ENDCLASS.CLASS lcl_event_receiver IMPLEMENTATION.METHOD handle_double_click.MESSAGE 'SHUANG JI' TYPE 'S'.ENDMETHOD.METHOD handle_toolbar_alv.DATA:ls_toolbar TYPE stb_button.CLEAR: ls_toolbar.ls_toolbar-butn_type = 3."分隔符"APPEND LS_TOOLBAR TO E_ONJECT->MT_TOOLBAR.APPEND ls_toolbar TO e_object->mt_toolbar.CLEAR: ls_toolbar.ENDMETHOD.METHOD handle_user_command_alv.ENDMETHOD.METHOD handle_onf4_help.er_event_data->m_event_handled = 'X'.ENDMETHOD.METHOD handle_data_changed_alv.PERFORM handle_data_changed USING er_data_changed.ENDMETHOD.METHOD handle_top_of_page.ENDMETHOD.
ENDCLASS.FORM sub_set_field USING VALUE(p_first)VALUE(p_col_pos)VALUE(p_fieldname)VALUE(p_coltext)VALUE(p_key)VALUE(p_edit)VALUE(p_outputlen)VALUE(p_f4availabl)VALUE(p_checkbox).CLEAR g_wa_allfields.g_wa_allfields-col_pos = p_col_pos.g_wa_allfields-fieldname = p_fieldname.g_wa_allfields-coltext = p_coltext.g_wa_allfields-key = p_key.g_wa_allfields-edit = p_edit.g_wa_allfields-outputlen = p_outputlen.g_wa_allfields-f4availabl = p_f4availabl.g_wa_allfields-checkbox = p_checkbox.IF p_first = '1'.APPEND g_wa_allfields TO gt_fieldcat_alv.ENDIF.
ENDFORM.
*&---------------------------------------------------
*&FORM FRM_SET_ALV.行项目-需要修改-ALV报表需要显示哪些列
*&按照自己的需求改这里的列对应的字段和列名--------------
*&---------------------------------------------------
FORM frm_set_alv.CLEAR:gv_col_pos,gt_fieldcat_alv,gw_fieldcat_alv.gv_col_pos = gv_col_pos + 1.PERFORM sub_set_field USING '1' gv_col_pos 'STUID' '学生ID' '' '' '10' '' ''.gv_col_pos = gv_col_pos + 1.PERFORM sub_set_field USING '1' gv_col_pos 'STUNAME' '学生姓名' '' '' '10' '' ''.gv_col_pos = gv_col_pos + 1.PERFORM sub_set_field USING '1' gv_col_pos 'GENDER' '性别' '' '' '10' '' ''.gv_col_pos = gv_col_pos + 1.PERFORM sub_set_field USING '1' gv_col_pos 'AGE' '年龄' '' '' '10' '' ''.
ENDFORM.
*&---------------------------------------------------
*&FORM FRM_PREPARE_LAYOUT
*&ALV 显示相关的参数-比如是否可以编辑,是否可以选择
*&---------------------------------------------------
*&---------------------------------------------------
*&---------------------------------------------------
FORM frm_prepare_layout CHANGING cs_layout TYPE lvc_s_layo.cs_layout-zebra = 'X'."可选行颜色cs_layout-smalltitle = 'X'."标题大小cs_layout-edit_mode = 'X'."编辑模式cs_layout-cwidth_opt = 'X'."优化列宽度cs_layout-edit = ''."准备输入
*    CS_LAYOUT-NO ROWMWARK = ''."禁用行选择
*    CS_LAYOUT-SEL_MODE = 'R'."选择方式cs_layout-stylefname = 'STYLE'."内部表字段的字段名称cs_layout-info_fname = 'CLR'."WEB中显示的行数
*    CS_LAYOUT-NO_HGRIDLN = 'X'."隐藏水平网格线
ENDFORM.*&---------------------------------------------------
*&FORM HANDLE_DATA_CHANGED
*&---------------------------------------------------
FORM handle_data_changed USING p_er_data_changed TYPE REF TO cl_alv_changed_data_protocol.DATA: lw_mod_cell TYPE lvc_s_modi.DATA: lv_jine TYPE p DECIMALS 4.DATA:lv_shul TYPE p DECIMALS 4.IF p_er_data_changed->mt_mod_cells IS NOT INITIAL.LOOP AT p_er_data_changed->mt_mod_cells INTO lw_mod_cell.ENDLOOP.PERFORM sub_alv_refresh.ENDIF.
ENDFORM.*&---------------------------------------------------
*&FORM SUB_ALV_REFRESH
*&---------------------------------------------------
FORM sub_alv_refresh.DATA: lw_stable TYPE lvc_s_stbl."刷新稳定性lw_stable-row = 'X'.lw_stable-col = 'X'.CALL METHOD g_grid_alv->refresh_table_displayEXPORTING is_stable = lw_stable.
ENDFORM.*&---------------------------------------------------
*&MODULE STATUS_2000 OUTPUT.
*&---------------------------------------------------
*&这里面需要手动创建STATUS/TITLEBAR-------------------
*&---------------------------------------------------
MODULE status_2000 OUTPUT.SET PF-STATUS 'ZPF'."复制标准菜单栏(双击创建)SET TITLEBAR 'ZTITLE'."ALV显示的标题行(双击创建)PERFORM frm_prepare_layout CHANGING gw_layout_alv.PERFORM frm_2000_alv_show.
ENDMODULE.*&---------------------------------------------------
*&MOUDLE USER_COMMAND_2000 INPUT
*&---------------------------------------------------
*&用来响应用户的操作----------------------------------
*&---------------------------------------------------
MODULE user_command_2000 INPUT.gv_ucomm = ok_code.CASE gv_ucomm.WHEN '&F03' OR '&F12' OR '&F15'.LEAVE TO SCREEN 0."返回上一屏幕WHEN 'TEST'.MESSAGE 'TEST CLICKED' TYPE 'S'.WHEN OTHERS.ENDCASE.
ENDMODULE.*&---------------------------------------------------
*&FORM SUB SCREEN 2000
*&---------------------------------------------------
FORM sub_screen_2000.PERFORM frm_prepare_layoutCHANGINGgw_layout_alv.
ENDFORM.
*&---------------------------------------------------
*&FORM FRM 2000 ALV SCREEN
*&---------------------------------------------------
FORM frm_2000_alv_show.DATA:lw_variant           TYPE disvariant,lo_event_handler_alv TYPE REF TO lcl_event_receiver.lw_variant-report = sy-repid.PERFORM frm_set_alv.CREATE OBJECT lo_event_handler_alv.IF g_grid_alv IS INITIAL.CREATE OBJECT g_custom_container_alvEXPORTINGcontainer_name = g_container_alv."带参数的构造函数CREATE OBJECT g_grid_alvEXPORTINGi_parent = g_custom_container_alv."带参数的构造函数CALL METHOD g_grid_alv->set_table_for_first_displayEXPORTINGis_layout            = gw_layout_alvit_toolbar_excluding = gt_exclude_alvi_save               = 'A'is_variant           = lw_variantCHANGINGit_fieldcatalog      = gt_fieldcat_alvit_outtab            = git_stu[].SET HANDLER lo_event_handler_alv->handle_toolbar_alv FOR g_grid_alv.CALL METHOD g_grid_alv->register_edit_eventEXPORTINGi_event_id = cl_gui_alv_grid=>mc_evt_modified.*用户操作SET HANDLER lo_event_handler_alv->handle_user_command_alv FOR g_grid_alv.SET HANDLER lo_event_handler_alv->handle_data_changed_alv FOR g_grid_alv.*ALV双击SET HANDLER lo_event_handler_alv->handle_double_click FOR g_grid_alv.CALL METHOD g_grid_alv->set_toolbar_interactive.ELSE.CALL METHOD g_grid_alv->refresh_table_display.CALL METHOD cl_gui_cfw=>flush.ENDIF.
ENDFORM.

相关文章:

ABAP OOALV模板

自用模板&#xff0c;可能存在问题 一、主程序 *&---------------------------------------------------------------------* *& Report ZVIA_OO_ALV *&---------------------------------------------------------------------* REPORT ZVIA_OO_ALV.INCLUDE ZVI…...

YOLOv8-ultralytics-8.2.103部分代码阅读笔记-autobatch.py

autobatch.py ultralytics\utils\autobatch.py 目录 autobatch.py 1.所需的库和模块 2.def check_train_batch_size(model, imgsz640, ampTrue, batch-1): 3.def autobatch(model, imgsz640, fraction0.60, batch_sizeDEFAULT_CFG.batch): 1.所需的库和模块 # Ultraly…...

SycoTec 4060 ER-S德国高精密主轴电机如何支持模具的自动化加工?

SycoTec 4060 ER-S高速电主轴在模具自动化加工中的支持体现在以下几个关键方面&#xff1a; 1.高精度与稳定性&#xff1a;SycoTec 4060 ER-S锥面跳动小于1微米&#xff0c;确保了加工过程中的极高精度&#xff0c;这对于模具的复杂几何形状和严格公差要求至关重要。高精度加工…...

部署 DeepSpeed以推理 defog/sqlcoder-70b-alpha 模型

部署 DeepSpeed 以推理 defog/sqlcoder-70b-alpha 这样的 70B 模型是一个复杂的过程&#xff0c;涉及多个关键步骤。下面是详细的步骤&#xff0c;涵盖了从模型加载、内存优化到加速推理的全过程。 1. 准备环境 确保你的环境配置正确&#xff0c;以便能够顺利部署 defog/sqlc…...

Python网络爬虫基础

Python网络爬虫是一种自动化工具&#xff0c;用于从互联网上抓取信息。它通过模拟人类浏览网页的行为&#xff0c;自动地访问网站并提取所需的数据。网络爬虫在数据挖掘、搜索引擎优化、市场研究等多个领域都有广泛的应用。以下是Python网络爬虫的一些基本概念&#xff1a; 1.…...

每天五分钟机器学习:支持向量机数学基础之超平面分离定理

本文重点 超平面分离定理(Separating Hyperplane Theorem)是数学和机器学习领域中的一个重要概念,特别是在凸集理论和最优化理论中有着广泛的应用。该定理表明,在特定的条件下,两个不相交的凸集总可以用一个超平面进行分离。 定义与表述 超平面分离定理(Separating Hy…...

TCP/IP网络协议栈

TCP/IP网络协议栈是一个分层的网络模型&#xff0c;用于在互联网和其他网络中传输数据。它由几个关键的协议层组成&#xff0c;每一层负责特定的功能。以下是对TCP/IP协议栈的简要介绍&#xff1a; TCP/IP协议模型的分层 1. 应用层&#xff08;Application Layer&#xff09;…...

利用编程思维做题之最小堆选出最大的前10个整数

1. 理解问题 我们需要设计一个程序&#xff0c;读取 80,000 个无序的整数&#xff0c;并将它们存储在顺序表&#xff08;数组&#xff09;中。然后从这些整数中选出最大的前 10 个整数&#xff0c;并打印它们。要求我们使用时间复杂度最低的算法。 由于数据量很大&#xff0c;直…...

详解MVC架构与三层架构以及DO、VO、DTO、BO、PO | SpringBoot基础概念

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 今天毛毛张分享的是SpeingBoot框架学习中的一些基础概念性的东西&#xff1a;MVC结构、三层架构、POJO、Entity、PO、VO、DO、BO、DTO、DAO 文章目录 1.架构1.1 基本…...

Unity C# 影响性能的坑点

c用的时间长了怕unity的坑忘了&#xff0c;记录一下。 GetComponent最好使用GetComponent<T>()的形式&#xff0c; 继承自Monobehaviour的函数要避免空的Awake()、Start()、Update()、FixedUpdate().这些空回调会造成性能浪费 GetComponent方法最好避免在Update当中使用…...

工作学习:切换git账号

概括 最近工作用的git账号下发下来了&#xff0c;需要切换一下使用的账号。因为是第一次弄&#xff0c;不熟悉&#xff0c;现在记录一下。 打开设置 路径–git—git remotes&#xff0c;我这里选择项是Manage Remotes&#xff0c;点进去就可以了。 之后会出现一个输入框&am…...

量化交易系统开发-实时行情自动化交易-8.量化交易服务平台(一)

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来会对于收集整理的33个量化交易服…...

Scala习题

姓名&#xff0c;语文&#xff0c;数学&#xff0c;英语 张伟&#xff0c;87&#xff0c;92&#xff0c;88 李娜&#xff0c;90&#xff0c;85&#xff0c;95 王强&#xff0c;78&#xff0c;90&#xff0c;82 赵敏&#xff0c;92&#xff0c;88&#xff0c;91 孙涛&#xff0c…...

结构方程模型(SEM)入门到精通:lavaan VS piecewiseSEM、全局估计/局域估计;潜变量分析、复合变量分析、贝叶斯SEM在生态学领域应用

目录 第一章 夯实基础 R/Rstudio简介及入门 第二章 结构方程模型&#xff08;SEM&#xff09;介绍 第三章 R语言SEM分析入门&#xff1a;lavaan VS piecewiseSEM 第四章 SEM全局估计&#xff08;lavaan&#xff09;在生态学领域高阶应用 第五章 SEM潜变量分析在生态学领域…...

OpenCV图像基础处理:通道分离与灰度转换

在计算机视觉处理中&#xff0c;理解图像的颜色通道和灰度表示是非常重要的基础知识。今天我们通过Python和OpenCV来探索图像的基本组成。 ## 1. 图像的基本组成 在数字图像处理中&#xff0c;彩色图像通常由三个基本颜色通道组成&#xff1a; - 蓝色&#xff08;Blue&#x…...

C++ 类和对象(类型转换、static成员)

目录 一、前言 二、正文 1.隐式类型转换 1.1隐式类型转换的使用 2.static成员 2.1 static 成员的使用 2.1.1static修辞成员变量 2.1.2 static修辞成员函数 三、结语 一、前言 大家好&#xff0c;我们又见面了。昨天我们已经分享了初始化列表&#xff1a;https://blog.c…...

【网络安全设备系列】12、态势感知

0x00 定义&#xff1a; 态势感知&#xff08;Situation Awareness&#xff0c;SA&#xff09;能够检测出超过20大类的云上安全风险&#xff0c;包括DDoS攻击、暴力破解、Web攻击、后门木马、僵尸主机、异常行为、漏洞攻击、命令与控制等。利用大数据分析技术&#xff0c;态势感…...

Linux介绍与安装指南:从入门到精通

1. Linux简介 1.1 什么是Linux&#xff1f; Linux是一种基于Unix的操作系统&#xff0c;由Linus Torvalds于1991年首次发布。Linux的核心&#xff08;Kernel&#xff09;是开源的&#xff0c;允许任何人自由使用、修改和分发。Linux操作系统通常包括Linux内核、GNU工具集、图…...

BGE-M3模型结合Milvus向量数据库强强联合实现混合检索

在基于生成式人工智能的应用开发中&#xff0c;通过关键词或语义匹配的方式对用户提问意图进行识别是一个很重要的步骤&#xff0c;因为识别的精准与否会影响后续大语言模型能否检索出合适的内容作为推理的上下文信息&#xff08;或选择合适的工具&#xff09;以给出用户最符合…...

鸿蒙NEXT开发案例:文字转拼音

【引言】 在鸿蒙NEXT开发中&#xff0c;文字转拼音是一个常见的需求&#xff0c;本文将介绍如何利用鸿蒙系统和pinyin-pro库实现文字转拼音的功能。 【环境准备】 • 操作系统&#xff1a;Windows 10 • 开发工具&#xff1a;DevEco Studio NEXT Beta1 Build Version: 5.0.…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者&#xff0c;高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法&#xff0c;分为两大系列&#xff1a; 一、getElementBy... 系列 传统方法&#xff0c;直接通过 DOM 接口访问&#xff0c;返回动态集合&#xff08;元素变化会实时更新&#xff09;。…...