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 ). "只读