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模板
自用模板,可能存在问题 一、主程序 *&---------------------------------------------------------------------* *& 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高速电主轴在模具自动化加工中的支持体现在以下几个关键方面: 1.高精度与稳定性:SycoTec 4060 ER-S锥面跳动小于1微米,确保了加工过程中的极高精度,这对于模具的复杂几何形状和严格公差要求至关重要。高精度加工…...
部署 DeepSpeed以推理 defog/sqlcoder-70b-alpha 模型
部署 DeepSpeed 以推理 defog/sqlcoder-70b-alpha 这样的 70B 模型是一个复杂的过程,涉及多个关键步骤。下面是详细的步骤,涵盖了从模型加载、内存优化到加速推理的全过程。 1. 准备环境 确保你的环境配置正确,以便能够顺利部署 defog/sqlc…...
Python网络爬虫基础
Python网络爬虫是一种自动化工具,用于从互联网上抓取信息。它通过模拟人类浏览网页的行为,自动地访问网站并提取所需的数据。网络爬虫在数据挖掘、搜索引擎优化、市场研究等多个领域都有广泛的应用。以下是Python网络爬虫的一些基本概念: 1.…...
每天五分钟机器学习:支持向量机数学基础之超平面分离定理
本文重点 超平面分离定理(Separating Hyperplane Theorem)是数学和机器学习领域中的一个重要概念,特别是在凸集理论和最优化理论中有着广泛的应用。该定理表明,在特定的条件下,两个不相交的凸集总可以用一个超平面进行分离。 定义与表述 超平面分离定理(Separating Hy…...
TCP/IP网络协议栈
TCP/IP网络协议栈是一个分层的网络模型,用于在互联网和其他网络中传输数据。它由几个关键的协议层组成,每一层负责特定的功能。以下是对TCP/IP协议栈的简要介绍: TCP/IP协议模型的分层 1. 应用层(Application Layer)…...
利用编程思维做题之最小堆选出最大的前10个整数
1. 理解问题 我们需要设计一个程序,读取 80,000 个无序的整数,并将它们存储在顺序表(数组)中。然后从这些整数中选出最大的前 10 个整数,并打印它们。要求我们使用时间复杂度最低的算法。 由于数据量很大,直…...
详解MVC架构与三层架构以及DO、VO、DTO、BO、PO | SpringBoot基础概念
🙋大家好!我是毛毛张! 🌈个人首页: 神马都会亿点点的毛毛张 今天毛毛张分享的是SpeingBoot框架学习中的一些基础概念性的东西:MVC结构、三层架构、POJO、Entity、PO、VO、DO、BO、DTO、DAO 文章目录 1.架构1.1 基本…...
Unity C# 影响性能的坑点
c用的时间长了怕unity的坑忘了,记录一下。 GetComponent最好使用GetComponent<T>()的形式, 继承自Monobehaviour的函数要避免空的Awake()、Start()、Update()、FixedUpdate().这些空回调会造成性能浪费 GetComponent方法最好避免在Update当中使用…...
工作学习:切换git账号
概括 最近工作用的git账号下发下来了,需要切换一下使用的账号。因为是第一次弄,不熟悉,现在记录一下。 打开设置 路径–git—git remotes,我这里选择项是Manage Remotes,点进去就可以了。 之后会出现一个输入框&am…...
量化交易系统开发-实时行情自动化交易-8.量化交易服务平台(一)
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来会对于收集整理的33个量化交易服…...
Scala习题
姓名,语文,数学,英语 张伟,87,92,88 李娜,90,85,95 王强,78,90,82 赵敏,92,88,91 孙涛,…...
结构方程模型(SEM)入门到精通:lavaan VS piecewiseSEM、全局估计/局域估计;潜变量分析、复合变量分析、贝叶斯SEM在生态学领域应用
目录 第一章 夯实基础 R/Rstudio简介及入门 第二章 结构方程模型(SEM)介绍 第三章 R语言SEM分析入门:lavaan VS piecewiseSEM 第四章 SEM全局估计(lavaan)在生态学领域高阶应用 第五章 SEM潜变量分析在生态学领域…...
OpenCV图像基础处理:通道分离与灰度转换
在计算机视觉处理中,理解图像的颜色通道和灰度表示是非常重要的基础知识。今天我们通过Python和OpenCV来探索图像的基本组成。 ## 1. 图像的基本组成 在数字图像处理中,彩色图像通常由三个基本颜色通道组成: - 蓝色(Blue&#x…...
C++ 类和对象(类型转换、static成员)
目录 一、前言 二、正文 1.隐式类型转换 1.1隐式类型转换的使用 2.static成员 2.1 static 成员的使用 2.1.1static修辞成员变量 2.1.2 static修辞成员函数 三、结语 一、前言 大家好,我们又见面了。昨天我们已经分享了初始化列表:https://blog.c…...
【网络安全设备系列】12、态势感知
0x00 定义: 态势感知(Situation Awareness,SA)能够检测出超过20大类的云上安全风险,包括DDoS攻击、暴力破解、Web攻击、后门木马、僵尸主机、异常行为、漏洞攻击、命令与控制等。利用大数据分析技术,态势感…...
Linux介绍与安装指南:从入门到精通
1. Linux简介 1.1 什么是Linux? Linux是一种基于Unix的操作系统,由Linus Torvalds于1991年首次发布。Linux的核心(Kernel)是开源的,允许任何人自由使用、修改和分发。Linux操作系统通常包括Linux内核、GNU工具集、图…...
BGE-M3模型结合Milvus向量数据库强强联合实现混合检索
在基于生成式人工智能的应用开发中,通过关键词或语义匹配的方式对用户提问意图进行识别是一个很重要的步骤,因为识别的精准与否会影响后续大语言模型能否检索出合适的内容作为推理的上下文信息(或选择合适的工具)以给出用户最符合…...
鸿蒙NEXT开发案例:文字转拼音
【引言】 在鸿蒙NEXT开发中,文字转拼音是一个常见的需求,本文将介绍如何利用鸿蒙系统和pinyin-pro库实现文字转拼音的功能。 【环境准备】 • 操作系统:Windows 10 • 开发工具:DevEco Studio NEXT Beta1 Build Version: 5.0.…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...
