Skip to Content
0
Former Member
Dec 08, 2006 at 10:37 AM

Alv cell coloring

70 Views

At the following code , i want to color the cell the 'BNFPO' field when it has a certain value .

HOw can i do this ?

Please help ....

&----


*& Report YDP_AGOR

*&

&----


*&

*&

&----


REPORT YDP_AGOR.

**************SECOND ALV ***********************

DEFINE M_FIELDCAT.

ADD 1 TO LS_FIELDCAT-COL_POS.

LS_FIELDCAT-FIELDNAME = &1.

LS_FIELDCAT-REF_TABNAME = &2.

APPEND LS_FIELDCAT TO LT_FIELDCAT.

END-OF-DEFINITION.

*************************************************

TABLES: NAST,

TNAPR,

SRGBTBREL,

T685T,

************************

EBAN,

************************

SSCRFIELDS,

SMP_DYNTXT,

COSEL,

SOOD,

DD04T,

YOUTPUT_APPL.

DATA: SFLG TYPE C.

DATA: MARK.

DATA: BEGIN OF ITAB OCCURS 0,

BANFN LIKE EBAN-BANFN,

BNFPO LIKE EBAN-BNFPO,

EKGRP LIKE EBAN-EKGRP,

AFNAM LIKE EBAN-AFNAM,

MATNR LIKE EBAN-MATNR,

TXZ01 LIKE EBAN-TXZ01,

STATU LIKE EBAN-STATU,

KNTTP LIKE EBAN-KNTTP,

MATKL LIKE EBAN-MATKL,

WERKS LIKE EBAN-WERKS,

MENGE LIKE EBAN-MENGE,

DISPO LIKE EBAN-DISPO,

LFDAT LIKE EBAN-LFDAT,

FRGST LIKE EBAN-FRGST,

LIFNR LIKE EBAN-LIFNR,

STATUS(5) TYPE C,

SEL,

END OF ITAB.

DATA : I0 TYPE I.

DATA : TEXT2(102) TYPE C.

DATA : WS_OBJDES(60) TYPE C.

DATA: I TYPE I.

  • PUBLISH OUR DATA FOR THE SUBMIT *********

DATA: INT TYPE I,

RSPAR TYPE TABLE OF RSPARAMS,

WA_RSPAR LIKE LINE OF RSPAR.

RANGES SELTAB FOR INT.

************************************************

DATA BEGIN OF TLINES OCCURS 0.

INCLUDE STRUCTURE TLINE.

DATA END OF TLINES.

DATA : BEGIN OF IDELIV OCCURS 0,

VBELN LIKE LIKP-VBELN,

END OF IDELIV.

DATA : WTAB LIKE ITAB.

DATA : BEGIN OF IERR OCCURS 0,

ERROR(80),

END OF IERR.

DATA : BEGIN OF ERRORS OCCURS 0,

TEXT(80),

END OF ERRORS.

DATA : S_PAGNO LIKE SY-PAGNO,

G_SELECT LIKE RSPARAMS OCCURS 0 WITH HEADER LINE,

G_INFO LIKE RSEL_INFO OCCURS 0 WITH HEADER LINE,

W_CHOSEN,

G_REPID LIKE RSVAR-REPORT,

C_PAGNO LIKE SY-PAGNO,

XVBRP LIKE VBRP,

P_ATTACH,

X_ULINE(160).

DATA: P_MOD(1) .

DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

*-- ALV DATA

TYPE-POOLS: SLIS,

SSCR,

RSDS,

ICON.

  • color management.

DATA : wa_color TYPE lvc_s_scol.

  • Internal table for color management.

DATA : it_color TYPE TABLE OF lvc_s_scol.

DATA: COL_POS TYPE I,

  • go_grid TYPE REF TO cl_gui_alv_grid,

W_OBJDES LIKE SOOD-OBJDES,

S_VTEXT LIKE T685T-VTEXT,

FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT_LN LIKE LINE OF FIELDCAT,

SORTCAT TYPE SLIS_T_SORTINFO_ALV,

SORTCAT_LN LIKE LINE OF SORTCAT,

EVENTCAT TYPE SLIS_T_EVENT,

LAYOUT TYPE SLIS_LAYOUT_ALV,

EVENTCAT_LN LIKE LINE OF EVENTCAT ,

HEADING TYPE SLIS_T_LISTHEADER ,

GT_INDEX LIKE SY-TABIX,

GT_LINES LIKE SY-TABIX,

G_VARIANT LIKE DISVARIANT ,

GX_VARIANT LIKE DISVARIANT ,

DISPLAY_MODE,

CNAME LIKE USR41-TERMINAL ,

G_SAVE(1) TYPE C, G_EXIT(1) TYPE C,

NEXTLINE LIKE SY-TABIX VALUE 1,

GTITLE(100) TYPE C,

OK_CODE LIKE RSMPE-FUNC,

OKCODE LIKE RSMPE-FUNC,

LISTHEADER TYPE SLIS_T_LISTHEADER,

LISTHEADER_LN LIKE LINE OF LISTHEADER.

DATA:

GO_GRID TYPE REF TO CL_GUI_ALV_GRID.

----


  • Constants *

----


CONSTANTS: CON_DYN_ICON LIKE SMP_DYNTXT-ICON_ID VALUE '@7Z@',

CON_NO_ERROR LIKE SY-SUBRC VALUE 0,

CON_ZERO_POS LIKE KBLP-BLPOS VALUE 0.

*******************REF************************************

CONSTANTS: C_PF_STATUS1 TYPE SLIS_FORMNAME VALUE 'ZHR_MED',

C_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.

**************************************************************

----


  • SELECTION SCREEN DECLARATION *

----


SELECTION-SCREEN SKIP.

SELECT-OPTIONS: S_BANFN FOR EBAN-BANFN.

SELECTION-SCREEN SKIP.

SELECT-OPTIONS: S_EKGRP FOR EBAN-EKGRP.

SELECT-OPTIONS: S_LFDAT FOR EBAN-LFDAT.

SELECT-OPTIONS: S_MATKL FOR EBAN-MATKL,

S_DISPO FOR EBAN-DISPO,

S_PLANT FOR EBAN-WERKS.

SELECTION-SCREEN SKIP.

SELECT-OPTIONS: S_FRGKZ FOR EBAN-FRGKZ DEFAULT '2'.

SELECTION-SCREEN BEGIN OF SCREEN 0002 AS WINDOW TITLE TEXT-I02.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-B03.

PARAMETERS:P_EKGRP LIKE EBAN-EKGRP.

SELECTION-SCREEN END OF BLOCK B3.

SELECTION-SCREEN END OF SCREEN 0002.

*----


main

----


  • EVENTS AT SELECTION SCREEN *

----


INITIALIZATION.

----


  • START OF SELECTION *

----


START-OF-SELECTION.

CLEAR : ITAB[], ITAB.

PERFORM GET_DATA.

END-OF-SELECTION.

CHECK NOT ITAB[] IS INITIAL.

DO.

PERFORM DISPLAY_DATA.

IF DISPLAY_MODE = ' '.

EXIT.

ELSE.

DISPLAY_MODE = ' '.

ENDIF.

ENDDO.

----


  • Form Get_Actual *

----


FORM GET_DATA.

REFRESH ITAB.

SELECT * FROM EBAN WHERE BANFN IN S_BANFN AND

EKGRP IN S_EKGRP AND

MATKL IN S_MATKL AND

WERKS IN S_PLANT AND

FRGKZ IN S_FRGKZ AND

EBAKZ = ' ' AND

STATU <> 'B' AND

LOEKZ = ' ' AND

DISPO IN S_DISPO AND

LFDAT IN S_LFDAT .

CLEAR ITAB.

MOVE EBAN-BANFN TO ITAB-BANFN.

MOVE EBAN-BNFPO TO ITAB-BNFPO.

MOVE EBAN-EKGRP TO ITAB-EKGRP.

MOVE EBAN-AFNAM TO ITAB-AFNAM.

MOVE EBAN-TXZ01 TO ITAB-TXZ01.

MOVE EBAN-MATNR TO ITAB-MATNR.

MOVE EBAN-STATU TO ITAB-STATU.

MOVE EBAN-KNTTP TO ITAB-KNTTP.

MOVE EBAN-MATKL TO ITAB-MATKL.

MOVE EBAN-WERKS TO ITAB-WERKS.

MOVE EBAN-MENGE TO ITAB-MENGE.

MOVE EBAN-LFDAT TO ITAB-LFDAT.

MOVE EBAN-FRGST TO ITAB-FRGST.

MOVE EBAN-DISPO TO ITAB-DISPO.

MOVE EBAN-LIFNR TO ITAB-LIFNR.

IF SY-DATUM > ITAB-LFDAT.

MOVE 'OK' TO ITAB-STATUS.

ELSE.

MOVE 'FALSE' TO ITAB-STATUS.

ENDIF.

APPEND ITAB.

ENDSELECT.

ENDFORM. " get_actual

************************************************************************

************************************************************************

************************************************************************

----


  • FORM display_data *

----


FORM DISPLAY_DATA.

DATA : NA(1) VALUE SPACE .

DATA: N_OUT TYPE P.

DATA : C_YEAR(2) TYPE N,

P_YEAR(2) TYPE N,

H_YEAR(4) TYPE N.

SORT ITAB.

  • ref_tabname ref_fieldname tabname fieldname

  • EXAMPLE ****************************

  • PERFORM ALV_BUILD_FIELDCAT USING '1 ' '2 ' '3 ' '4 '

  • '5' '6' '7' 8 9 10 11 12 13 14 15 16 17(Cxxx)

  • ***************************************************************

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'DISPO' 'ITAB' 'DISPO'

    NA TEXT-004 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'BANFN' 'ITAB' 'BANFN'

    'X' TEXT-005 'X' NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'BNFPO' 'ITAB' 'BNFPO'

    NA TEXT-007 NA NA NA NA NA NA NA NA NA NA NA .

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'EKGRP' 'ITAB' 'EKGRP'

    NA TEXT-008 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'AFNAM' 'ITAB' 'AFNAM'

    NA TEXT-009 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'MATNR' 'ITAB' 'MATNR'

    NA TEXT-010 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'TXZ01' 'ITAB' 'TXZ01'

    NA TEXT-011 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'STATU' 'ITAB' 'STATU'

    NA TEXT-012 NA NA NA NA NA NA NA NA NA NA 'C611'.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'KNTTP' 'ITAB' 'KNTTP'

    NA TEXT-013 NA NA NA NA NA NA NA NA NA NA 'C710'.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'MATKL' 'ITAB' 'MATKL'

    NA TEXT-014 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'WERKS' 'ITAB' 'WERKS'

    NA TEXT-015 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'LFDAT' 'ITAB' 'LFDAT'

    NA TEXT-006 NA NA NA NA NA NA NA NA NA NA NA .

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'MENGE' 'ITAB' 'MENGE'

    NA TEXT-016 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'FRGST' 'ITAB' 'FRGST'

    NA TEXT-017 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'EBAN' 'LIFNR' 'ITAB' 'LIFNR'

    NA TEXT-018 NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_BUILD_FIELDCAT USING 'ITAB' 'STATUS' 'ITAB' 'STATUS'

    NA 'Status' NA NA NA NA NA NA NA NA NA NA NA.

    PERFORM ALV_SORT USING '1' 'BANFN' 'X' ' ' 'X'.

    • PERFORM ALV_SORT USING '2' 'KUNNR' 'X' ' ' 'X'.

    • PERFORM ALV_SORT USING '3' 'NAME1' 'X' ' ' 'X'.

    • PERFORM ALV_SORT USING '4' 'ZTERM' 'X' ' ' 'X'.

    • PERFORM ALV_SORT USING '5' 'INCO1' 'X' ' ' 'X'.

    • PERFORM ALV_SORT USING '6' 'WADAT_IST' 'X' ' ' 'X'.

    • PERFORM ALV_SORT USING '7' 'OBJDES' 'X' ' ' 'X'.

    • PERFORM ALV_SORT USING '8' 'ICON1' 'X' ' ' 'X'.

    • PERFORM ALV_SORT USING '8' 'MRNKZ' 'X' ' ' 'X'.

    PERFORM ALV_BUILD_LAYOUT USING LAYOUT.

    PERFORM ALV_BUILD_EVENT_CATALOG.

    PERFORM ALV_START_VIEWER.

    ENDFORM. " extra_function

    ----


    • FORM alv_build_event_catalog *

    ----


    FORM ALV_BUILD_EVENT_CATALOG.

    CLEAR EVENTCAT_LN.

    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

    EXPORTING

    I_LIST_TYPE = 0

    IMPORTING

    ET_EVENTS = EVENTCAT.

    • TOP-OF-PAGE

    READ TABLE EVENTCAT WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

    INTO EVENTCAT_LN.

    IF SY-SUBRC = 0.

    MOVE 'TOP_OF_PAGE' TO EVENTCAT_LN-FORM.

    APPEND EVENTCAT_LN TO EVENTCAT.

    ENDIF.

    • SET_PF_STATUS

    READ TABLE EVENTCAT WITH KEY NAME = SLIS_EV_PF_STATUS_SET

    INTO EVENTCAT_LN.

    IF SY-SUBRC = 0.

    MOVE 'SET_PF_STATUS' TO EVENTCAT_LN-FORM.

    APPEND EVENTCAT_LN TO EVENTCAT.

    ENDIF.

    • AT_USER_COMMAND

    READ TABLE EVENTCAT WITH KEY NAME = SLIS_EV_USER_COMMAND

    INTO EVENTCAT_LN.

    IF SY-SUBRC = 0.

    MOVE 'AT_USER_COMMAND' TO EVENTCAT_LN-FORM.

    APPEND EVENTCAT_LN TO EVENTCAT.

    ENDIF.

    ENDFORM. " build_event_catalog

    ----


    • FORM top_of_page *

    ----


    FORM TOP_OF_PAGE.

    CLEAR: LISTHEADER_LN, LISTHEADER[].

    CLEAR: LISTHEADER_LN.

    LISTHEADER_LN-TYP = 'H'.

    LISTHEADER_LN-INFO = SY-TITLE.

    APPEND LISTHEADER_LN TO LISTHEADER.

    CLEAR: LISTHEADER_LN.

    LISTHEADER_LN-TYP = 'S'.

    LISTHEADER_LN-KEY = TEXT-002.

    CONCATENATE SY-DATUM6(2) '.' SY-DATUM4(2) '.' SY-DATUM+0(4) INTO LISTHEADER_LN-INFO.

    APPEND LISTHEADER_LN TO LISTHEADER.

    CLEAR: LISTHEADER_LN.

    LISTHEADER_LN-TYP = 'S'.

    LISTHEADER_LN-KEY = TEXT-003.

    LISTHEADER_LN-INFO = SY-UNAME.

    APPEND LISTHEADER_LN TO LISTHEADER.

    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

    EXPORTING

    IT_LIST_COMMENTARY = LISTHEADER

    I_LOGO = 'HALCOR_IT'.

    ENDFORM. "top_of_page

    ----


    • FORM alv_build_fieldcat *

    ----


    FORM ALV_BUILD_FIELDCAT USING REF_TABNAME

    REF_FIELDNAME TABNAME FIELDNAME

    KEY FTEXT HOTSPOT OUTLEN

    ICON JUST DOSUM DECS NOZERO UOM

    INP CHK EMF.

    ADD 1 TO COL_POS.

    FIELDCAT_LN-REF_TABNAME = REF_TABNAME.

    FIELDCAT_LN-REF_FIELDNAME = REF_FIELDNAME.

    FIELDCAT_LN-TABNAME = TABNAME.

    FIELDCAT_LN-FIELDNAME = FIELDNAME.

    FIELDCAT_LN-KEY = KEY.

    FIELDCAT_LN-COL_POS = COL_POS.

    FIELDCAT_LN-NO_ZERO = NOZERO.

    FIELDCAT_LN-SELTEXT_L = FTEXT.

    FIELDCAT_LN-SELTEXT_M = FTEXT.

    FIELDCAT_LN-SELTEXT_S = FTEXT.

    FIELDCAT_LN-DDICTXT = 'L'. " (S)hort (M)iddle (L)ong

    FIELDCAT_LN-HOTSPOT = HOTSPOT.

    FIELDCAT_LN-QFIELDNAME = UOM.

    FIELDCAT_LN-OUTPUTLEN = OUTLEN.

    FIELDCAT_LN-ICON = ICON.

    FIELDCAT_LN-JUST = JUST.

    FIELDCAT_LN-DO_SUM = DOSUM.

    FIELDCAT_LN-CHECKBOX = CHK.

    FIELDCAT_LN-EMPHASIZE = EMF.

    IF NOT DECS = SPACE.

    FIELDCAT_LN-DECIMALS_OUT = DECS.

    ENDIF.

    APPEND FIELDCAT_LN TO FIELDCAT.

    ENDFORM. "alv_build_fieldcat

    ----


    • FORM alv_build_layout *

    ----


    FORM ALV_BUILD_LAYOUT USING E05_LS_LAYOUT TYPE SLIS_LAYOUT_ALV.

    E05_LS_LAYOUT-ZEBRA = 'X'.

    E05_LS_LAYOUT-NUMC_SUM = ' '. "x

    E05_LS_LAYOUT-DETAIL_POPUP = 'X'. "x

    E05_LS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

    E05_LS_LAYOUT-GET_SELINFOS = 'X'. "x

    E05_LS_LAYOUT-CONFIRMATION_PROMPT = SPACE.

    • E05_LS_LAYOUT-TOTALS_TEXT = TEXT-S01.

    • E05_LS_LAYOUT-SUBTOTALS_TEXT = TEXT-S02.

    E05_LS_LAYOUT-TOTALS_ONLY = ' '.

    E05_LS_LAYOUT-NO_KEYFIX = SPACE.

    E05_LS_LAYOUT-BOX_FIELDNAME = 'SEL'.

    E05_LS_LAYOUT-BOX_TABNAME = ITAB.

    ENDFORM. "alv_build_layout

    ----


    • FORM alv_start_viewer *

    ----


    FORM ALV_START_VIEWER.

    DATA: PGM LIKE SY-REPID.

    PGM = SY-REPID.

    GTITLE = PGM.

    G_VARIANT-REPORT = G_REPID.

    G_VARIANT-USERNAME = SY-UNAME.

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

    I_INTERFACE_CHECK = 'X'

    I_CALLBACK_PROGRAM = PGM

    I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

    I_CALLBACK_USER_COMMAND = 'AT_USER_COMMAND'

    IS_LAYOUT = LAYOUT

    IT_FIELDCAT = FIELDCAT

    IT_SORT = SORTCAT

    IS_VARIANT = G_VARIANT

    I_SAVE = 'A'

    IT_EVENTS = EVENTCAT[]

    TABLES

    T_OUTTAB = ITAB

    EXCEPTIONS

    PROGRAM_ERROR = 1

    OTHERS = 2.

    ENDFORM. "alv_start_viewer

    ----


    • FORM header_list *

    ----


    FORM ALV_HEADER_LIST USING P_TYP

    P_TXT1

    P_VAR1

    P_VAR2

    P_TXT2.

    DATA: W_TXT1(60), W_TXT2(50),W_TXT3(50), W_TXT4(50), W_TXT5(50).

    DATA: W_INFO LIKE LISTHEADER_LN-INFO.

    CLEAR: LISTHEADER_LN, W_INFO.

    • WRITE: P_TYP TO W_TXT1,

    • P_TXT1 TO W_TXT2,

    • P_VAR1 TO W_TXT3,

    • P_VAR2 TO W_TXT4,

    • P_TXT2 TO W_TXT5.

    CONCATENATE W_TXT2 W_TXT3 W_TXT5 W_TXT4 INTO W_INFO

    SEPARATED BY SPACE.

    LISTHEADER_LN-TYP = P_TYP.

    LISTHEADER_LN-INFO = W_INFO.

    APPEND LISTHEADER_LN TO LISTHEADER.

    ENDFORM. " HEADER_LIST

    ----


    • text

    ----


    FORM ALV_FCAT_MERGE USING P_TABNAME P_REPID.

    *

    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

    EXPORTING

    I_PROGRAM_NAME = P_REPID

    I_INTERNAL_TABNAME = P_TABNAME

    I_INCLNAME = P_REPID

    I_BYPASSING_BUFFER = 'X'

    I_BUFFER_ACTIVE = SPACE

    CHANGING

    CT_FIELDCAT = FIELDCAT

    EXCEPTIONS

    INCONSISTENT_INTERFACE = 1

    PROGRAM_ERROR = 2

    OTHERS = 3.

    IF SY-SUBRC <> 0.

    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    ENDFORM. " alv_fcat_merge

    ----


    • FORM alv_sort *

    ----


    FORM ALV_SORT USING SPOS

    FLDN

    LUP

    LDWN

    STOT.

    CLEAR SORTCAT_LN.

    SORTCAT_LN-SPOS = SPOS.

    SORTCAT_LN-FIELDNAME = FLDN.

    SORTCAT_LN-UP = LUP.

    SORTCAT_LN-DOWN = LDWN.

    SORTCAT_LN-SUBTOT = STOT.

    APPEND SORTCAT_LN TO SORTCAT.

    ENDFORM. " alv_sort

    ----


    • FORM SET_PF_STATUS *

    ----


    FORM SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

    FREE: RT_EXTAB .

    SET PF-STATUS 'ZST9' EXCLUDING RT_EXTAB .

    ENDFORM. "set_pf_status

    ----


    • Form AT_USER_COMMAND *

    ----


    FORM AT_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

    RS_SELFIELD TYPE SLIS_SELFIELD. "#EC CALLED

    DATA : ANS.

    DATA : LIN TYPE I,

    IS_OBJECT LIKE BORIDENT.

    CASE R_UCOMM.

    WHEN '&IC1'.

    CASE RS_SELFIELD-FIELDNAME .

    WHEN 'BANFN'.

    RS_SELFIELD-REFRESH = 'X'.

    SET PARAMETER ID 'BAN' FIELD RS_SELFIELD-VALUE.

    CALL TRANSACTION 'ME53N' AND SKIP FIRST SCREEN.

    WHEN OTHERS .

    ENDCASE. " RS_SELFIELD-FIELDNAME .

    ********************EVENTS IN BUTTONS ********************

    WHEN 'INSER'.

    CALL SELECTION-SCREEN 0002 STARTING AT 20 10.

    IF SY-SUBRC <> 0.

    STOP.

    ENDIF.

    IF P_EKGRP > 1.

    DO.

    CLEAR MARK.

    READ LINE SY-INDEX FIELD VALUE MARK.

    IF SY-SUBRC <> 0.

    EXIT.

    ENDIF.

    CHECK MARK <> SPACE.

    WRITE: / ITAB-BANFN, ITAB-BNFPO, P_EKGRP.

    PERFORM GENERATE_BDC_DATA.

    PERFORM CALL_TRANSACTION.

    REFRESH BDCDATA .

    MODIFY CURRENT LINE FIELD VALUE MARK FROM SPACE LINE FORMAT COLOR 7.

    ENDDO.

    ENDIF.

    CLEAR ITAB[].

    CLEAR ITAB.

    RS_SELFIELD-REFRESH = 'X'.

    PERFORM GET_DATA.

    ENDCASE.

    ENDFORM. "at_user_command

    ----


    • Form f4_for_variant *

    ----


    FORM F4_FOR_VARIANT.

    DATA G_EXIT.

    CLEAR G_VARIANT.

    G_VARIANT-REPORT = G_REPID.

    G_VARIANT-USERNAME = SY-UNAME.

    G_VARIANT-VARIANT = VARI.

    CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

    EXPORTING

    IS_VARIANT = G_VARIANT

    I_SAVE = 'A'

    IMPORTING

    E_EXIT = G_EXIT

    ES_VARIANT = GX_VARIANT

    EXCEPTIONS

    NOT_FOUND = 2.

    IF SY-SUBRC = 2.

    MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO

    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ELSE.

    IF G_EXIT = SPACE.

    VARI = GX_VARIANT-VARIANT.

    MOVE-CORRESPONDING GX_VARIANT TO G_VARIANT.

    ENDIF.

    ENDIF.

    ENDFORM. " f4_for_variant

    ----


    • Start new screen *

    ----


    FORM BDC_DYNPRO USING PROGRAM DYNPRO.

    CLEAR BDCDATA.

    BDCDATA-PROGRAM = PROGRAM.

    BDCDATA-DYNPRO = DYNPRO.

    BDCDATA-DYNBEGIN = 'X'.

    APPEND BDCDATA.

    ENDFORM. "bdc_dynpro

    ----


    • Insert field *

    ----


    FORM BDC_FIELD USING FNAM FVAL.

    CLEAR BDCDATA.

    BDCDATA-FNAM = FNAM.

    BDCDATA-FVAL = FVAL.

    APPEND BDCDATA.

    ENDFORM. "bdc_field

    &----


    *& Form GET_TEXT

    &----


    • text

    ----


    • -->P_TAB text

    • -->P_VBELN text

    • -->P_POSNR text

    • -->P_ID text

    ----


    FORM GET_TEXT USING P_TAB P_VBELN P_POSNR P_ID.

    DATA: NAME LIKE THEAD-TDNAME.

    DATA: OBJECT LIKE THEAD-TDOBJECT.

    CLEAR: NAME, OBJECT.

    CLEAR: TLINES, TLINES[].

    CONCATENATE P_VBELN P_POSNR INTO NAME.

    OBJECT = P_TAB.

    CALL FUNCTION 'READ_TEXT'

    EXPORTING

    ID = P_ID

    LANGUAGE = 'E'

    NAME = NAME

    OBJECT = P_TAB

    TABLES

    LINES = TLINES

    EXCEPTIONS

    ID = 1

    LANGUAGE = 2

    NAME = 3

    NOT_FOUND = 4

    OBJECT = 5

    REFERENCE_CHECK = 6

    WRONG_ACCESS_TO_ARCHIVE = 7

    OTHERS = 8.

    IF SY-SUBRC NE 0.

    CALL FUNCTION 'READ_TEXT'

    EXPORTING

    ID = P_ID

    LANGUAGE = 'G'

    NAME = NAME

    OBJECT = P_TAB

    TABLES

    LINES = TLINES

    EXCEPTIONS

    ID = 1

    LANGUAGE = 2

    NAME = 3

    NOT_FOUND = 4

    OBJECT = 5

    REFERENCE_CHECK = 6

    WRONG_ACCESS_TO_ARCHIVE = 7

    OTHERS = 8.

    ENDIF.

    ENDFORM. " GET_TEXT

    &----


    *& Form GENERATE_BDC_DATA

    &----


    FORM GENERATE_BDC_DATA.

    *--


    1ST SCREEN--


    PERFORM BDC_DYNPRO USING 'SAPMM06B' '0105'.

    PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

    PERFORM BDC_FIELD USING 'BDC_CURSOR' 'EBAN-BANFN'.

    PERFORM BDC_FIELD USING 'EBAN-BANFN' ITAB-BANFN.

    *--


    2ND SCREEN--


    PERFORM BDC_DYNPRO USING 'SAPMM06B' '0106'.

    PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.

    PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RM06B-BNFPO'.

    PERFORM BDC_FIELD USING 'RM06B-BNFPO' ITAB-BNFPO.

    PERFORM BDC_DYNPRO USING 'SAPMM06B' '0106'.

    PERFORM BDC_FIELD USING 'BDC_OKCODE' '=DETA'.

    PERFORM BDC_FIELD USING 'BDC_CURSOR' 'EBAN-KNTTP(01)'.

    PERFORM BDC_DYNPRO USING 'SAPMM06B' '0102'.

    PERFORM BDC_FIELD USING 'BDC_CURSOR' 'EBAN-EKGRP'.

    PERFORM BDC_FIELD USING 'EBAN-EKGRP' P_EKGRP.

    PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.

    ENDFORM. "GENERATE_BDC_DATA

    &----


    *& Form CALL_TRANSACTION

    &----


    FORM CALL_TRANSACTION.

    CALL TRANSACTION 'ME52'

    USING BDCDATA

    MODE 'E' "'A' 'E'

    UPDATE 'S'.

    ENDFORM. " CALL_TRANSACTION