控件之应用-创建Text Editor教程

原文地址 http://www.baidusap.com/abap/dialog/1627

1, Text Editor介绍

不同于一般的屏幕字段,Text Editor可以保存多行文本,它是SAP各种凭证中常用的控件之一,比如采购订单中,凭证头和行项目中都应用到text editor控件,如下:

2, 创建text editor控件

下面介绍如何在dailog程序中创建一个text editor控件,

2.1, SE80创建dialog程序

Tcode:se80,创建一个dialog程序,并且添加一个屏幕100

2.2, 创建custom control

在屏幕100的layout上,创建一个custom control,并输入名字Text_editor

2.3, 修改PBO代码

PBO:

  • 创建object container GO_EDITOR_CONTAINER. 然后再创建 text editor控件对象go_editor

数据对象定义:

DATA:
  go_editor           TYPE REF TO cl_gui_textedit,
  go_editor_container TYPE REF TO cl_gui_custom_container,
  ok_code             LIKE sy-ucomm.         " return code from screen
CONSTANTS: c_line_length TYPE i VALUE 256.

* 定义保存长文本用的内表
TYPES: BEGIN OF ty_mytable_line,
         line(c_line_length) TYPE c,
       END OF ty_mytable_line.
DATA:git_mytable TYPE TABLE OF ty_mytable_line.

* necessary to flush the automation queue
CLASS cl_gui_cfw DEFINITION LOAD.

module pbo_0100中代码如下:

  IF go_editor IS INITIAL.
*   创建控件容器
    CREATE OBJECT go_editor_container
      EXPORTING
        container_name              = ‘TEXTEDITOR1‘
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5.
    IF sy-subrc NE 0.
*      add your handling
    ENDIF.

*   将Text editor和控件容器对象连接起来
    CREATE OBJECT go_editor
      EXPORTING
        parent                     = go_editor_container
        wordwrap_mode              = cl_gui_textedit=>wordwrap_at_fixed_position
        wordwrap_to_linebreak_mode = cl_gui_textedit=>true
      EXCEPTIONS
        OTHERS                     = 1.
  ENDIF.

2.4, 修改PAI代码

PAI:创建Module user_command_0100

Module user_command_0100中的代码:

  • 在退出程序的时候,free text editor控件以及控件容器的对象
  • 在保存的时候读取在text editor中输入的长文内容到内表git_mytable中

代码如下:

MODULE user_command_0100 INPUT.

  CASE ok_code.

    WHEN ‘&F03‘.
      IF NOT go_editor IS INITIAL.
        CALL METHOD go_editor->free
          EXCEPTIONS
            OTHERS = 1.
*       free ABAP object also
        FREE go_editor.
      ENDIF.

*     destroy container
      IF NOT go_editor_container IS INITIAL.
        CALL METHOD go_editor_container->free
          EXCEPTIONS
            OTHERS = 1.
        IF sy-subrc <> 0.

        ENDIF.
*       free ABAP object also
        FREE go_editor_container.
      ENDIF.
*     finally flush
      CALL METHOD cl_gui_cfw=>flush
        EXCEPTIONS
          OTHERS = 1.
      LEAVE PROGRAM.

    WHEN ‘&DATA_SAVE‘.
*     retrieve table from control
      CALL METHOD go_editor->get_text_as_r3table
        IMPORTING
          table  = git_mytable
        EXCEPTIONS
          OTHERS = 1.

      CALL METHOD cl_gui_cfw=>flush
        EXCEPTIONS
          OTHERS = 1.

*   no flush here:
*   the automatic flush at the end of PBO does the job

  ENDCASE.

ENDMODULE.

2.5, 创建Tcode

2.5, 运行测试

运行Tcode ztextedit, 在text editor控件中输入长文本,

点击保存按钮,在debug模式中,可以看到内表git_mytable中输入的内容line1,line2,line3.

以上。

时间: 2024-08-02 13:05:39

控件之应用-创建Text Editor教程的相关文章

.NET源码保护控件VMProtect免费下载及使用教程脱壳等功能详解

原文来自VMProtect龙博方案网www.fanganwang.com VMProtect是一款全新的软件保护工具.与其它大部分的保护程序不同,VMProtect可修改程序的源代码.VMProtect可将被保护文件中的部分代码转化到在虚拟机(以下称作VM)上运行的程序(以下称作bytecode)中.您同样可把VM想象为具备命令系统的虚拟处理器,该命令系统与Intel 8086处理器所使用的完全不同.例如,VM没有负责比较2个操作数的命令,也没有有条件与无条件的移转等.就象您现在看到的,黑客必须

用户控件,动态创建添加用户控件

用户控件的制作步骤 1,新建一个项目,文件>新建>项目. 2,添加>新建项>用户控件.文件类型为.cs 使用用户控件 在用户控件设计业点击工具栏中的生成项,选择第一项生成解决方案,或直接点F6: 生成成功后在windows窗体的工具栏最顶端就会显示此用户控件 动态添加控件 输入一个值为n,点击按钮,动态生成n个按钮,并编号号 private void button1_Click(object sender, EventArgs e) { //先获取用户输入的是几 int count

winform用户控件、动态创建添加控件、timer控件、控件联动

用户控件:(1) 相当于自定义的一个panel 里面可以放各种其他控件,并可以在后台一下调用整个此自定义控件. 使用方法:在项目上右键.添加.用户控件,之后用户控件的编辑与普通容器控件类似.如果要在后台往窗体中添加, 将其实例化,然后添加到想要添加的容器的Control集合中. 动态创建添加控件: 配合上面的用户控件,实现类似QQ界面的打开自动加载好友昵称和签名 public Form1() { InitializeComponent(); //将当前登陆的账号的全部好友信息取出来 List<A

用户控件、动态创建添加

使用用户控件: 项目右键添加,用户控件,选择用户控件cs 在生成的项目中用设计编辑,点击菜单栏生成,生成解决方案,然后用户控件就可以使用了 制作简单的qq窗口,根据数据库自动添加数据 制作用户控件: 实体类:(qq,haoyou) qq: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace QQ.App_Code { public class qq { pu

WinForm用户控件、动态创建添加控件、timer控件--2016年12月12日

好文要顶 关注我 收藏该文 徐淳 关注 - 1 粉丝 - 3 0 0 用户控件: 通过布局将多个控件整合为一个控件,根据自己的需要进行修改,可对用户控件内的所有控件及控件属性进行修改使用 动态创建添加控件: 1 //定义控件类型 2 Button btn = new Button(); 3 //控件名称……等属性,也可以直接绑定各种事件 4 btn.Name = "mybutton" + i.ToString(); 5 //添加到窗体 this 可以替换为 容器控件 6 this.Co

Silverlight Telerik控件学习:主题Theme切换html教程

telerik的RadControls for Silverlight内置了以下几种主题样式: Office Black - 这是默认值,无需加载其它任何dll文件. Office Blue - 需要引用 Telerik.Windows.Themes.Office_Blue.dll. Office Silver - 需要引用 Telerik.Windows.Themes.Office_Silver.dll. Summer - 需要引用 Telerik.Windows.Themes.Summer.

delphi WebBrowser控件上网页验证码图片识别教程(一)

步骤一:获取网页中验证码图片的url地址 在delphi中加入一个BitBtn和一个memo以及WebBrowser控件实现网页中验证码图片的url地址的获取 程序如下:procedure TForm1.BitBtn1Click(Sender: TObject); var I:Integer; begin for I:=0 to WebBrowser1.OleObject.document.images.length-1 do Memo1.Lines.Add(WebBrowser1.OleObj

qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程

1.概述 QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己使用两个源文件也可以自己编译成库文件,非常方便. 官方网站:http://www.qcustomplot.com/ 1.0下载地址:http://download.csdn.net/detail/czyt1988/5986701 下面展示一下它的超强功能: 1.安装 使用QCustomPlot非常简

Linq中datetime的处理以及asp.net下拉列表控件的selectitem,text等的设置显示处理

dhl:报错:LINQ to Entities 不支持指定的类型成员“Date” Linq如: var v = from l in _dal.Share where l.PingcoId == pingcoId && (l.CreateTime.Date == DateTime.Now.Date) select l; return v.ToList(); 会报错:LINQ to Entities 不支持指定的类型成员“Date”. 改成这样OK: DateTime sdt = DateTi