首页 > 代码库 > 控件之应用-创建Text Editor教程
控件之应用-创建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:
- 创建pf status,详细参照-->http://www.baidusap.com/abap/dialog/1516
- 创建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 screenCONSTANTS: 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 queueCLASS 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.
以上。
控件之应用-创建Text Editor教程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。