ABAP文本编辑框操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP文本编辑框操作相关的知识,希望对你有一定的参考价值。

  1 * 1、创建文本框
  2 
  3 DATA: g_container TYPE REF TO cl_gui_custom_container,
  4         g_editor TYPE REF TO cl_gui_textedit.
  5 
  6   IF g_container IS INITIAL.
  7 
  8     "创建 协查处理需求 编辑框 
  9     CREATE OBJECT g_container
 10       EXPORTING 
 11         container_name              = GC_CCTRL
 12       EXCEPTIONS 
 13         cntl_error                  = 1
 14         cntl_system_error           = 2
 15         create_error                = 3
 16         lifetime_error              = 4
 17         lifetime_dynpro_dynpro_link = 5 .
 18     IF sy-subrc <> 0. 
 19       EXIT .
 20     ENDIF .
 21 
 22     CREATE OBJECT g_editor
 23       EXPORTING 
 24         max_number_chars       = 255    "字数限制 
 25         parent                 = g_container
 26         wordwrap_mode         = 0       "边框模式,设置为0可以去掉编辑框的滚动条
 27         wordwrap_position     = 95     "换行宽度
 28       EXCEPTIONS 
 29         error_cntl_create      = 1 
 30         error_cntl_init        = 2 
 31         error_cntl_link        = 3 
 32         error_dp_create        = 4 
 33         gui_type_not_supported = 5
 34         OTHERS                 = 6. 
 35     IF sy-subrc <> 0. 
 36       MESSAGE e000(oo ) WITH 创建编辑框失败 ! .
 37     ENDIF .
 38    ENDIF .
 39 "wordwrap_mode:边框模式,设置为0可以去掉编辑框的滚动条设置为2可以自动换行
 40 
 41 
 42 
 43 * 2、设置文本框的内容
 44 * PS: set_text_as_stream 无法设置多行,需要设置多行,用 set_text_as_r3table
 45 
 46 FORM frm_set_text  USING pi_text TYPE char100 .
 47   DATA:
 48     BEGIN OF ls_text ,
 49       line TYPE char255,
 50       END OF ls_text ,
 51         lt_text LIKE TABLE OF ls_text .
 52 
 53   CHECK pi_text IS NOT INITIAL .
 54   ls_text-line = pi_text .
 55 
 56   APPEND ls_text TO lt_text .
 57 
 58   CALL METHOD g_editor->delete_text.
 59 
 60   CALL METHOD g_editor->set_text_as_stream
 61     EXPORTING 
 62       text            = lt_text
 63     EXCEPTIONS 
 64       error_dp        = 1 
 65       error_dp_create = 2
 66       OTHERS          = 3. 
 67 
 68 ENDFORM.   
 69 
 70 * 3、读取文本
 71 FORM frm_get_text  CHANGING pc_text TYPE char100 .
 72   DATA:
 73     BEGIN OF ls_lines,
 74       line (255) TYPE c,
 75     END OF ls_lines,
 76     lt_lines LIKE TABLE OF ls_lines.
 77 
 78   DATA: ls_textlines TYPE tline, 
 79         lt_textlines TYPE STANDARD TABLE OF tline.
 80 
 81   DATA: l_string TYPE string. 
 82 
 83   CALL METHOD g_editor->get_text_as_stream
 84     IMPORTING 
 85       text                   = lt_lines
 86     EXCEPTIONS 
 87       error_dp               = 1
 88       error_cntl_call_method = 2
 89       OTHERS                 = 3. 
 90 
 91   CALL FUNCTION CONVERT_STREAM_TO_ITF_TEXT
 92     EXPORTING 
 93       language    = sy-langu
 94     TABLES 
 95       text_stream = lt_lines
 96       itf_text    = lt_textlines.
 97 
 98   CLEAR: l_string .
 99   LOOP AT lt_textlines INTO ls_textlines.
100     CONCATENATE l_string ls_textlines INTO l_string .
101   ENDLOOP.
102 
103   IF l_string IS NOT INITIAL .
104     pc_text = l_string.
105   ENDIF.
106 
107 ENDFORM.
108 
109 
110 * 4、清除文本内容
111 
112      CALL METHOD g_editor_xcclxq->delete_text.
113 
114 * 5、g_editor->set_statusbar_mode( 0 ).  "去除状态栏
115         g_editor->set_toolbar_mode( 0 ).    "去除工具栏
116         g_editor->set_readonly_mode ( 1 ).   "只读

 

以上是关于ABAP文本编辑框操作的主要内容,如果未能解决你的问题,请参考以下文章

ABAP 交货单屏幕增强 增加自建表

ABAP 交货单屏幕增强 增加自建表

同时开左右两个SAPGUI编辑器显示同一段ABAP代码

同时开左右两个SAPGUI编辑器显示同一段ABAP代码

ABAP弹窗让用户编辑长文本

使用另一个页面中的文本框来编辑按钮的代码?