

FORM fm_show_text USING p_matnr TYPE C p_lifnr TYPE C p_id TYPE thead-tdid
CHANGING p_txt TYPE C.
DATA:l_header TYPE thead.
l_header-tdid = p_id.
l_header-tdspras = '1'.
CONCATENATE p_matnr p_lifnr INTO l_header-tdname.
* l_header-tdname = p_matnr.
l_header-tdobject = 'HZ02'.
l_header-tdform = 'SYSTEM'.
DATA:lt_tline TYPE TABLE OF tline.
DATA:ls_tline TYPE tline.
CALL FUNCTION 'READ_TEXT'
EXPORTING
* CLIENT = SY-MANDT
ID = l_header-tdid
LANGUAGE = l_header-tdspras
name = l_header-tdname
object = l_header-tdobject
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER =
TABLES
LINES = lt_tline
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 AND lt_tline IS NOT INITIAL.
ENDIF.
DATA:loc_underwrite LIKE ls_tline.
loc_underwrite-tdformat = '>X'.
loc_underwrite-tdline(2) = '*'.
CONCATENATE '/*' sy-uname '/' sy-datum INTO loc_underwrite-tdline+2.
FIELD-SYMBOLS:<l_fs> LIKE ls_tline.
LOOP AT lt_tline ASSIGNING <l_fs>.
IF <l_fs>-tdformat <> '>X'.
<l_fs>-tdline+2 = <l_fs>-tdline.
<l_fs>-tdline(2) = <l_fs>-tdformat.
<l_fs>-tdformat = '>X'.
ELSEIF <l_fs>-tdline+2(2) = '/*'."用户时间
ls_tline = <l_fs>.
ENDIF.
ENDLOOP.
IF ls_tline-tdline <> loc_underwrite-tdline.
APPEND loc_underwrite TO lt_tline.
ENDIF.
APPEND INITIAL LINE TO lt_tline ASSIGNING <l_fs>.
<l_fs>-tdformat = '>X'.
<l_fs>-tdline(2) = '*'.
* CONCATENATE '录入时间:' sy-uzeit INTO <loc_tline>-tdline+2 .
WRITE sy-uzeit TO <l_fs>-tdline+2 .
DATA:l_count TYPE I.
l_count = LINES( lt_tline ).
APPEND INITIAL LINE TO lt_tline ASSIGNING <l_fs>.
<l_fs>-tdformat = '*'.
DATA:l_ttxct TYPE ttxct.
PERFORM fm_get_txctrl CHANGING l_ttxct.
CALL FUNCTION 'FULL_SCREEN_NEW'
EXPORTING
CONTROL = l_ttxct
HEADER = l_header
* PAGE = ' '
* WINDOW = ' '
* LINE_EDITOR = ' '
* LOCAL_CAT = ' '
IMPORTING
newcontrol = l_ttxct
newheader = l_header
TABLES
LINES = lt_tline
EXCEPTIONS
linesize = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF lt_tline IS NOT INITIAL
AND l_count <> LINES( lt_tline )
AND l_ttxct-FUNCTION <> space.
l_count = LINES( lt_tline ).
"读取最后一行
READ TABLE lt_tline INTO ls_tline INDEX l_count.
IF ls_tline-tdline+2 <> loc_underwrite-tdline+2.
p_txt = ls_tline-tdline.
CALL FUNCTION 'COMMIT_TEXT'
EXPORTING
object = 'LFEQUP'
name = l_header-tdname
ID = l_header-tdid
* LANGUAGE = '*'
savemode_direct = 'X'
keep = 'X'
* LOCAL_CAT = ' '
* IMPORTING
* COMMIT_COUNT =
* TABLES
* T_OBJECT =
* T_NAME =
* T_ID =
* T_LANGUAGE =
.
ENDIF.
ENDIF.
ENDIF.
* ENDIF.
ENDFORM. "show_text
*&---------------------------------------------------------------------*
*& Form fm_get_txctrl
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_L_TTXCT text
* <--P_TYPE text
* <--P_TTXCT text
*----------------------------------------------------------------------*
FORM fm_get_txctrl CHANGING p_control TYPE ttxct.
p_control-dbupdate = 'X'.
p_control-object = 'MATERIAL'.
p_control-savemode = 'V'.
p_control-app_id = 'TN'.
p_control-app_langu = '1'.
p_control-buf_culine = '000001'.
p_control-buf_scline = '000001'.
p_control-line_size = '072'.
p_control-line_input = 'X'.
p_control-scr_ruler = 'X'.
p_control-scr_date = 'X'.
p_control-scr_time = 'X'.
ENDFORM. " fm_get_txctrl