SAP实现文本框多行输入(类cl_gui_textedit)

news2024/12/23 11:19:22

先看效果,在输入框先来一段《赤壁赋》
在这里插入图片描述

然后点击 ‘保存输出’按钮,就能把输入内容从表里读取并输出来
在这里插入图片描述
源代码:

*&---------------------------------------------------------------------*
*& Report ZCYCLE060
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zcycle060.

DATA: ok_code TYPE sy-ucomm.

CONSTANTS: gc_text_line_length TYPE i VALUE 72.
TYPES: text_table_type(gc_text_line_length) TYPE c OCCURS 0.
DATA: gv_splitter TYPE REF TO cl_gui_easy_splitter_container.
DATA: gv_custom_container TYPE REF TO cl_gui_custom_container.
DATA: gv_text_editor TYPE REF TO cl_gui_textedit.
DATA: lt_text_table                         TYPE text_table_type,
      ls_text_table_wa(gc_text_line_length) TYPE c,
      gv_xthead_updkz                       TYPE i.
CALL SCREEN 100.

MODULE splitter_control_vorbereiten OUTPUT.

  IF gv_splitter IS INITIAL.
    CREATE OBJECT gv_custom_container
      EXPORTING
        container_name = 'SPLITTER_CONTAINER'.

    CREATE OBJECT gv_splitter
      EXPORTING
        parent        = gv_custom_container
        orientation   = 1    "方向: 0 = 垂直 , 1 = 水平
        sash_position = 39.

  ENDIF.

  IF gv_text_editor IS INITIAL.
    CREATE OBJECT gv_text_editor
      EXPORTING
        parent                     = gv_splitter->bottom_right_container
*       wordwrap_mode              = cl_gui_textedit=>wordwrap_at_windowborder
        wordwrap_to_linebreak_mode = cl_gui_textedit=>false  "自动换行模式关闭
        "wordwrap_to_linebreak_mode = cl_gui_textedit=>true
      EXCEPTIONS
        error_cntl_create          = 1
        error_cntl_init            = 2
        error_cntl_link            = 3
        error_dp_create            = 4
        gui_type_not_supported     = 5.
    "CALL METHOD gv_text_editor->set_readonly_mode EXPORTING readonly_mode = cl_gui_textedit=>true. "输入框只读模式开启
    CALL METHOD gv_text_editor->set_readonly_mode EXPORTING readonly_mode = cl_gui_textedit=>false. "输入框只读模式关闭
  ENDIF.




ENDMODULE.                 " SPLITTER_CONTROL_VORBEREITEN  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'ZCYCLE'.

*  SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  EXIT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE exit INPUT.
  LEAVE TO SCREEN 0.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  DATA t_tdline1 TYPE TABLE OF standard .
* Texttabelle aus Control abholen
  CASE ok_code.
    WHEN 'ZSAVE'.
      CALL METHOD gv_text_editor->get_text_as_stream "取屏幕上输入的文本存到 lt_text_table
        IMPORTING
          text                   = lt_text_table
          is_modified            = gv_xthead_updkz
        EXCEPTIONS
          error_dp               = 1
          error_cntl_call_method = 2
          OTHERS                 = 3.
      IF sy-subrc = 0.
        cl_demo_output=>write( lt_text_table[] ). "定义哪些东西需要输出,可以是表,也可以是字段
        cl_demo_output=>display( ).               "一次性把 write进来的元素 输出
      ENDIF.

*      CALL METHOD gv_text_editor->get_text_as_r3table
*        IMPORTING
*          table = t_tdline1.
*      IF sy-subrc = 0.
*
*      ENDIF.
  ENDCASE.
ENDMODULE.

100屏幕设计
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
去SE80输入函数组 SLVC_FULLSCREEN 拉取标准ALV图标过来
在这里插入图片描述
做一丢丢改造
在这里插入图片描述
这里主要是用于程序退出功能
在这里插入图片描述
到这里就完成了。
程序会把屏幕上输入的文字传到内表 lt_text_table 里去
所以就是获取到屏幕上输入的文本框内容了,如果要做其它功能,就可以往下继续做了

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

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

相关文章

如何避免JavaScript中的内存泄漏?

前言 过去,我们浏览静态网站时无须过多关注内存管理,因为加载新页面时,之前的页面信息会从内存中删除。 然而,随着单页Web应用(SPA)的兴起,应用程序消耗的内存越来越多,这不仅会降低…

13 套接字Socket

1、Socket 编程 socket编程基于 TCP 和 UDP 协议的tcp和udp是区分客户端和服务端的,所以我们的socket编程也是区分的。 2、socket是端到端的通信 1.Socket 这个名字很有意思,可以作插口或者插槽讲 2.一头插在客户端,一头插在服务端&#x…

阿里云双11优惠活动:2核2G3M云服务器1年99元,新老用户均可购买!

阿里云双11优惠活动正在火热进行中,阿里云推出了一款特价云服务器ECS,2核2G3M的配置1年仅需99元,新老用户均可购买,新购、续费同价! 活动入口:传送门>>> 活动详情: 云服务器ECS&#…

Bitget Wallet:使用 Base 链购买 ETH 的简明教程

Base 链是一种 Layer 2(L2)公链,它可以为用户提供以太坊(ETH)代币,而 Bitget Wallet 是一款多功能加密货币钱包,支持 Base 链以及其他主要区块链。

三天打鱼两天晒网

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为选择结构编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 二、题目分析 三、解题 程序运行代码 #include<stdio.h> int main(){int n;scanf("%d",&n);i…

MySQL进阶_1.逻辑架构和SQL执行流程

文章目录 第一节、逻辑架构剖析1.1、服务器处理客户端请求1.2、Connectors1.3、第1层&#xff1a;连接层1.4、第2层&#xff1a;服务层1.5、 第3层&#xff1a;引擎层1.6、 存储层1.7、小结 第二节、SQL执行流程2.1、查询缓存2.2、解析器2.3、优化器2.4、执行器 第三节、数据库…

MySQL的安装使用(入学篇)

目录 1 MySQL安装 1.1 安装epel源 1.2 安装MySQL Repository 1.3 安装MySQL官方yum源 1.4 安装服务端、客户端 1.5 启动MySQL服务 2 MySQL 使用 2.1 获取初始登录密码 2.2 登录MySQL数据库 2.3 修改密码 2.4 退出数据库 2.5 使用新密码登录数据库 2.6 重启数据库 2.7 创建数据…

美国出台新规对全球芯片业产生深远影响 | 百能云芯

2023年10月18日&#xff0c;美国宣布了一项新版半导体出口管制规则&#xff0c;旨在限制对中国等特定市场出口尖端人工智能&#xff08;AI&#xff09;芯片的企业。该法规于当月16日生效&#xff0c;引发了广泛的关注。据日本经济新闻报道&#xff0c;这一举措将显着提高中国发…

Docker安装Elasticsearch和Kibana

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Leetcode—2578.最小和分割【简单】

2023每日刷题&#xff08;二十三&#xff09; Leetcode—2578.最小和分割 实现代码 class Solution { public:int splitNum(int num) {vector<int> a;while(num) {a.push_back(num % 10);num / 10;}int n a.size();sort(a.begin(), a.begin() n);int num1 0;int num…

商业保险/补充医疗,打工人不可忽略的额外福利

关于看病如何花钱这回事&#xff0c;我之前的认知仅仅停留在可以使用医保报销的层次。 虽然工作这十年来公司一直有提供商业保险的福利&#xff0c;但是之前一直没有关注过它&#xff0c;直到去年偶然尝试了通过商业保险申请理赔&#xff0c;从而实现医保报销后的二次报销。在二…

node 第十六天 模板引擎handlebars

handlebars handlebars文档 Handlebars 是一种简单的 模板语言。 它使用模板和输入对象来生成 HTML 或其他文本格式。Handlebars 模板看起来像常规的文本&#xff0c;但是它带有嵌入式的 Handlebars 表达式 。 这里我们要注意模板引擎的定义 模板引擎是对一串字符串 结合数据 编…

Python GUI标准库tkinter实现与记事本相同菜单的文本编辑器(一)

介绍&#xff1a; Windows操作系统中自带了一款记事本应用程序&#xff0c;通常用于记录文字信息&#xff0c;具有简单文本编辑功能。Windows的记事本可以新建、打开、保存文件&#xff0c;有复制、粘贴、删除等功能&#xff0c;还可以设置字体类型、格式和查看日期时间等。 …

PWM定时器同步问题--STM32F系列高级定时器同步输出PWM

PWM定时器同步问题–STM32F系列高级定时器同步输出PWM 死区时间50ns&#xff0c;设置值为4&#xff1b; 双极性倍频调制波形&#xff1a;上管-上管-下管-下管

数据结构与算法C语言版学习笔记(4)-栈与队列再回顾

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言&#xff1a;一、栈的定义&#xff1a;栈(stack)是限定仅在表尾进行插入和删除操作的线性表&#xff08;1&#xff09;栈是特殊的线性表&#xff08;2&#xff…

元宇宙是否为噱头?若不是,什么是元宇宙?他的概念、技术、应用和影响是什么?

文章来源&#xff1a;元宇宙的概念、技术、应用与影响——一项系统性文献综述 - 中国知网 (cnki.net) 摘要 [目的/意义]系统综述与分析当前国内外的元宇宙研究现状&#xff0c;有利于准确把握元宇宙发展方向&#xff0c;强化元宇宙基础研究&#xff0c;争取元宇宙建构权。[方法…

Docker 学习路线 11:Docker命令行

Docker CLI (命令行界面) 是一个强大的工具&#xff0c;可让您与 Docker 容器、映像、卷和网络进行交互和管理。它为用户提供了广泛的命令&#xff0c;用于在其开发和生产工作流中创建、运行和管理 Docker 容器和其他 Docker 资源。 安装 要开始使用 Docker CLI&#xff0c;您…

企业计算机服务器中了360勒索病毒怎么办?勒索病毒解密,数据恢复

网络技术的不断发展给企业的生产与生活提供了极大的帮助&#xff0c;但随之而来的网络安全威胁也不断增加&#xff0c;近期&#xff0c;云天数据恢复中心的工程师接到了很多企业的求助&#xff0c;企业的计算机服务器数据库遭到了360后缀勒索病毒&#xff0c;通过对该病毒的检测…

Spring笔记(二)(黑马)(AOP面向切面编程)

01、AOP 简介 1.1 AOP的概念 AOP&#xff0c;Aspect Oriented Programming&#xff0c;面向切面编程&#xff0c;是对面向对象编程OOP的升华。OOP是纵向对一个事物的抽象&#xff0c;一个对象包括静态的属性信息&#xff0c;包括动态的方法信息等。而AOP是横向的对不同事物的…

2023年辽宁省数学建模竞赛B题数据驱动的水下导航适配区分类预测

2023年辽宁省数学建模竞赛 B题 数据驱动的水下导航适配区分类预测 原题再现&#xff1a; “海洋强国”战略部署已成为推动中国现代化建设的重要组成部分&#xff0c;国家对此提出“发展海洋经济&#xff0c;保护海洋生态环境&#xff0c;加快建设海洋强国”的明确要求。   …