接口报表日志记录查询

TABLES: rkpf.
DATA szfssc_log TYPE zfssc_log.
DATA gt_log TYPE STANDARD TABLE OF zfssc_log.
DATA:gs_layo TYPE lvc_s_layo.


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: s_zywlx FOR szfssc_log-zywlx DEFAULT '1'.
SELECT-OPTIONS: s_vbeln FOR szfssc_log-vbeln .
SELECT-OPTIONS: s_zdate FOR szfssc_log-zdate  DEFAULT sy-datum.
SELECT-OPTIONS: s_zsces FOR szfssc_log-zsces .
SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.
  PERFORM frm_get_data.
  IF gt_log[] IS INITIAL.
    MESSAGE '没有符合条件的日志' TYPE 'S' DISPLAY LIKE 'E'.
    RETURN.
  ENDIF.

END-OF-SELECTION.
  PERFORM frm_set_layo.
  PERFORM frm_display_alv.


*&---------------------------------------------------------------------*
*&  包含                ZFSSC_LOG_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_get_data .

  SELECT * INTO TABLE @gt_log
    FROM zfssc_log
    WHERE zywlx IN @s_zywlx
      AND vbeln IN @s_vbeln
      AND zdate IN @s_zdate
      AND zsces IN @s_zsces.

  IF sy-subrc = 0.
    SORT gt_log BY zdate DESCENDING ztime DESCENDING zywlx vbeln.
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_LAYO
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_layo .

  CLEAR gs_layo.
  gs_layo-zebra    = abap_true.
  gs_layo-sel_mode = 'A'.
  gs_layo-cwidth_opt = abap_true.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_DISPLAY_ALV
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_display_alv .

  DATA:lt_dfies_tab TYPE STANDARD TABLE OF dfies.
  CALL FUNCTION 'DDIF_FIELDINFO_GET'
    EXPORTING
      tabname   = 'ZFSSC_LOG'
    TABLES
      dfies_tab = lt_dfies_tab.

  DATA(gt_fcat) =  VALUE lvc_t_fcat( FOR ls_dfies_tab IN lt_dfies_tab ( VALUE #( BASE CORRESPONDING #( ls_dfies_tab MAPPING coltext = fieldtext ) no_out  = COND #( WHEN ls_dfies_tab-fieldname = 'MANDT' THEN 'X' ) ) ) ).

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'FRM_STATUS'
      i_callback_user_command  = 'FRM_USER_COMMAND'
      it_fieldcat_lvc          = gt_fcat
      i_bypassing_buffer       = abap_true
      i_default                = abap_true
      is_layout_lvc            = gs_layo
    TABLES
      t_outtab                 = gt_log[]
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  set_pf_status
*&---------------------------------------------------------------------*
*       设置 alv 状态栏
*----------------------------------------------------------------------*
*      -->RT_EXTAB   隐藏按钮
*----------------------------------------------------------------------*
FORM frm_status USING it_extab TYPE slis_t_extab.
  SET PF-STATUS 'ST_1000'.
ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FRM_USER_COMMAND
*&---------------------------------------------------------------------*
*       双击检验批
*----------------------------------------------------------------------*
*      -->iv_ucomm     功能代码
*      <--cs_selfield  事件信息
*----------------------------------------------------------------------*
FORM frm_user_command USING iv_ucomm LIKE sy-ucomm
                      CHANGING cs_selfield TYPE slis_selfield.
  CASE iv_ucomm.
    WHEN  '&IC1'.
      PERFORM frm_show_json USING  cs_selfield..
    WHEN 'BTN_REF'.
      PERFORM frm_get_data.
    WHEN 'BTN_DEL'.
      PERFORM frm_del_data.
      PERFORM frm_get_data.
  ENDCASE.

  cs_selfield-refresh = abap_true.
  cs_selfield-col_stable = abap_true.
  cs_selfield-row_stable = abap_true.
ENDFORM.                    "frm_user_command
*&---------------------------------------------------------------------*
*&      Form  FRM_SHOW_JSON
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_show_json USING is_selfield TYPE slis_selfield.

  READ TABLE gt_log INTO DATA(ls_log) INDEX is_selfield-tabindex.
  IF sy-subrc <> 0 OR ls_log-imstr IS INITIAL.
    RETURN.
  ENDIF.
  IF is_selfield-fieldname = 'IMSTR'.
    CALL TRANSFORMATION sjson2html SOURCE XML ls_log-imstr RESULT XML DATA(lv_html).
  ELSEIF is_selfield-fieldname = 'EXSTR'.
    CALL TRANSFORMATION sjson2html SOURCE XML ls_log-exstr RESULT XML lv_html.
  ELSE.
    RETURN.
  ENDIF.

  cl_demo_output=>display_html( cl_abap_codepage=>convert_from( lv_html ) ).
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_DEL_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_del_data .
  DATA: lrf_grid TYPE REF TO cl_gui_alv_grid.
  DATA: lt_tab TYPE STANDARD TABLE OF zfssc_log.
  DATA: lv_ans TYPE char1.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = lrf_grid.

  CALL METHOD lrf_grid->get_selected_rows
    IMPORTING
      et_index_rows = DATA(lt_rows).

  LOOP AT lt_rows INTO DATA(ls_rows).
    READ TABLE gt_log INTO DATA(ls_log) INDEX ls_rows-index.
    IF sy-subrc = 0.
      APPEND ls_log TO lt_tab.
    ENDIF.
  ENDLOOP.

  IF lt_tab[] IS INITIAL.
    RETURN.
  ENDIF.

  CLEAR lv_ans.
  CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
      titlebar       = '删除LOG'
      text_question  = '确认删除?'
      text_button_1  = '是'
      text_button_2  = '否'
    IMPORTING
      answer         = lv_ans
    EXCEPTIONS
      text_not_found = 1
      OTHERS         = 2.
  IF sy-subrc <> 0 OR lv_ans <> '1'.
    RETURN.
  ENDIF.

  DELETE zfssc_log FROM TABLE lt_tab[].
  IF sy-subrc = 0.
    MESSAGE '已删除' TYPE 'I' DISPLAY LIKE 'S'.
  ELSE.
    MESSAGE '删除失败' TYPE 'I' DISPLAY LIKE 'W'.
  ENDIF.
ENDFORM.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值