事务代码查找程序 ztcdlst

REPORT ZRPT_BC_TCODE_MENU.

TABLES: TSTC, TSTCT.

SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_TCODE FOR TSTC-TCODE.          "事务代码
SELECT-OPTIONS S_TTEXT FOR TSTCT-TTEXT.          "事务文本
SELECT-OPTIONS S_PGMNA FOR TSTC-PGMNA.          "程序名称
SELECT-OPTIONS S_SPRSL FOR TSTCT-SPRSL DEFAULT '1'.          "语言代码
SELECTION-SCREEN END OF BLOCK 001.

TYPES:
  BEGIN OF TYP_DATA,
    TTEXT TYPE TSTCT-TTEXT,          "事务文本
    PGMNA TYPE TSTC-PGMNA,          "程序名称
    TCODE TYPE TSTC-TCODE,          "事务代码
    SPRSL TYPE TSTCT-SPRSL,          "语言代码
  END OF TYP_DATA.
DATA:STDATUM LIKE SY-DATUM,
      STUZEIT LIKE SY-UZEIT.
  DATA:
    GT_DATA     TYPE TABLE OF TYP_DATA,
    GS_DATA     TYPE TYP_DATA,
    GT_FIELDCAT TYPE LVC_T_FCAT,
    GS_FIELDCAT TYPE LVC_S_FCAT,
    GS_LAYOUT   TYPE LVC_S_LAYO.

INITIALIZATION.
  %_S_TTEXT_%_APP_%-TEXT = '事务文本'.
  %_S_PGMNA_%_APP_%-TEXT = '程序名称'.
  %_S_TCODE_%_APP_%-TEXT = '事务代码'.
  %_S_SPRSL_%_APP_%-TEXT = '语言代码'.

START-OF-SELECTION.
 STDATUM = SY-DATUM.
  STUZEIT = SY-UZEIT.
  PERFORM GET_DATA.
  PERFORM PROCESS_DATA.
  PERform WRITERPTRUNRECORD.
  PERFORM DISPLAY_DATA.

*&---------------------------------------------------------------------*
*&      Form  WRITERPTRUNRECORD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM WRITERPTRUNRECORD.
get time.
  CALL FUNCTION 'ZSYS_RPT_RUNRECORD'
  EXPORTING
    TCODE    = SY-TCODE
    PROGRAMM = SY-CPROG
    "bukrs = bukrs
    "werks  = werks
    DATUMRST  = STDATUM
    UZEITRST  =  STUZEIT
    BATCH =  SY-BATCH
    DATUMREND = SY-datum
    UZEITREND = sy-UZEIT
    DATUMC   = '20200514'
    RUNNER   = SY-UNAME
    RPTSRC   = '高兴辉'.
ENDFORM.                    "WRITERPTRUNRECORD

*&---------------------------------------------------------------------*
*&      FORM  GET_DATA
*&---------------------------------------------------------------------*
*       获取数据
*----------------------------------------------------------------------*
FORM GET_DATA.
  SELECT
    TSTCT~TTEXT          "事务文本
    TSTC~PGMNA          "程序名称
    TSTC~TCODE          "事务代码
    TSTCT~SPRSL          "语言代码
    INTO TABLE GT_DATA
    FROM TSTCT
    INNER JOIN TSTC ON TSTC~TCODE = TSTCT~TCODE
    WHERE TSTCT~TTEXT IN S_TTEXT
      AND TSTC~PGMNA IN S_PGMNA
      AND TSTC~TCODE IN S_TCODE
      AND TSTCT~SPRSL IN S_SPRSL.
ENDFORM.                    "GET_DATA
*&---------------------------------------------------------------------*
*&      FORM  PROCESS_DATA
*&---------------------------------------------------------------------*
*       处理数据
*----------------------------------------------------------------------*
FORM PROCESS_DATA.

ENDFORM.                    "PROCESS_DATA
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*       TEXT
*----------------------------------------------------------------------*
FORM BUILD_FIELDCAT USING P_FIELDNAME   TYPE FIELDNAME
                          P_QFIELDNAME  TYPE LVC_QFNAME
                          P_CFIELDNAME  TYPE LVC_CFNAME
                          P_REF_TABLE   TYPE LVC_RTNAME
                          P_REF_FIELD   TYPE LVC_RFNAME
                          P_CONVEXIT    TYPE CONVEXIT
                          P_EMPHASIZE   TYPE LVC_EMPHSZ
                          P_SCRTEXT_L   TYPE SCRTEXT_L.
  GS_FIELDCAT-FIELDNAME     = P_FIELDNAME.
  GS_FIELDCAT-QFIELDNAME    = P_QFIELDNAME.
  GS_FIELDCAT-CFIELDNAME    = P_CFIELDNAME.
  GS_FIELDCAT-REF_TABLE     = P_REF_TABLE.
  GS_FIELDCAT-REF_FIELD     = P_REF_FIELD.
  GS_FIELDCAT-CONVEXIT      = P_CONVEXIT.
  GS_FIELDCAT-EMPHASIZE     = P_EMPHASIZE.
  GS_FIELDCAT-SCRTEXT_L     = P_SCRTEXT_L.
  GS_FIELDCAT-COLDDICTXT    = 'L'.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  CLEAR: GS_FIELDCAT.
ENDFORM.                    "BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*&      FORM  DISPLAY_DATA
*&---------------------------------------------------------------------*
*       显示数据
*----------------------------------------------------------------------*
FORM DISPLAY_DATA.
  PERFORM BUILD_FIELDCAT USING 'PGMNA' '' '' 'TSTC' 'PGMNA' '' '' '程序名称'.
  PERFORM BUILD_FIELDCAT USING 'TCODE' '' '' 'TSTC' 'TCODE' '' '' '事务代码'.
  PERFORM BUILD_FIELDCAT USING 'TTEXT' '' '' 'TSTCT' 'TTEXT' '' '' '事务文本'.

  gs_layout-cwidth_opt = 'X'.
  gs_layout-zebra = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-REPID
"      I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_ALV'
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND_ALV'
      IT_FIELDCAT_LVC          = GT_FIELDCAT
      IS_LAYOUT_LVC            = GS_LAYOUT
      I_DEFAULT                = 'X'
      I_SAVE                   = 'A'
    TABLES
      T_OUTTAB                 = GT_DATA
    EXCEPTIONS
      OTHERS                   = 1.
ENDFORM.                    "DISPLAY_DATA
**&---------------------------------------------------------------------*
**&      FORM  PF_STATUS_ALV
**&---------------------------------------------------------------------*
**       TEXT
**----------------------------------------------------------------------*
*FORM PF_STATUS_ALV USING RT_EXTAB TYPE SLIS_T_EXTAB .
*  SET PF-STATUS 'STATUS_ALV' EXCLUDING RT_EXTAB.
*ENDFORM.                    "PF_STATUS_ALV
*&---------------------------------------------------------------------*
*&      FORM  USER_COMMAND_ALV
*&---------------------------------------------------------------------*
*       TEXT
*----------------------------------------------------------------------*
FORM USER_COMMAND_ALV USING R_UCOMM     LIKE SY-UCOMM
                            RS_SELFIELD TYPE SLIS_SELFIELD.

FIELD-SYMBOLS:<fs_list> TYPE TYP_DATA.

READ TABLE GT_DATA INDEX rs_selfield-tabindex ASSIGNING <fs_list>.
IF sy-subrc <> 0.
  EXIT.
ENDIF.
  CASE R_UCOMM.
    WHEN '&IC1'.
      CASE RS_SELFIELD-FIELDNAME.
    WHEN 'PGMNA'.
      DATA: bdcdata_tab  TYPE TABLE OF bdcdata,
            opt          TYPE ctu_params,
            bdcdata_line TYPE bdcdata.

      bdcdata_line-PROGRAM = 'SAPLWBABAP'.
      bdcdata_line-DYNPRO = '0100'.
      bdcdata_line-dynbegin = 'X'.
      APPEND bdcdata_line TO bdcdata_tab.

      CLEAR: bdcdata_line.

      bdcdata_line-fnam = 'BDC_CURSOR'.
      bdcdata_line-fval = 'RS38M-PROGRAMM'.
      APPEND bdcdata_line TO bdcdata_tab.


      CLEAR: bdcdata_line.
      bdcdata_line-fnam = 'BDC_OKCODE'.
      bdcdata_line-fval = '=SHOP'.
      APPEND bdcdata_line TO bdcdata_tab.

      CLEAR: bdcdata_line.
      bdcdata_line-fnam = 'RS38M-PROGRAMM'.
      bdcdata_line-fval = <fs_list>-PGMNA.
      APPEND bdcdata_line TO bdcdata_tab.

      opt-dismode = 'E'.
      opt-defsize = 'X'.

      CALL TRANSACTION 'SE38' USING bdcdata_tab  OPTIONS FROM opt.
    WHEN 'TCODE'.
      CALL TRANSACTION <fs_list>-TCODE." AND SKIP FIRST SCREEN.
      ENDCASE.
  ENDCASE.
ENDFORM.                    "USER_COMMAND_ALV

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

gavin_gxh

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

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

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

打赏作者

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

抵扣说明:

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

余额充值