ABAP SAP双击字段打开 文本编辑

155 篇文章 15 订阅

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gavin_gxh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值