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