SAP ABAP ALV-GRID-CLASS-SPLITTER一屏双页

news2024/12/23 14:35:26

ALV-GRID-CLASS-SPLITTER

备注说明:

ALV屏幕分割,把一个ALV屏幕分成两个或多个屏幕

创建一个屏幕:0100,上面一个定制控件,名称: ALV_CONTAIN1 .

代码如下:

PROCESS BEFORE OUTPUT.
  MODULE STATUS_0100.
  MODULE F_INIT_SPLITTER.
  MODULE F_CREAT_ALV_CONTROL.
PROCESS AFTER INPUT.
 MODULE PAI_0100.
 
 
 
REPORT YTEST_HE12.
 
DATA: OK_CODE LIKE SY-UCOMM.
 
*&**定义CLASS ALV用到的变量
DATA: GS_LAYOUT TYPE lvc_s_layo,
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
CUSTOM_CONTAIN1 TYPE REF TO cl_gui_custom_container.
 
DATA: G_SPLIT_CONTAINER TYPE REF TO CL_GUI_SPLITTER_CONTAINER.
 
DATA: G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
 
DATA: ALV_GRID_1 TYPE REF TO CL_GUI_ALV_GRID,
ALV_GRID_2 TYPE REF TO CL_GUI_ALV_GRID.
 
DATA: G_CONTAINER_1 TYPE REF TO CL_GUI_CONTAINER,
G_CONTAINER_2 TYPE REF TO CL_GUI_CONTAINER.
 
DATA: G_CUSTOM_CONTROL_NAME TYPE SCRFNAME VALUE 'ALV_CONTAIN1'.
 
 
DATA: gt_fieldcat TYPE LVC_T_FCAT . "一个表
DATA: LS_FIELDCAT TYPE LVC_S_FCAT. "一个结构
 
 
DATA: BEGIN OF GT_DATA OCCURS 0.
INCLUDE STRUCTURE SPFLI.
DATA: END OF GT_DATA.
 
**&***************************************
CALL SCREEN 0100.
*&---------------------------------------------------------------------*
*& Module PBO_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module PAI_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE PAI_0100 INPUT.
CASE OK_CODE.
WHEN 'BACK' OR 'EXIT' OR 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " PAI_0100 INPUT
*&---------------------------------------------------------------------*
*& Module F_INIT_SPLITTER OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE F_INIT_SPLITTER OUTPUT.
IF G_CUSTOM_CONTAINER IS INITIAL .
*----CREATING CUSTOM CONTAINER INSTANCE
CREATE OBJECT G_CUSTOM_CONTAINER
EXPORTING
CONTAINER_NAME = G_CUSTOM_CONTROL_NAME
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6.
 
 
*--CREATE SPLITTER FOR CUSTOM_CONTAINER
IF G_SPLIT_CONTAINER IS INITIAL.
 
* CREATE SPLITTER
CREATE OBJECT G_SPLIT_CONTAINER
EXPORTING
PARENT = G_CUSTOM_CONTAINER
ROWS = 2 "2
COLUMNS = 1.
 
* GET UPPPER CONTAINER IN SPLITTER
 
CALL METHOD G_SPLIT_CONTAINER->GET_CONTAINER
EXPORTING
ROW = 1
COLUMN = 1
RECEIVING
CONTAINER = G_CONTAINER_1.
 
 
CALL METHOD G_SPLIT_CONTAINER->GET_CONTAINER
EXPORTING
ROW = 2
COLUMN = 1
RECEIVING
CONTAINER = G_CONTAINER_2.
 
ENDIF.
ENDIF.
ENDMODULE. " F_INIT_SPLITTER OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'GUI_STATUS'.
* SET TITLEBAR 'xxx'.
 
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module F_CREAT_ALV_CONTROL OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE F_CREAT_ALV_CONTROL OUTPUT.
IF ALV_GRID_1 IS INITIAL .
 
CREATE OBJECT ALV_GRID_1
EXPORTING
I_PARENT = G_CONTAINER_1.
 
PERFORM FRM_GET_DATA.
PERFORM FRM_PREPARE_FIELD_CATALOG.
PERFORM FRM_GET_LAYOUT.
 
CALL METHOD ALV_GRID_1->set_table_for_first_display
EXPORTING
* i_structure_name = 'SFLIGHT'
is_layout = gs_layout
CHANGING
it_outtab = GT_DATA[] "没有表头行的内表
it_fieldcatalog = gt_fieldcat . "显示字段的内表
 
ENDIF.
 
IF ALV_GRID_2 IS INITIAL .
CLEAR:GS_LAYOUT,GT_DATA[],GT_FIELDCAT[].
CREATE OBJECT ALV_GRID_2
EXPORTING
I_PARENT = G_CONTAINER_2.
 
PERFORM FRM_GET_DATA.
PERFORM FRM_PREPARE_FIELD_CATALOG.
PERFORM FRM_GET_LAYOUT.
 
CALL METHOD ALV_GRID_2->set_table_for_first_display
EXPORTING
* i_structure_name = 'SFLIGHT'
is_layout = gs_layout
CHANGING
it_outtab = GT_DATA[] "没有表头行的内表
it_fieldcatalog = gt_fieldcat . "显示字段的内表
 
ENDIF.
ENDMODULE. " F_CREAT_ALV_CONTROL OUTPUT
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA .
CLEAR: GT_DATA,GT_DATA[].
select * from spfli into TABLE gt_data UP TO 22 rows.
ENDFORM. " FRM_GET_DATA
 
*&---------------------------------------------------------------------*
*& Form FRM_PREPARE_FIELD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_PREPARE_FIELD_CATALOG .
PERFORM FRM_GET_FIELD_CATALOG USING '' '' '1' '2' 'L' 'CARRID' '航线承运人ID' CHANGING GT_FIELDCAT.
PERFORM FRM_GET_FIELD_CATALOG USING '' 'X' '1' '3' 'L' 'CONNID' '航班连接 Id' CHANGING GT_FIELDCAT.
PERFORM FRM_GET_FIELD_CATALOG USING '' 'X' '1' '16' 'L' 'CITYFROM' '起飞城市' CHANGING GT_FIELDCAT.
ENDFORM. " FRM_PREPARE_FIELD_CATALOG
*&---------------------------------------------------------------------*
*& Form FRM_GET_FIELD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_FIELD_CATALOG USING P_CHECKBOX P_EDIT P_COL_POS
P_OUTPUTLEN P_JUST P_FIELDNAME P_COLTEXT
CHANGING P_GT_FIELDCAT TYPE LVC_T_FCAT.
 
DATA: LS_FIELDCAT TYPE LVC_S_FCAT.
 
LS_FIELDCAT-CHECKBOX = P_CHECKBOX. "是否以复选框显示
LS_FIELDCAT-EDIT = P_EDIT. "此列是否可编辑
LS_FIELDCAT-COL_POS = P_COL_POS. "弟几列
LS_FIELDCAT-OUTPUTLEN = P_OUTPUTLEN. " 列长度
LS_FIELDCAT-just = P_JUST. "对齐方式
LS_FIELDCAT-fieldname = P_FIELDNAME . "字段名
LS_FIELDCAT-coltext = P_COLTEXT . "字段文本
APPEND LS_FIELDCAT to P_GT_FIELDCAT .
CLEAR LS_FIELDCAT .
 
 
ENDFORM. " FRM_GET_FIELD_CATALOG
*&---------------------------------------------------------------------*
*& Form FRM_GET_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_LAYOUT .
GS_LAYOUT-GRID_TITLE = 'SPFLI'.
GS_LAYOUT-CWIDTH_OPT = 'X'.
ENDFORM. " FRM_GET_LAYOUT

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1271867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA中的Postman!

Postman是大家最常用的API调试工具&#xff0c;那么有没有一种方法可以不用手动写入接口到Postman&#xff0c;即可进行接口调试操作&#xff1f;今天给大家推荐一款IDEA插件&#xff1a;Apipost Helper&#xff0c;写完代码就可以调试接口并一键生成接口文档&#xff01;而且还…

Ruoyi-Vue或者Ruoyi-Cloud登录进去之后的第一个页面如何修改(即如何去掉首页或者如何修改首页)

其实大家如果看过最近的码云上的issues 就能知道这个问题的答案了。 我这里给出一下链接&#xff1a;https://gitee.com/y_project/RuoYi-Vue/issues/I60JIY 开始 第一步&#xff0c;把router/index.js里面关于首页的路由给注释掉或者删除掉&#xff0c;如图&#xff1a; 第…

提醒事项删除了怎么恢复?手机上记录的提醒事项删除怎么恢复

“糟糕&#xff01;我的提醒事项删除了几条&#xff0c;其中还有几条比较重要的内容&#xff0c;找不到回收站&#xff0c;也找不到最近删除的文件夹&#xff0c;单凭脑子回忆能想起来的内容少之又少&#xff0c;领导那边又催着要这份材料。”一大早&#xff0c;小刘就遇到这样…

数字图像处理(实践篇)十五 基于傅里叶变换的高通滤波和低通滤波

目录 一 Numpy 实现傅里叶变换 1 涉及的函数 2 实践 二 OpenCV 实现傅里叶变换 1 涉及的函数 2 实践 为了有效地和快速地对图像进行处理和分析&#xff0c;常常需要将原定义在图像空间的图像以某种形式转换&#xff08;正变换&#xff09;到另外一些空间&#xff0c;并利…

测试与管理 Quota

用myquota1创建一个大的文件测试 理论猜想&#xff1a;超过soft可以&#xff0c;但是超过hard就不行了&#xff0c;最大值就是hard&#xff0c;如果超过soft&#xff0c;过了17天不处理&#xff0c;最后限制值会被强制设置成soft。修改设置成hard值 切换测试用户&#xff0c;m…

阿里云国际短信业务网络超时排障指南

选取一台或多台线上的应用服务器或选取相同网络环境下的机器&#xff0c;执行以下操作。 获取公网出口IP。 curl ifconfig.me 测试连通性。 &#xff08;推荐&#xff09;执行MTR命令&#xff08;可能需要sudo权限&#xff09;&#xff0c;检测连通性&#xff0c;执行30秒。 m…

对数据页的理解

1.InnoDB 是如何存储数据的&#xff1f; 数据表中的记录是按照行来存储的&#xff0c;但是数据库的读取并不以「行」为单位&#xff0c;否则一次读取&#xff08;也就是一次 I/O 操作&#xff09;只能处理一行数据&#xff0c;效率会非常低。 因此&#xff0c;InnoDB 的数据是按…

Git——工作区管理

如何管理工作目录&#xff0c;以便用户可以更高效地新建提交。如何在处理工作区和暂存区文件的过程中修复错误&#xff0c;以及如何修复最近一次提交记录中的问题&#xff1b;同时还会了解到如何安全地使用暂存机制和多个工作目录处理工作流中的中断问题。 主要内容有以下几点…

黑马微信小程序学习笔记

小程序和普通网页的区别 1、运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中 2、API不同 由于运行环境的不同&#xff0c;在小程序中无法调用DOM和BOM 的API&#xff08;因为这两个API是浏览器暴露出来的&#xff0c;微信环境没有&#xff09; 但是可以调用微信提…

华清远见嵌入式学习——C++——作业3

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;class Per { private:string name;int age;double *high;double *weight; public://有参构造函数Per(string n,int a,double h,double w):name(n),age(a),high(new double(h)),weight(ne…

统信UOS和vue.js的一个兼容问题

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 这事到现在说起还很奇怪&#xff0c;在UOS20&#xff08;硬件为华为鲲鹏服务器&#xff0c;arm架构&#xff0c;g8.3&#xff09;上部署uve.js&#xff0…

利润大增,MAU膝斩,谋求转型的新氧头顶“荆棘王冠”

撰稿|行星 来源|贝多财经 近日&#xff0c;医疗美容服务平台新氧科技&#xff08;NASDAQ:SY&#xff0c;下称“新氧”&#xff09;发布了2023年第三季度未经审计的财务业绩报告。 财报显示&#xff0c;新氧于2023年第三季度实现收入3.85亿元&#xff0c;同比增长19.2%&#x…

SS8844T四通道 1/2 H 桥驱动芯片发,替代A4979,DRV8844,L6288,MP6527

SS8844T 提供四个可独立控制的 1/2 H 桥启 动器。 它可被用于驱动两个 DC 电机、一个步进 电机、四个螺线管或者其它负载。 针对每个通道 的输出驱动器通道由在一个 1/2 H 桥配置中进行配 置的 N 通道功率 MOSFET 组成。 SS8844T 在每个桥的通道上提供高达 2.5A 峰…

继承中的析构函数的权限的深入了解

如果一个父类中的析构函数如果设置为 private 权限 &#xff0c;一个子类public继承了这个父类&#xff0c;那么 这个父类可以创建对象吗&#xff1f; 答案是 不可以 看看下面的代码 class A { public:private:~A() {} };class B :public A {A a; // 这个地方编译不报错&…

零基础搭建本地Nextcloud私有云结合内网穿透实现远程访问

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、Cpolar杂谈 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;摘要一. 环境搭建二. 测试局域网访问三. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建…

JavaScript WebApi 一(详讲)

基础知识在前面的部分已经讲过了&#xff0c;大家如果没有学习过JavaScript的可以去看一下 1.DOM 引入 在JavaScript中&#xff0c;DOM&#xff08;文档对象模型&#xff09;提供了一种表示和操作HTML文档的方式。在DOM中&#xff0c;文档被表示为一个由节点组成的树形结构。…

IC修真院 | 芯片嵌入式课程重磅上线!

万物互联的时代&#xff0c;离不开嵌入式。 从传统的家用电器到工业控制&#xff0c;从汽车电子到医疗保健&#xff0c;从军事应用到物联网&#xff0c;嵌入式系统无处不在。 我们的后台也经常能收到大家关于“嵌入式”的咨询&#xff0c;也了解到了大家对于嵌入式课程的迫切…

探索前端设计的新境界——介绍IVueUI工具助力Vue页面设计

在快速发展的前端领域&#xff0c;Vue.js作为一款渐进式JavaScript框架&#xff0c;一直备受开发者喜爱。然而&#xff0c;在Vue前端开发的旅程中&#xff0c;页面设计常常是一个不可避免的挑战。今天&#xff0c;我要向大家介绍一款令Vue前端开发者受益匪浅的工具——www.ivue…

selenium+python

selenium 八大查找元素 from selenium import webdriver from selenium.webdriver.common.by import By# 创建一个 WebDriver 实例 driver webdriver.Chrome()# 打开网页 driver.get("https://www.baidu.com/")# 使用 find_element 方法查找元素 element driver.…

【UE】透视效果

效果 步骤 1. 新建一个空白工程 2. 添加一个第三人称游戏和初学者内容包到内容浏览器 3. 新建一个材质&#xff0c;这里命名为“M_Perspective” 打开“M_Perspective”&#xff0c;设置材质域为后期处理 添加三个“SceneTexture”节点&#xff0c;场景纹理ID选项分别设置为“…