SAP 长文本
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 'SAVE_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
總結(jié)
- 上一篇: OO ALV 工具栏对于的功能码
- 下一篇: AT NEW 用法和注意