sap alv REUSE_ALV_GRID_DISPLAY_LVC

************************************************************************
* 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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值