SAP 长文本
2015-06-19 16:52
190 查看
原文地址:SAP 长文本作者:stevenpok
REPORT z_barry_test_textedit NO STANDARD PAGEHEADING .
TABLES: sscrfields.
DATA: x_docking TYPE REF TO cl_gui_docking_container,
x_editor TYPE REF TO cl_gui_textedit,
lines TYPE STANDARD TABLE OF tline ,
header LIKE thead .
TYPES: BEGIN OF textline,
line(255) TYPE c,
END OF textline .
DATA texttable TYPE TABLE OF textline .
PARAMETERS:p_name(70) DEFAULT '12345678'.
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.
INITIALIZATION.
sscrfields-functxt_01 = 'Save'.
sscrfields-functxt_02 = 'Read'.
AT SELECTION-SCREEN OUTPUT.
IF x_docking IS INITIAL .
CREATEOBJECT x_docking
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
side = 4
extension = '255'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
CREATEOBJECT x_editor
EXPORTING
parent = x_docking
wordwrap_mode = 2
wordwrap_position = 72
max_number_chars = 100000.
ENDIF .
AT SELECTION-SCREEN.
header-tdobject ='Z001'.
header-tdname = p_name.
header-tdid = '0001'.
header-tdspras = sy-langu.
CASE sy-ucomm .
WHEN'FC01'.
PERFORM savetext.
WHEN'FC02'.
PERFORM readtext.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form savetext
*&---------------------------------------------------------------------*
FORM savetext.
CALL METHODx_editor->get_text_as_stream
IMPORTING
text = texttable
EXCEPTIONS
error_dp = 1
error_cntl_call_method = 2
OTHERS = 3.
CALL FUNCTION'CONVERT_STREAM_TO_ITF_TEXT'
EXPORTING
language =sy-langu
TABLES
text_stream = texttable
itf_text =lines.
CALL FUNCTION 'S***E_TEXT'
EXPORTING
header = header
savemode_direct = 'X'
TABLES
lines = lines
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.
IF sy-subrc = 0.
MESSAGEs000(oo) WITH '保存成功'.
COMMITWORK.
ELSE.
MESSAGE IDsy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "savetext
*&---------------------------------------------------------------------*
*& Form readtext
*&---------------------------------------------------------------------*
FORM readtext.
CLEAR:texttable,texttable[].
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = header-tdid
language = sy-langu
name = p_name
object = header-tdobject
TABLES
lines = lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <>0.
MESSAGE IDsy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION'CONVERT_ITF_TO_STREAM_TEXT'
EXPORTING
language =sy-langu
TABLES
itf_text =lines
text_stream = texttable.
CALL METHODx_editor->set_text_as_stream
EXPORTING
text = texttable
EXCEPTIONS
error_dp = 1
error_dp_create = 2
OTHERS = 3.
ENDFORM. "readtext
* 清空长文本
FORM cleartext .
CALL METHODx_editor->delete_text
EXCEPTIONS
error_cntl_call_method = 1
OTHERS = 2.
ENDFORM. " CLEARTEXT
REPORT z_barry_test_textedit NO STANDARD PAGEHEADING .
TABLES: sscrfields.
DATA: x_docking TYPE REF TO cl_gui_docking_container,
x_editor TYPE REF TO cl_gui_textedit,
lines TYPE STANDARD TABLE OF tline ,
header LIKE thead .
TYPES: BEGIN OF textline,
line(255) TYPE c,
END OF textline .
DATA texttable TYPE TABLE OF textline .
PARAMETERS:p_name(70) DEFAULT '12345678'.
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.
INITIALIZATION.
sscrfields-functxt_01 = 'Save'.
sscrfields-functxt_02 = 'Read'.
AT SELECTION-SCREEN OUTPUT.
IF x_docking IS INITIAL .
CREATEOBJECT x_docking
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
side = 4
extension = '255'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
CREATEOBJECT x_editor
EXPORTING
parent = x_docking
wordwrap_mode = 2
wordwrap_position = 72
max_number_chars = 100000.
ENDIF .
AT SELECTION-SCREEN.
header-tdobject ='Z001'.
header-tdname = p_name.
header-tdid = '0001'.
header-tdspras = sy-langu.
CASE sy-ucomm .
WHEN'FC01'.
PERFORM savetext.
WHEN'FC02'.
PERFORM readtext.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form savetext
*&---------------------------------------------------------------------*
FORM savetext.
CALL METHODx_editor->get_text_as_stream
IMPORTING
text = texttable
EXCEPTIONS
error_dp = 1
error_cntl_call_method = 2
OTHERS = 3.
CALL FUNCTION'CONVERT_STREAM_TO_ITF_TEXT'
EXPORTING
language =sy-langu
TABLES
text_stream = texttable
itf_text =lines.
CALL FUNCTION 'S***E_TEXT'
EXPORTING
header = header
savemode_direct = 'X'
TABLES
lines = lines
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.
IF sy-subrc = 0.
MESSAGEs000(oo) WITH '保存成功'.
COMMITWORK.
ELSE.
MESSAGE IDsy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "savetext
*&---------------------------------------------------------------------*
*& Form readtext
*&---------------------------------------------------------------------*
FORM readtext.
CLEAR:texttable,texttable[].
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = header-tdid
language = sy-langu
name = p_name
object = header-tdobject
TABLES
lines = lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <>0.
MESSAGE IDsy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION'CONVERT_ITF_TO_STREAM_TEXT'
EXPORTING
language =sy-langu
TABLES
itf_text =lines
text_stream = texttable.
CALL METHODx_editor->set_text_as_stream
EXPORTING
text = texttable
EXCEPTIONS
error_dp = 1
error_dp_create = 2
OTHERS = 3.
ENDFORM. "readtext
* 清空长文本
FORM cleartext .
CALL METHODx_editor->delete_text
EXCEPTIONS
error_cntl_call_method = 1
OTHERS = 2.
ENDFORM. " CLEARTEXT
相关文章推荐
- java用递归实现输入字符串反向输出
- windows下安装apache、php、sql server
- LibLinear(SVM包)使用说明之(二)MATLAB接口
- less的解析笔记
- MySQL初级培训
- 技术演绎之 [java] 重点总结
- json_decode()的常见错误
- C++求数组最小(大)n位数字的数组解法
- Mozilla 推出安卓应用创建工具 Webmaker
- 苹果内购笔记
- LibLinear(SVM包)使用说明之(一)README
- 不得不说,我太佩服node了,连openXML也搞定了!
- 根据点画线java
- 搜索引擎的设计与实现(二)技术选型--爬虫
- Mobile App VS .NET Communication Through Ajax
- Nginx源码分析之变量
- 技术演绎之 [java] java 重载递归
- android日常开发经验总结60条
- UVA 11488 Hyper Prefix Sets 字典树
- Linux设备驱动之I/O端口与I/O内存