Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Alv cell coloring

Former Member
0 Likes
581

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
511

Hi Dimitris ,

yes this can be done ,please checj the earlier post

Reagrds

Arun

Hi Dimitris ,

yes this can be done ,please checj the earlier post

Reagrds

Arun

1 REPLY 1
Read only

Former Member
0 Likes
512

Hi Dimitris ,

yes this can be done ,please checj the earlier post

Reagrds

Arun