*&---------------------------------------------------------------------*
*& Report ZDZHT_LBX007_3
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZDZHT_LBX007_3
LINE-COUNT 10(2) "行数
LINE-SIZE 72. "页面尺寸
*&---------------------------------------------------------------------*
*& TYPES定義
*&---------------------------------------------------------------------*
TYPES:
BEGIN OF TS_WA,
W_COM1 TYPE ZDZHT_HZN_DEMO4-Z_COM, "公司ID
W_DEP1 TYPE ZDZHT_HZN_DEMO4-Z_DEP, "部门ID
W_NAME1 TYPE ZDZHT_HZN_DEMO4-Z_NAME, "姓名
W_DATE1 TYPE ZDZHT_HZN_DEMO4-Z_DATE, "日期
W_SAL1 TYPE ZDZHT_HZN_DEMO4-Z_SAL, "薪资
W_UNIT1 TYPE ZDZHT_HZN_DEMO4-Z_UNIT, "货币代码
END OF TS_WA.
*&---------------------------------------------------------------------*
*& DATA定義
*&---------------------------------------------------------------------*
DATA:
HEADER(30),
W_COM TYPE ZHZN_E_COM, "公司ID
W_DEP TYPE ZHZN_E_DEP, "部门ID
W_NAME TYPE ZHZN_E_NAME3, "姓名
W_DATE TYPE ZHZN_E_DATE, "日期
W_SAL(10) TYPE C, "薪资
W_UNIT TYPE ZHZN_E_UNIT2, "货币代码
ST_ADD TYPE TS_WA,
I_ADD TYPE STANDARD TABLE OF ZDZHT_HZN_DEMO4 WITH HEADER LINE,
I_ADD2 TYPE TABLE OF TS_WA.
*&---------------------------------------------------------------------*
*& PARAMETERS/SELECT-OPTIONS
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1
WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS RB_UP TYPE CHAR01
RADIOBUTTON GROUP G1 DEFAULT 'X' USER-COMMAND UC1.
SELECTION-SCREEN COMMENT 2(8) TEXT-003
FOR FIELD RB_UP.
SELECTION-SCREEN POSITION 14.
PARAMETERS RB_SHOW TYPE CHAR01
RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 16(8) TEXT-004
FOR FIELD RB_SHOW.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2
WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS:
S_COM FOR W_COM MODIF ID M1,
S_DEP FOR W_DEP MODIF ID M1,
S_NAME FOR W_NAME MODIF ID M1,
S_DATE FOR W_DATE MODIF ID M1,
S_SAL FOR W_SAL MODIF ID M2 ,
S_UNIT FOR W_UNIT NO-EXTENSION NO INTERVALS MODIF ID M1.
SELECTION-SCREEN END OF BLOCK B2.
*&---------------------------------------------------------------------*
*& INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
HEADER = '工资明细表信息表示'.
*&---------------------------------------------------------------------*
*& AT SELECTION-SCREEN OUTPUT
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF RB_UP = 'X'. "选择更新时隐藏以下字段
SCREEN-ACTIVE = 1.
IF SCREEN-NAME = 'S_COM-HIGH'
OR SCREEN-NAME = '%_S_COM_%_APP_%-VALU_PUSH'
OR SCREEN-NAME = 'S_DEP-HIGH'
OR SCREEN-NAME = '%_S_DEP_%_APP_%-VALU_PUSH'
OR SCREEN-NAME = 'S_NAME-HIGH'
OR SCREEN-NAME = '%_S_NAME_%_APP_%-VALU_PUSH'
OR SCREEN-NAME = 'S_DATE-HIGH'
OR SCREEN-NAME = '%_S_DATE_%_APP_%-VALU_PUSH'
OR SCREEN-NAME = 'S_SAL-HIGH'
OR SCREEN-NAME = '%_S_SAL_%_APP_%-VALU_PUSH'.
SCREEN-INPUT = 0.
SCREEN-INVISIBLE = 1.
ENDIF.
ENDIF.
IF RB_SHOW = 'X' AND SCREEN-GROUP1 = 'M2'. "选择表示时隐藏以下字段
SCREEN-ACTIVE = 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
IF RB_UP = 'X'. "选择更新
PERFORM P_UPDATA.
ELSEIF RB_SHOW = 'X'. "选择表示
PERFORM P_VIEW.
ENDIF.
*&---------------------------------------------------------------------*
*& TOP-OF-PAGE
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
WRITE:HEADER.
SKIP.
*&---------------------------------------------------------------------*
*& END-OF-PAGE
*&---------------------------------------------------------------------*
END-OF-PAGE.
ULINE. "下划线
WRITE:'end of page'.
*&---------------------------------------------------------------------*
*& AT LINE SELECTION
*&---------------------------------------------------------------------*
AT LINE-SELECTION. "点击选择
MESSAGE: 'You clicked list' TYPE 'S'.
*&---------------------------------------------------------------------*
*& Form P_UPDATA
*&---------------------------------------------------------------------*
*& 更新或插入工资明细表
*&---------------------------------------------------------------------*
FORM P_UPDATA .
IF S_COM IS INITIAL. "公司ID为空
MESSAGE'请输入公司ID' TYPE 'E' DISPLAY LIKE 'S'.
ENDIF.
CLEAR I_ADD.
I_ADD-Z_COM = S_COM-LOW. "公司ID
I_ADD-Z_DEP = S_DEP-LOW. "部门ID
I_ADD-Z_NAME = S_NAME-LOW. "姓名
I_ADD-Z_DATE = S_DATE-LOW. "日期
I_ADD-Z_SAL = S_SAL-LOW. "薪资
I_ADD-Z_UNIT = S_UNIT-LOW. "货币代码
MODIFY ZDZHT_HZN_DEMO4 FROM I_ADD.
*判断异常
IF SY-SUBRC = 0.
COMMIT WORK.
MESSAGE '数据更新成功' TYPE 'S'.
ELSE.
ROLLBACK WORK.
MESSAGE '数据更新失败' TYPE 'E' DISPLAY LIKE 'S'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form P_VIEW
*&---------------------------------------------------------------------*
*& 表示工资明细表
*&---------------------------------------------------------------------*
FORM P_VIEW .
CASE S_COM-LOW.
WHEN ''. "公司ID为空
SELECT A~Z_COM "公司ID
A~Z_DEP "部门ID
A~Z_NAME "姓名
A~Z_DATE "日期
A~Z_SAL "薪资
A~Z_UNIT "货币代码
INTO TABLE I_ADD2
FROM ZDZHT_HZN_DEMO4 AS A.
LOOP AT I_ADD2 INTO ST_ADD.
WRITE: / ST_ADD-W_COM1, "公司ID
ST_ADD-W_DEP1, "部门ID
ST_ADD-W_NAME1, "姓名
ST_ADD-W_DATE1, "日期
ST_ADD-W_UNIT1. "货币代码
ENDLOOP.
WHEN OTHERS.
SELECT SINGLE *
FROM ZDZHT_HZN_DEMO4
WHERE Z_COM = @S_COM-LOW
INTO @DATA(ST_WA).
*判断异常
IF SY-SUBRC = 0.
WRITE: / ST_WA-Z_COM, "公司ID
ST_WA-Z_DEP, "部门ID
ST_WA-Z_NAME, "姓名
ST_WA-Z_DATE, "日期
ST_WA-Z_UNIT. "货币代码
ELSE.
MESSAGE '公司ID不存在' TYPE 'E' DISPLAY LIKE 'S'.
ENDIF.
ENDCASE.
ENDFORM.
做出工资明细表的查询屏幕
最新推荐文章于 2025-05-08 10:00:08 发布