*&---------------------------------------------------------------------*
*& Report ZSEACH_HS
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZSEACH_HS.
DATA: GT_FIELD TYPE SLIS_T_FIELDCAT_ALV.
DATA: GS_FIELD TYPE SLIS_FIELDCAT_ALV.
DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
TYPES:BEGIN OF TY_ALV,
UTIME TYPE CDHDR-UTIME , "时间
TCODE TYPE CDHDR-TCODE , "事务代码
TABNAME TYPE CDPOS-TABNAME , "表名
TABKEY TYPE CDPOS-TABKEY , "表键
FNAME TYPE CDPOS-FNAME , "字段名
CHNGIND TYPE CDPOS-CHNGIND , "更改标识符
VALUE_NEW TYPE CDPOS-VALUE_NEW , "新值
VALUE_OLD TYPE CDPOS-VALUE_OLD , "旧值
END OF TY_ALV .
DATA : GT_ALV TYPE STANDARD TABLE OF TY_ALV,
GS_ALV TYPE TY_ALV.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:
P_NAME TYPE CDHDR-USERNAME OBLIGATORY DEFAULT SY-UNAME, "用户
P_UDATE TYPE CDHDR-UDATE OBLIGATORY DEFAULT SY-DATUM. "日期
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION .
* *获取取数
PERFORM FRM_GET_DATA.
*设置字段属性
PERFORM FRM_SET_FIELDCAT.
**设置输出格式
PERFORM FRM_SET_LAYOUT.
**显示ALV
PERFORM FRM_DISPLAY_ALV.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA .
SELECT
CDHDR~UTIME
CDHDR~TCODE "事务代码
CDPOS~TABNAME "表名
CDPOS~TABKEY "表键
CDPOS~FNAME "字段名
CDPOS~CHNGIND "更改标识符
CDPOS~VALUE_NEW "新值
CDPOS~VALUE_OLD "旧值
INTO TABLE GT_ALV
FROM CDHDR JOIN CDPOS ON
CDHDR~OBJECTCLAS = CDPOS~OBJECTCLAS AND
CDHDR~OBJECTID = CDPOS~OBJECTID AND
CDHDR~CHANGENR = CDPOS~CHANGENR
WHERE
CDHDR~USERNAME = P_NAME AND
CDHDR~UDATE = P_UDATE .
SORT GT_ALV BY UTIME .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SET_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_SET_FIELDCAT .
REFRESH GT_FIELD .
DEFINE MAC_ABAP_INIT.
CLEAR:gS_field.
gs_field-fieldname = &1.
gs_field-reptext_ddic = &2.
* gs_field-just = &3.
*IF gs_field-fieldname = 'FNAME' .
*
* gs_field-EDIT = 'X' .
*
*ENDIF.
APPEND gS_field TO gt_field.
END-OF-DEFINITION.
MAC_ABAP_INIT 'UTIME' '时间' .
MAC_ABAP_INIT 'TCODE' '事务代码' .
MAC_ABAP_INIT 'TABNAME' '表名' .
MAC_ABAP_INIT 'TABKEY' '表键' .
MAC_ABAP_INIT 'FNAME' '字段名' .
MAC_ABAP_INIT 'CHNGIND' '更改标识符' .
MAC_ABAP_INIT 'VALUE_NEW' '新值' .
MAC_ABAP_INIT 'VALUE_OLD' '旧值' .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SET_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_SET_LAYOUT .
CLEAR GS_LAYOUT.
GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GS_LAYOUT-ZEBRA = 'X'