************************************************************************
* PROGRAM NAME : ZFIRP726 *
* APPLCIATION NAME : FI *
* SUBSYSTEM : *
* AUTHOR : LUWEI *
* TRANSACTION : ZFI726 *
* PROGRAM TYPE : REPORT *
* SAP RELEASE : 4.6C *
* PROGRAM ID : ZFIRP726 *
* PROGRAM DESCRIPTION: 上傳每日放帳資料 *
************************************************************************
* REVISION LOG *
* LOG# DATE AUTHOR DESCRIPTION *
* 0001 2021.12.27 LUWEI NEW CREATE *
************************************************************************
REPORT ZFIRP726
MESSAGE-ID ZOTIZMSG
NO STANDARD PAGE HEADING.
*&---------------------------------------------------------------------*
*& TABLES:
*&---------------------------------------------------------------------*
TABLES: ZFIT2001,
KNA1,
BSID,
BSAD,
ZFIT2001_BX,
BSEG.
*&--------------------------------------------------------------------*
*& TYPES-POOLS:
*&--------------------------------------------------------------------*
TYPE-POOLS: SLIS.
***********************************************************************
*& DATA FOR ALV: *
***********************************************************************
DATA:
I_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
I_PRINT TYPE SLIS_PRINT_ALV.
DATA:
W_REPID LIKE SY-REPID.
DATA: W_BOXNAM TYPE SLIS_FIELDNAME VALUE 'BOX',
W_F2CODE LIKE SY-UCOMM VALUE '&ETA',
W_LIGNAM TYPE SLIS_FIELDNAME VALUE 'LIGHTS',
W_SAVE(1) TYPE C,
W_DEFAULT(1) TYPE C,
W_EXIT(1) TYPE C.
DATA: L_REF_ALV TYPE REF TO CL_GUI_ALV_GRID.
DATA: GT_FC TYPE LVC_T_FCAT,
GW_FC TYPE LVC_S_FCAT,
I_LAYOUT TYPE LVC_S_LAYO,
GT_EVENTS TYPE SLIS_T_EVENT,
GW_EVENTS TYPE SLIS_ALV_EVENT.
DATA: WA_SORT_LVC TYPE LVC_S_SORT,
GT_SORT_LVC TYPE LVC_T_SORT,
I_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE,
I_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GV_ICON(5) TYPE C.
*&---------------------------------------------------------------------*
*& INTERNAL TABLES:
*&---------------------------------------------------------------------*
DATA:
BEGIN OF GT_KNA1 OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
LAND1 LIKE KNA1-LAND1,
VBUND LIKE KNA1-VBUND,
END OF GT_KNA1.
DATA:
BEGIN OF GT_BSEG OCCURS 0,
BUKRS LIKE BSEG-BUKRS,
BELNR LIKE BSEG-BELNR,
GJAHR LIKE BSEG-GJAHR,
VBUND LIKE BSEG-VBUND,
AFFILIATE(1) TYPE C,
END OF GT_BSEG.
DATA:
BEGIN OF GT_ZFIT2001 OCCURS 0,
BUKRS LIKE ZFIT2001-BUKRS,
ZKKBER LIKE ZFIT2001-ZKKBER,
KNKLI LIKE ZFIT2001-KNKLI,
ZKUNNR LIKE ZFIT2001-ZKUNNR,
ZCTYP LIKE ZFIT2001-ZCTYP,
ZDBTR LIKE ZFIT2001-ZDBTR,
CASHC LIKE ZFIT2001-CASHC,
VBUND LIKE KNA1-VBUND,
ZKLIMK LIKE ZFIT2001-ZKLIMK,
ZBDATE LIKE ZFIT2001-ZBDATE,
ZEDATE LIKE ZFIT2001-ZEDATE,
ISTYPE LIKE ZFIT2001-ISTYPE,
TISTYPE LIKE ZFIT2001_BX-TISTYPE,
NAME1 LIKE KNA1-NAME1,
LAND1 LIKE KNA1-LAND1,
CHANNEL(2) TYPE C,
AFFILIATE(1) TYPE C,
COLLATERAL LIKE ZFIT2001-ZKLIMK,
INSURANCE LIKE ZFIT2001-ZKLIMK,
OFFICIAL LIKE ZFIT2001-ZKLIMK,
CAD LIKE ZFIT2001-ZKLIMK,
TEMPORARY LIKE ZFIT2001-ZKLIMK,
END OF GT_ZFIT2001.
DATA:
BEGIN OF GT_ZFIT2001_BX OCCURS 0,
ISTYPE LIKE ZFIT2001_BX-ISTYPE,
ISNAME LIKE ZFIT2001_BX-ISNAME,
TISTYPE LIKE ZFIT2001_BX-TISTYPE,
END OF GT_ZFIT2001_BX.
DATA:
BEGIN OF GT_BSID OCCURS 0,
BUKRS LIKE BSID-BUKRS,
BUDAT LIKE BSID-BUDAT, "记账日期
BELNR LIKE BSID-BELNR, "会计凭证号
GJAHR LIKE BSID-GJAHR, "会计年度
KUNNR LIKE BSID-KUNNR, "供应商号码
KKBER LIKE BSID-KKBER,
NAME1 LIKE LFA1-NAME1, "供应商名称
LAND1 LIKE KNA1-LAND1,
XBLNR LIKE BSID-XBLNR, "采购订单号
WAERS LIKE BSID-WAERS, "币种
WRBTR LIKE BSID-WRBTR, "金额
DMBTR LIKE BSID-DMBTR, "本位币金额
SGTXT LIKE BSID-SGTXT, "参照(请款人)
SHKZG LIKE BSID-SHKZG, " .
ZFBDT LIKE BSID-ZFBDT,
ZTERM LIKE BSID-ZTERM,
ZBD1T LIKE BSID-ZBD1T,
AUGDT LIKE BSID-AUGDT,
UMSKZ LIKE BSID-UMSKZ,
VBUND LIKE BSEG-VBUND,
CHANNEL(2) TYPE C,
AFFILIATE(1) TYPE C,
DATEBASE LIKE BSID-BUDAT,
DATEINT TYPE I,
OVERDUE15 LIKE BSID-DMBTR,
OVERDUE30 LIKE BSID-DMBTR,
OVERDUE44 LIKE BSID-DMBTR,
OVERDUE60 LIKE BSID-DMBTR,
OVERDUE LIKE BSID-DMBTR,
NOTDUE LIKE BSID-DMBTR,
END OF GT_BSID.
DATA:
BEGIN OF GT_OUT OCCURS 0,
KUNNR LIKE BSID-KUNNR, "供应商号码
KKBER LIKE BSID-KKBER,
NAME1 LIKE LFA1-NAME1, "供应商名称
LAND1 LIKE KNA1-LAND1,
CHANNEL(2) TYPE C,
AFFILIATE(1) TYPE C,
COLLATERAL LIKE ZFIT2001-ZKLIMK,
INSURANCE LIKE ZFIT2001-ZKLIMK,
OFFICIAL LIKE ZFIT2001-ZKLIMK,
CAD LIKE ZFIT2001-ZKLIMK,
TEMPORARY LIKE ZFIT2001-ZKLIMK,
OVERDUE15 LIKE BSID-DMBTR,
OVERDUE30 LIKE BSID-DMBTR,
OVERDUE44 LIKE BSID-DMBTR,
OVERDUE60 LIKE BSID-DMBTR,
OVERDUE LIKE BSID-DMBTR,
NOTDUE LIKE BSID-DMBTR,
TOTAL LIKE BSID-DMBTR,
TISTYPE LIKE ZFIT2001_BX-TISTYPE,
END OF GT_OUT.
DATA:
BEGIN OF LT_ZFIT2001T OCCURS 0,
ZKKBER LIKE ZFIT2001-ZKKBER,
KNKLI LIKE ZFIT2001-KNKLI,
ZEDATE LIKE ZFIT2001-ZEDATE,
ISTYPE LIKE ZFIT2001-ISTYPE,
TISTYPE LIKE ZFIT2001_BX-TISTYPE,
END OF LT_ZFIT2001T.
DATA:LT_BSID LIKE GT_BSID OCCURS 0 WITH HEADER LINE.
DATA:LT_ZFIT2001 LIKE GT_ZFIT2001 OCCURS 0 WITH HEADER LINE.
DATA:GT_OUTA LIKE GT_OUT OCCURS 0 WITH HEADER LINE.
************************************************************************
* SELETION-SCREEN
************************************************************************
PARAMETERS: P_BDATE LIKE ZFIT2001-ZBDATE,
CBOX AS CHECKBOX.
************************************************************************
* START-OF-SELECTION *
************************************************************************
PERFORM GET_DATA.
PERFORM PRO_DATA.
IF CBOX = 'X'.
PERFORM PRINT_GT_OUT.
ELSE.
PERFORM TRANS_TO_BI.
ENDIF.
*&---------------------------------------------------------------------*
*& FORM GET_DATA
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT
BSID~BUKRS
BSID~BUDAT
BSID~BELNR
BSID~GJAHR
BSID~KUNNR
BSID~KKBER
BSID~XBLNR
BSID~WAERS
BSID~WRBTR
BSID~DMBTR
BSID~SGTXT
BSID~SHKZG
BSID~ZFBDT
BSID~ZTERM
BSID~ZBD1T
BSID~AUGDT
BSID~UMSKZ
INTO CORRESPONDING FIELDS OF TABLE GT_BSID
FROM BSID
WHERE
BSID~BUDAT <= P_BDATE
AND BSID~BUKRS = '5100'
AND BSID~UMSKZ = ''
AND BSID~KKBER <> ''.
SELECT
BSAD~BUKRS
BSAD~BUDAT
BSAD~BELNR
BSAD~GJAHR
BSAD~KUNNR
BSAD~KKBER
BSAD~XBLNR
BSAD~WAERS
BSAD~WRBTR
BSAD~DMBTR
BSAD~SGTXT
BSAD~SHKZG
BSAD~ZFBDT
BSAD~ZTERM
BSAD~ZBD1T
BSAD~AUGDT
BSAD~UMSKZ
APPENDING CORRESPONDING FIELDS OF TABLE GT_BSID
FROM BSAD
WHERE
BSAD~BUDAT <= P_BDATE
AND BSAD~AUGDT > P_BDATE
AND BSAD~BUKRS = '5100'
AND BSAD~UMSKZ = ''
AND BSAD~KKBER <> ''.
SELECT
KNA1~KUNNR
KNA1~NAME1
KNA1~LAND1
KNA1~VBUND
FROM KNA1
INTO CORRESPONDING FIELDS OF TABLE GT_KNA1
FOR ALL ENTRIES IN GT_BSID
WHERE KNA1~KUNNR = GT_BSID-KUNNR.
SELECT
BSEG~BUKRS
BSEG~BELNR
BSEG~GJAHR
BSEG~VBUND
FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE GT_BSEG
FOR ALL ENTRIES IN GT_BSID
WHERE BSEG~BUKRS = GT_BSID-BUKRS
AND BSEG~BELNR = GT_BSID-BELNR
AND BSEG~GJAHR = GT_BSID-GJAHR.
SELECT * FROM ZFIT2001_BX
INTO CORRESPONDING FIELDS OF TABLE GT_ZFIT2001_BX.
SELECT
ZFIT2001~BUKRS
ZFIT2001~ZKUNNR
ZFIT2001~KNKLI
ZFIT2001~ZKKBER
ZFIT2001~ZCTYP
ZFIT2001~ZDBTR
ZFIT2001~CASHC
ZFIT2001~ZKLIMK
ZFIT2001~ZBDATE
ZFIT2001~ZEDATE
ZFIT2001~ISTYPE
FROM ZFIT2001
INTO CORRESPONDING FIELDS OF TABLE GT_ZFIT2001
WHERE ZBDATE <= P_BDATE
AND ZEDATE >= P_BDATE .
SELECT
KNA1~KUNNR
KNA1~NAME1
KNA1~LAND1
KNA1~VBUND
FROM KNA1
APPENDING CORRESPONDING FIELDS OF TABLE GT_KNA1
FOR ALL ENTRIES IN GT_ZFIT2001
WHERE KNA1~KUNNR = GT_ZFIT2001-KNKLI.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM PRO_DATA
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM PRO_DATA .
DATA: JINE LIKE BSEG-WRBTR .
DATA: FA LIKE BSEG-WRBTR,
FC LIKE T001-WAERS,
LC LIKE T001-WAERS,
TY LIKE TCURR-KURST.
DATA: DATE LIKE SY-DATUM .
LOOP AT GT_BSEG.
IF GT_BSEG-VBUND = ''.
GT_BSEG-AFFILIATE = 'N'.
ELSE.
GT_BSEG-AFFILIATE = 'Y'.
ENDIF.
MODIFY GT_BSEG.
CLEAR GT_BSEG.
ENDLOOP.
LOOP AT GT_BSID.
IF GT_BSID-SHKZG = 'H'.
GT_BSID-DMBTR = GT_BSID-DMBTR * -1.
ENDIF.
READ TABLE GT_KNA1 WITH KEY KUNNR = GT_BSID-KUNNR.
IF SY-SUBRC = 0.
GT_BSID-NAME1 = GT_KNA1-NAME1.
GT_BSID-LAND1 = GT_KNA1-LAND1.
GT_BSID-VBUND = GT_KNA1-VBUND.
ENDIF.
IF GT_BSID-VBUND = ''.
GT_BSID-AFFILIATE = 'N'.
ELSE.
GT_BSID-AFFILIATE = 'Y'.
ENDIF.
IF GT_BSID-KKBER = 'VN10' OR GT_BSID-KKBER = 'VP12'
OR GT_BSID-KKBER = 'VP22' OR GT_BSID-KKBER = 'VP32'.
GT_BSID-CHANNEL = '10'.
ELSEIF GT_BSID-KKBER = 'VN00' OR GT_BSID-KKBER = 'VP11'
OR GT_BSID-KKBER = 'VP21' OR GT_BSID-KKBER = 'VP31'.
GT_BSID-CHANNEL = '20'.
ENDIF.
GT_BSID-DATEBASE = GT_BSID-ZFBDT + GT_BSID-ZBD1T.
GT_BSID-DATEINT = P_BDATE - GT_BSID-DATEBASE .
IF GT_BSID-DATEINT <= 0.
GT_BSID-NOTDUE = GT_BSID-DMBTR .
ELSEIF GT_BSID-DATEINT > 0 AND GT_BSID-DATEINT <= 15.
GT_BSID-OVERDUE15 = GT_BSID-DMBTR .
ELSEIF GT_BSID-DATEINT > 15 AND GT_BSID-DATEINT <= 30.
GT_BSID-OVERDUE30 = GT_BSID-DMBTR .
ELSEIF GT_BSID-DATEINT > 30 AND GT_BSID-DATEINT <= 44.
GT_BSID-OVERDUE44 = GT_BSID-DMBTR .
ELSEIF GT_BSID-DATEINT > 44 AND GT_BSID-DATEINT <= 60.
GT_BSID-OVERDUE60 = GT_BSID-DMBTR .
ELSEIF GT_BSID-DATEINT > 60 .
GT_BSID-OVERDUE = GT_BSID-DMBTR .
ENDIF.
MODIFY GT_BSID.
CLEAR GT_BSID.
ENDLOOP.
LOOP AT GT_BSID.
LT_BSID-KUNNR = GT_BSID-KUNNR.
LT_BSID-KKBER = GT_BSID-KKBER.
LT_BSID-NAME1 = GT_BSID-NAME1.
LT_BSID-LAND1 = GT_BSID-LAND1.
LT_BSID-CHANNEL = GT_BSID-CHANNEL.
LT_BSID-AFFILIATE = GT_BSID-AFFILIATE.
LT_BSID-OVERDUE15 = GT_BSID-OVERDUE15.
LT_BSID-OVERDUE30 = GT_BSID-OVERDUE30.
LT_BSID-OVERDUE44 = GT_BSID-OVERDUE44.
LT_BSID-OVERDUE60 = GT_BSID-OVERDUE60.
LT_BSID-OVERDUE = GT_BSID-OVERDUE .
LT_BSID-NOTDUE = GT_BSID-NOTDUE .
COLLECT LT_BSID.
CLEAR LT_BSID.
ENDLOOP.
LOOP AT GT_ZFIT2001 .
IF GT_ZFIT2001-ZCTYP = 'A8' OR GT_ZFIT2001-ZCTYP = 'A2' OR
GT_ZFIT2001-ZCTYP = 'D4' OR GT_ZFIT2001-ZCTYP = 'Y1' OR
GT_ZFIT2001-ZCTYP = 'Y2' OR GT_ZFIT2001-ZCTYP = 'A1' OR GT_ZFIT2001-ZCTYP = 'A5' OR
GT_ZFIT2001-ZCTYP = 'A7' OR GT_ZFIT2001-ZCTYP = 'T1'.
ELSE.
DELETE GT_ZFIT2001 .
ENDIF.
ENDLOOP.
LOOP AT GT_ZFIT2001 .
READ TABLE GT_ZFIT2001_BX WITH KEY ISTYPE = GT_ZFIT2001-ISTYPE.
IF SY-SUBRC = 0.
GT_ZFIT2001-TISTYPE = GT_ZFIT2001_BX-TISTYPE.
ENDIF.
READ TABLE GT_KNA1 WITH KEY KUNNR = GT_ZFIT2001-KNKLI.
IF SY-SUBRC = 0.
GT_ZFIT2001-NAME1 = GT_KNA1-NAME1.
GT_ZFIT2001-LAND1 = GT_KNA1-LAND1.
GT_ZFIT2001-VBUND = GT_KNA1-VBUND.
ENDIF.
IF GT_ZFIT2001-VBUND = ''.
GT_ZFIT2001-AFFILIATE = 'N'.
ELSE.
GT_ZFIT2001-AFFILIATE = 'Y'.
ENDIF.
IF GT_ZFIT2001-ZKKBER = 'VN10' OR GT_ZFIT2001-ZKKBER = 'VP12'
OR GT_ZFIT2001-ZKKBER = 'VP22' OR GT_ZFIT2001-ZKKBER = 'VP32'.
GT_ZFIT2001-CHANNEL = '10'.
ELSEIF GT_ZFIT2001-ZKKBER = 'VN00' OR GT_ZFIT2001-ZKKBER = 'VP11'
OR GT_ZFIT2001-ZKKBER = 'VP21' OR GT_ZFIT2001-ZKKBER = 'VP31'.
GT_ZFIT2001-CHANNEL = '20'.
ENDIF.
IF GT_ZFIT2001-CASHC NE 'USD'.
DATE = P_BDATE.
FC = GT_ZFIT2001-CASHC.
LC = 'USD'.
FA = GT_ZFIT2001-ZKLIMK.
TY = 'M'.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
DATE = DATE
FOREIGN_AMOUNT = FA
FOREIGN_CURRENCY = FC
LOCAL_CURRENCY = LC
TYPE_OF_RATE = TY
IMPORTING
LOCAL_AMOUNT = JINE
EXCEPTIONS
NO_RATE_FOUND = 1
OTHERS = 2.
GT_ZFIT2001-ZKLIMK = JINE.
CLEAR JINE.
ENDIF.
IF GT_ZFIT2001-ZCTYP = 'A8' OR GT_ZFIT2001-ZCTYP = 'A2'.
GT_ZFIT2001-COLLATERAL = GT_ZFIT2001-ZKLIMK.
ENDIF.
IF GT_ZFIT2001-ZCTYP = 'D4' OR GT_ZFIT2001-ZCTYP = 'Y1'.
GT_ZFIT2001-INSURANCE = GT_ZFIT2001-ZKLIMK .
ENDIF.
IF GT_ZFIT2001-ZCTYP = 'Y2' OR GT_ZFIT2001-ZCTYP = 'A1' OR GT_ZFIT2001-ZCTYP = 'A5'.
GT_ZFIT2001-OFFICIAL = GT_ZFIT2001-ZKLIMK.
ENDIF.
IF GT_ZFIT2001-ZCTYP = 'A7'.
GT_ZFIT2001-CAD = GT_ZFIT2001-ZKLIMK.
ENDIF.
IF GT_ZFIT2001-ZCTYP = 'T1'.
GT_ZFIT2001-TEMPORARY = GT_ZFIT2001-ZKLIMK.
ENDIF.
MODIFY GT_ZFIT2001.
CLEAR GT_ZFIT2001.
ENDLOOP.
LOOP AT GT_ZFIT2001 .
LT_ZFIT2001-ZKKBER = GT_ZFIT2001-ZKKBER.
LT_ZFIT2001-KNKLI = GT_ZFIT2001-KNKLI.
LT_ZFIT2001-NAME1 = GT_ZFIT2001-NAME1.
LT_ZFIT2001-LAND1 = GT_ZFIT2001-LAND1.
LT_ZFIT2001-AFFILIATE = GT_ZFIT2001-AFFILIATE.
LT_ZFIT2001-COLLATERAL = GT_ZFIT2001-COLLATERAL.
LT_ZFIT2001-INSURANCE = GT_ZFIT2001-INSURANCE .
LT_ZFIT2001-OFFICIAL = GT_ZFIT2001-OFFICIAL .
LT_ZFIT2001-CAD = GT_ZFIT2001-CAD .
LT_ZFIT2001-TEMPORARY = GT_ZFIT2001-TEMPORARY .
LT_ZFIT2001-CHANNEL = GT_ZFIT2001-CHANNEL.
* LT_ZFIT2001-TISTYPE = GT_ZFIT2001-TISTYPE.
COLLECT LT_ZFIT2001.
CLEAR LT_ZFIT2001.
ENDLOOP.
LOOP AT LT_BSID.
GT_OUT-KUNNR = LT_BSID-KUNNR.
GT_OUT-KKBER = LT_BSID-KKBER.
GT_OUT-NAME1 = LT_BSID-NAME1.
GT_OUT-LAND1 = LT_BSID-LAND1.
GT_OUT-CHANNEL = LT_BSID-CHANNEL.
GT_OUT-AFFILIATE = LT_BSID-AFFILIATE.
GT_OUT-OVERDUE15 = LT_BSID-OVERDUE15.
GT_OUT-OVERDUE30 = LT_BSID-OVERDUE30.
GT_OUT-OVERDUE44 = LT_BSID-OVERDUE44.
GT_OUT-OVERDUE60 = LT_BSID-OVERDUE60.
GT_OUT-OVERDUE = LT_BSID-OVERDUE .
GT_OUT-NOTDUE = LT_BSID-NOTDUE .
GT_OUT-TOTAL = LT_BSID-OVERDUE15 + LT_BSID-OVERDUE30 + LT_BSID-OVERDUE44
+ LT_BSID-OVERDUE60 + LT_BSID-OVERDUE + LT_BSID-NOTDUE.
APPEND GT_OUT.
CLEAR GT_OUT.
ENDLOOP.
LOOP AT GT_OUT.
READ TABLE LT_ZFIT2001 WITH KEY KNKLI = GT_OUT-KUNNR
ZKKBER = GT_OUT-KKBER
CHANNEL = GT_OUT-CHANNEL
AFFILIATE = GT_OUT-AFFILIATE .
IF SY-SUBRC = 0.
GT_OUT-COLLATERAL = LT_ZFIT2001-COLLATERAL.
GT_OUT-INSURANCE = LT_ZFIT2001-INSURANCE .
GT_OUT-OFFICIAL = LT_ZFIT2001-OFFICIAL .
GT_OUT-CAD = LT_ZFIT2001-CAD .
GT_OUT-TEMPORARY = LT_ZFIT2001-TEMPORARY .
ENDIF.
MODIFY GT_OUT.
CLEAR GT_OUT.
ENDLOOP.
LOOP AT GT_ZFIT2001 .
LT_ZFIT2001T-ZKKBER = GT_ZFIT2001-ZKKBER .
LT_ZFIT2001T-KNKLI = GT_ZFIT2001-KNKLI .
LT_ZFIT2001T-ZEDATE = GT_ZFIT2001-ZEDATE .
LT_ZFIT2001T-ISTYPE = GT_ZFIT2001-ISTYPE .
LT_ZFIT2001T-TISTYPE = GT_ZFIT2001-TISTYPE .
APPEND LT_ZFIT2001T.
CLEAR LT_ZFIT2001T.
ENDLOOP.
SORT LT_ZFIT2001T BY KNKLI ASCENDING ZKKBER ASCENDING ZEDATE DESCENDING .
DELETE ADJACENT DUPLICATES FROM LT_ZFIT2001T COMPARING KNKLI ZKKBER.
LOOP AT GT_OUT.
READ TABLE LT_ZFIT2001T WITH KEY KNKLI = GT_OUT-KUNNR
ZKKBER = GT_OUT-KKBER.
IF SY-SUBRC = 0.
GT_OUT-TISTYPE = LT_ZFIT2001T-TISTYPE .
ENDIF.
MODIFY GT_OUT.
CLEAR GT_OUT.
ENDLOOP.
LOOP AT GT_OUT.
IF GT_OUT-KKBER = 'VN00' OR GT_OUT-KKBER = 'VN10'.
GT_OUT-KKBER = '6030'.
ELSEIF GT_OUT-KKBER = 'VP11' OR GT_OUT-KKBER = 'VP12'.
GT_OUT-KKBER = '5031'.
ELSEIF GT_OUT-KKBER = 'VP21' OR GT_OUT-KKBER = 'VP22'.
GT_OUT-KKBER = '5020'.
ELSEIF GT_OUT-KKBER = 'VP31' OR GT_OUT-KKBER = 'VP32'.
GT_OUT-KKBER = '5011'.
ENDIF.
MODIFY GT_OUT.
CLEAR GT_OUT.
ENDLOOP.
LOOP AT GT_OUT.
MOVE-CORRESPONDING GT_OUT TO GT_OUTA.
APPEND GT_OUTA.
CLEAR GT_OUTA.
ENDLOOP.
CLEAR GT_OUT.
REFRESH GT_OUT.
LOOP AT GT_OUTA .
MOVE-CORRESPONDING GT_OUTA TO GT_OUT.
COLLECT GT_OUT.
CLEAR GT_OUT.
ENDLOOP.
SORT GT_OUT BY KUNNR KKBER.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form TRANS_TO_BI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM TRANS_TO_BI .
IF GT_OUT[] IS INITIAL.
ELSE.
DATA:
BEGIN OF LT_OUT OCCURS 0 ,
KUNNR LIKE BSID-KUNNR, "供应商号码
KKBER LIKE BSID-KKBER,
NAME1 LIKE LFA1-NAME1, "供应商名称
LAND1 LIKE KNA1-LAND1,
CHANNEL(2) TYPE C,
AFFILIATE(1) TYPE C,
COLLATERAL LIKE ZFIT2001-ZKLIMK,
INSURANCE LIKE ZFIT2001-ZKLIMK,
OFFICIAL LIKE ZFIT2001-ZKLIMK,
CAD LIKE ZFIT2001-ZKLIMK,
TEMPORARY LIKE ZFIT2001-ZKLIMK,
OVERDUE15 LIKE BSID-DMBTR,
OVERDUE30 LIKE BSID-DMBTR,
OVERDUE44 LIKE BSID-DMBTR,
OVERDUE60 LIKE BSID-DMBTR,
OVERDUE LIKE BSID-DMBTR,
NOTDUE LIKE BSID-DMBTR,
TOTAL LIKE BSID-DMBTR,
TISTYPE LIKE ZFIT2001_BX-TISTYPE,
END OF LT_OUT.
DATA: LW_OUT LIKE LINE OF LT_OUT.
DATA : INT TYPE P,
DATETIME(20) TYPE C,
TIME(10) TYPE C,
COMPCODE(10) TYPE C,
DATADATE(10) TYPE C,
UPDATE_USER(10) TYPE C.
DATA:
GW_TB_RETURN_PROXY TYPE ZPRXYDT_ZFIRP726_RETURN_DATA,
GT_TB_RETURN_PROXY TYPE ZPRXYDT_ZFIRP726_RETURN_DA_TAB,
GV_MESSAGEHEADER TYPE ZPRXYDT_MESSAGEHEADER,
OUTPUT_PROXY TYPE ZPRXYMT_ZFIRP726_RETURN,
PROXY TYPE REF TO ZPRXYCO_SI_ZFIRP726_RETURN_OUT,
REQUEST_MESSAGE_ID_PROTOCOL TYPE REF TO IF_WSPROTOCOL_MESSAGE_ID,
SERVER_CONTEXT TYPE REF TO IF_WS_SERVER_CONTEXT,
XI_HEADER_PROTOCOL TYPE REF TO IF_WSPROTOCOL_XI_HEADER.
DATA:
BEGIN OF GW_LOG,
MANDT TYPE MANDT,
REQUEST_MESSAGE_ID TYPE SXMSMGUID,
RESPONSE_MESSAGE_ID TYPE SXMSMGUID,
ZDATE TYPE DATS,
ZTIME TYPE TIMS,
SWCV TYPE STRING,
SERVER_PRXY_NS TYPE STRING,
CLIENT_PRXY_NS TYPE STRING,
INBOUND_SI TYPE STRING,
OUTBOUND_SI TYPE STRING,
ERROR_TEXT TYPE STRING,
END OF GW_LOG.
DATA:GT_ZPINOMAPPING TYPE ZPINOMAPPING,
GV_RENO TYPE STRING,
GV_RENO1 TYPE STRING,
GV_RENO2 TYPE STRING,
GV_RENO3 TYPE STRING,
GV_RENO4 TYPE STRING,
GV_RENO5 TYPE STRING,
GV_RESGUID TYPE STRING,
GV_SYMBOL TYPE C VALUE '-'.
CONCATENATE SY-DATUM(4) '-' SY-DATUM+4(2) '-' SY-DATUM+6(2) INTO DATETIME.
CONCATENATE SY-DATUM(4) '-' SY-DATUM+4(2) '-' SY-DATUM+6(2) INTO DATADATE.
CONCATENATE SY-UZEIT(2) ':' SY-UZEIT+2(2) ':' SY-UZEIT+4(2) INTO TIME .
CONCATENATE DATETIME TIME INTO DATETIME SEPARATED BY SPACE.
COMPCODE = 'fepv'.
LOOP AT GT_OUT.
INT = INT + 1.
MOVE-CORRESPONDING GT_OUT TO LT_OUT.
APPEND LT_OUT.
CLEAR LT_OUT.
ENDLOOP.
LOOP AT LT_OUT INTO LW_OUT .
GW_TB_RETURN_PROXY-KKBER = LW_OUT-KKBER.
GW_TB_RETURN_PROXY-CUSTNO = LW_OUT-KUNNR.
GW_TB_RETURN_PROXY-CUSTNAME = LW_OUT-NAME1.
GW_TB_RETURN_PROXY-LAND = LW_OUT-LAND1.
GW_TB_RETURN_PROXY-AFFILIATE = LW_OUT-AFFILIATE.
GW_TB_RETURN_PROXY-CHANNEL = LW_OUT-CHANNEL .
GW_TB_RETURN_PROXY-COLLATERAL = LW_OUT-COLLATERAL.
GW_TB_RETURN_PROXY-INSURANCE = LW_OUT-INSURANCE .
GW_TB_RETURN_PROXY-INSURER = LW_OUT-TISTYPE .
GW_TB_RETURN_PROXY-OFFICIAL = LW_OUT-OFFICIAL .
GW_TB_RETURN_PROXY-CAD = LW_OUT-CAD .
GW_TB_RETURN_PROXY-TEMPORARY = LW_OUT-TEMPORARY .
GW_TB_RETURN_PROXY-OVERDUE15 = LW_OUT-OVERDUE15 .
GW_TB_RETURN_PROXY-OVERDUE30 = LW_OUT-OVERDUE30 .
GW_TB_RETURN_PROXY-OVERDUE44 = LW_OUT-OVERDUE44 .
GW_TB_RETURN_PROXY-OVERDUE60 = LW_OUT-OVERDUE60 .
GW_TB_RETURN_PROXY-OVERDUE = LW_OUT-OVERDUE .
GW_TB_RETURN_PROXY-NOTDUE = LW_OUT-NOTDUE .
GW_TB_RETURN_PROXY-OUTSTANDING = LW_OUT-TOTAL.
GW_TB_RETURN_PROXY-DELETE_FLAG = ''.
APPEND GW_TB_RETURN_PROXY TO GT_TB_RETURN_PROXY.
CLEAR LW_OUT.
CLEAR GW_TB_RETURN_PROXY .
ENDLOOP.
OUTPUT_PROXY-MT_ZFIRP726_RETURN-DATA = GT_TB_RETURN_PROXY.
OUTPUT_PROXY-MT_ZFIRP726_RETURN-CURR_TIME = DATETIME.
OUTPUT_PROXY-MT_ZFIRP726_RETURN-COMPCODE = COMPCODE.
OUTPUT_PROXY-MT_ZFIRP726_RETURN-ROW_NUM = INT.
OUTPUT_PROXY-MT_ZFIRP726_RETURN-DATADATE = DATADATE.
.
TRY.
CREATE OBJECT PROXY.
CALL METHOD PROXY->SI_ZFIRP726_RETURN_OUT_ASYNC
EXPORTING
OUTPUT = OUTPUT_PROXY.
SERVER_CONTEXT = CL_PROXY_ACCESS=>GET_SERVER_CONTEXT( ).
REQUEST_MESSAGE_ID_PROTOCOL ?= SERVER_CONTEXT->GET_PROTOCOL( IF_WSPROTOCOL=>MESSAGE_ID ).
GT_ZPINOMAPPING-REQGUID = REQUEST_MESSAGE_ID_PROTOCOL->GET_MESSAGE_ID( ).
xi_header_protocol ?= PROXY->get_protocol( if_wsprotocol=>xi_header ).
GV_RENO = xi_header_protocol->get_header_field( if_wsprotocol_xi_header=>MESSAGE_ID ).
SPLIT GV_RENO at GV_symbol INTO GV_RENO1 GV_RENO2 GV_RENO3 GV_RENO4 GV_RENO5.
CONCATENATE GV_RENO1 GV_RENO2 GV_RENO3 GV_RENO4 GV_RENO5 INTO GV_RESGUID.
GT_ZPINOMAPPING-RESGUID = GV_RESGUID.
GT_ZPINOMAPPING-BLDAT = SY-DATUM.
INSERT INTO ZPINOMAPPING VALUES GT_ZPINOMAPPING.
COMMIT WORK.
CATCH CX_AI_SYSTEM_FAULT .
DATA fault TYPE REF TO cx_ai_system_fault .
CREATE OBJECT fault.
"LOG EXCEPTION INFO INTO TABLE
SERVER_CONTEXT = CL_PROXY_ACCESS=>GET_SERVER_CONTEXT( ).
REQUEST_MESSAGE_ID_PROTOCOL ?= SERVER_CONTEXT->GET_PROTOCOL( IF_WSPROTOCOL=>MESSAGE_ID ).
GW_LOG-ZDATE = SY-DATUM.
GW_LOG-ZTIME = SY-UZEIT.
GW_LOG-SWCV = 'ZSWCV_BI 1.0 of neusoft.com'.
GW_LOG-SERVER_PRXY_NS = 'http://feg.cn/ecc/fi'.
GW_LOG-CLIENT_PRXY_NS = 'http://feg.cn/bi/fi'.
GW_LOG-INBOUND_SI = 'SI_ZFIRP726_RETURN_IN_ASYNC'. "Server 端代理名称
GW_LOG-OUTBOUND_SI = 'SI_ZFIRP726_RETURN_OUT_ASYNC'. "Client 端代理名称
GW_LOG-MAndT = SY-MANDT.
GW_LOG-REQUEST_MESSAGE_ID = REQUEST_MESSAGE_ID_PROTOCOL->GET_MESSAGE_ID( ).
xi_header_protocol ?= PROXY->get_protocol( if_wsprotocol=>xi_header ).
GV_RENO = xi_header_protocol->get_header_field( if_wsprotocol_xi_header=>MESSAGE_ID ).
SPLIT GV_RENO at GV_symbol INTO GV_RENO1 GV_RENO2 GV_RENO3 GV_RENO4 GV_RENO5.
CONCATENATE GV_RENO1 GV_RENO2 GV_RENO3 GV_RENO4 GV_RENO5 INTO GV_RESGUID.
GW_LOG-RESPONSE_MESSAGE_ID = GV_RESGUID.
CALL METHOD fault->get_text
RECEIVING
result = GW_LOG-ERROR_TEXT.
INSERT INTO ZPROXY_ERROR_LOG VALUES GW_LOG.
COMMIT WORK.
ENDTRY.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PRINT_GT_OUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRINT_GT_OUT .
PERFORM PREPARE_FOR_ALV.
PERFORM DISPLAY_BY_ALV.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM PREPARE_FOR_ALV
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM PREPARE_FOR_ALV .
W_REPID = SY-REPID.
W_SAVE = 'A'.
PERFORM FIELDCAT_INIT .
PERFORM EVENTTAB_BUILD .
PERFORM COMMENT_BUILD.
PERFORM T_SORT_BUILD .
PERFORM LAYOUT_BUILD .
ENDFORM. " PREPARE_FOR_ALV
*&---------------------------------------------------------------------*
*& Form FIELDCAT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_I_FIELDCAT text
*----------------------------------------------------------------------*
FORM fieldcat_init .
DATA : LV_COUNT TYPE I.
CLEAR : LV_COUNT.
REFRESH GT_FC.
CLEAR GT_FC.
CLEAR GW_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'KUNNR'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '客户号'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'KKBER'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '信控范围'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'NAME1'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '名称'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'LAND1'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '国家'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'CHANNEL'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '内外销'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'AFFILIATE'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '关联企业'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'COLLATERAL'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '抵押額度'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'INSURANCE'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '保險額度'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'OFFICIAL'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '信用額度'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'CAD'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = 'CAD'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'TEMPORARY'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '暫放額度'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'OVERDUE15'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '逾期15'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'OVERDUE30'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '逾期30'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'OVERDUE44'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '逾期44'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'OVERDUE60'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '逾期60'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'OVERDUE'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '逾期大于60'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'NOTDUE'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '未到期'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'TOTAL'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '放帳餘額'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
LV_COUNT = LV_COUNT + 1 .
CLEAR GW_FC.
GW_FC-TABNAME = 'GT_OUT'.
GW_FC-FIELDNAME = 'TISTYPE'.
GW_FC-COL_POS = LV_COUNT.
GW_FC-KEY = ''.
GW_FC-NO_MERGING = 'X'.
GW_FC-SCRTEXT_L = '保險公司'.
GW_FC-OUTPUTLEN = 20.
GW_FC-EDIT = ''.
APPEND GW_FC TO GT_FC.
ENDFORM. " FIELDCAT_INIT
*&---------------------------------------------------------------------*
*& Form EVENTTAB_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_I_EVENTS text
*----------------------------------------------------------------------*
FORM EVENTTAB_BUILD .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_EVENTS[].
GW_EVENTS-NAME = 'TOP_OF_PAGE'.
GW_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND GW_EVENTS TO GT_EVENTS.
ENDFORM. " EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*& FORM COMMENT_BUILD
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM COMMENT_BUILD .
ENDFORM. " COMMENT_BUILD
*&---------------------------------------------------------------------*
*& FORM T_SORT_BUILD
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* -->P_I_SORT TEXT
*----------------------------------------------------------------------*
FORM T_SORT_BUILD .
WA_SORT_LVC-SPOS = 1 . " 排序顺序
WA_SORT_LVC-FIELDNAME = 'KUNNR' . " 排序字段
WA_SORT_LVC-UP = 'X' . " 升序
APPEND WA_SORT_LVC TO GT_SORT_LVC .
CLEAR WA_SORT_LVC .
ENDFORM. " T_SORT_BUILD
*&---------------------------------------------------------------------*
*& FORM LAYOUT_BUILD
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* -->P_I_LAYOUT TEXT
*----------------------------------------------------------------------*
FORM LAYOUT_BUILD .
CLEAR: I_LAYOUT."它用来定义ALV报表的整体属性
I_LAYOUT-CWIDTH_OPT = 'X'."优化列宽选项是否设置
I_LAYOUT-ZEBRA = 'X'.
* I_LAYOUT-EDIT = 'X'. "将整个ALV设置成可编辑
ENDFORM. " LAYOUT_BUILD
*&---------------------------------------------------------------------*
*& FORM DISPLAY_BY_ALV
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* --> P1 TEXT
* <-- P2 TEXT
*----------------------------------------------------------------------*
FORM DISPLAY_BY_ALV .
DATA: I_GRID_TITLE TYPE LVC_TITLE .
DATA: I_GRID_SETTINGS TYPE LVC_S_GLAY.
W_SAVE = 'A'.
I_GRID_SETTINGS-EDT_CLL_CB = 'X'.
I_GRID_TITLE = '小标题 '.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
IS_LAYOUT_LVC = I_LAYOUT
IT_FIELDCAT_LVC = GT_FC
I_SAVE = W_SAVE
IT_SORT_LVC = GT_SORT_LVC
I_GRID_SETTINGS = I_GRID_SETTINGS
IT_EVENTS = GT_EVENTS
* I_GRID_TITLE = I_GRID_TITLE
TABLES
T_OUTTAB = GT_OUT.
ENDFORM. " DISPLAY_BY_ALV
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE .
DATA: LS_LINE TYPE SLIS_LISTHEADER.
REFRESH I_TOP_OF_PAGE.
CLEAR LS_LINE .
LS_LINE-TYP = 'H'.
LS_LINE-INFO = 'ALV'.
APPEND LS_LINE TO I_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'ENJOYSAP_LOGO'
IT_LIST_COMMENTARY = I_TOP_OF_PAGE.
ENDFORM. "TOP_OF_PAGE
*---------------------------------------------------------------------*
* FORM SET_PF_STATUS *
*---------------------------------------------------------------------*
FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.
ENDFORM. "SET_PF_STATUS
sap alv REUSE_ALV_GRID_DISPLAY_LVC
于 2022-01-19 13:55:06 首次发布