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

Multiple OO ALV Container - Background Execution

Former Member
0 Likes
887

Hi,

I am using OO ALV to display multiple container in screen. In foreground, program works perfectly file but in background only the first container gets displayed in spool but second doesn't.

Can some one please suggest the possible reason.

I have already tried below option ...

IF CL_GUI_ALV_GRID=>OFFLINE( ) IS INITIAL.

  • Run in foreground

CREATE OBJECT R_CONTROL EXPORTING CONTAINER_NAME = 'CONTAINER_1'.

CREATE OBJECT R_GRID EXPORTING I_PARENT = R_CONTROL.

ELSE.

  • Run in background

CREATE OBJECT R_GRID EXPORTING I_PARENT = G_DOCK.

ENDIF.

Thanks,

Vimal

1 ACCEPTED SOLUTION
Read only

p291102
Active Contributor
0 Likes
504

HI,

Following report is the sample report for OOPS lav report.

REPORT ZSPD_ALV_OOPS .

TABLES : EKKO,EKPO,MAKT.

DATA : BEGIN OF IEKKO OCCURS 0,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BEDAT LIKE EKKO-BEDAT,

END OF IEKKO.

DATA : BEGIN OF IEKPO OCCURS 0,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

END OF IEKPO.

DATA : BEGIN OF IMAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

MAKTX LIKE MAKT-MAKTX,

END OF IMAKT.

DATA : BEGIN OF IFINAL OCCURS 0,

EBELN LIKE EKKO-EBELN,

EBELP LIKE EKPO-EBELP,

AEDAT LIKE EKKO-AEDAT,

BEDAT LIKE EKKO-BEDAT,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MAKTX LIKE MAKT-MAKTX,

END OF IFINAL.

*DATA : IFINALFUL LIKE STANDARD TABLE OF

DATA : OKCODE LIKE SY-UCOMM,

CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

GRID TYPE REF TO CL_GUI_ALV_GRID.

DATA : IFIELDCAT TYPE LVC_T_FCAT,

WFIELDCAT TYPE LVC_S_FCAT,

ILAYOUT TYPE LVC_S_LAYO,

ISORT TYPE LVC_T_SORT,

WSORT TYPE LVC_S_SORT.

SELECT-OPTIONS : S_AEDAT FOR EKKO-AEDAT.

START-OF-SELECTION.

PERFORM FILL_EKKO.

PERFORM FILL_EKPO.

PERFORM FILL_MAKT.

PERFORM BUILD_FINALTAB.

PERFORM BUILD_FIELDCAT.

PERFORM BUILD_SORT.

CALL SCREEN 100.

&----


*& Form fill_ekko

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_EKKO .

SELECT EBELN AEDAT BEDAT INTO TABLE IEKKO FROM EKKO WHERE AEDAT IN S_AEDAT.

ENDFORM. " fill_ekko

&----


*& Form fill_ekpo

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_EKPO .

IF NOT IEKKO[] IS INITIAL.

SELECT EBELN EBELP MATNR MENGE INTO TABLE IEKPO FROM EKPO FOR ALL ENTRIES IN IEKKO

WHERE EBELN = IEKKO-EBELN.

ENDIF.

ENDFORM. " fill_ekpo

&----


*& Form fill_makt

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_MAKT .

IF NOT IEKPO[] IS INITIAL.

SELECT MATNR MAKTX FROM MAKT INTO TABLE IMAKT FOR ALL ENTRIES IN IEKPO WHERE

MATNR = IEKPO-MATNR.

ENDIF.

ENDFORM. " fill_makt

&----


*& Form BUILD_FINALTAB

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FINALTAB .

LOOP AT IEKPO.

IFINAL-MATNR = IEKPO-MATNR.

IFINAL-MENGE = IEKPO-MENGE.

IFINAL-EBELP = IEKPO-EBELP.

IFINAL-EBELN = IEKPO-EBELN.

READ TABLE IEKKO WITH KEY EBELN = IEKPO-EBELN.

IF SY-SUBRC = 0.

IFINAL-AEDAT = IEKKO-AEDAT.

IFINAL-BEDAT = IEKKO-BEDAT.

ENDIF.

READ TABLE IMAKT WITH KEY MATNR = IEKPO-MATNR.

IF SY-SUBRC = 0.

IFINAL-MAKTX = IMAKT-MAKTX.

ENDIF.

APPEND IFINAL.

CLEAR : IFINAL,IEKKO,IMAKT,IEKPO.

ENDLOOP.

ENDFORM. " BUILD_FINALTAB

&----


*& Form BUILD_FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FIELDCAT .

WFIELDCAT-FIELDNAME = 'EBELN'.

WFIELDCAT-COL_POS = 1.

WFIELDCAT-OUTPUTLEN = 10.

WFIELDCAT-COLTEXT = 'Document No'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'EBELP'.

WFIELDCAT-COL_POS = 2.

WFIELDCAT-OUTPUTLEN = 7.

WFIELDCAT-COLTEXT = 'Item No'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'AEDAT'.

WFIELDCAT-COL_POS = 3.

WFIELDCAT-OUTPUTLEN = 10.

WFIELDCAT-COLTEXT = 'Creatn dat'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'BEDAT'.

WFIELDCAT-COL_POS = 4.

WFIELDCAT-OUTPUTLEN = 10.

WFIELDCAT-COLTEXT = 'Delv dat'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MATNR'.

WFIELDCAT-COL_POS = 5.

WFIELDCAT-OUTPUTLEN = 18.

WFIELDCAT-COLTEXT = 'Material no'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MAKTX'.

WFIELDCAT-COL_POS = 6.

WFIELDCAT-OUTPUTLEN = 15.

WFIELDCAT-COLTEXT = 'Material desc.'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MENGE'.

WFIELDCAT-COL_POS = 7.

WFIELDCAT-OUTPUTLEN = 15.

WFIELDCAT-COLTEXT = 'Quantity'.

WFIELDCAT-DO_SUM = 'X'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

ENDFORM. " BUILD_FIELDCAT

&----


*& Form BUILD_SORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_SORT .

WSORT-FIELDNAME = 'EBELN'.

WSORT-SPOS = 1.

WSORT-UP = 'X'.

WSORT-GROUP = 'UL'.

WSORT-SUBTOT = 'X'.

APPEND WSORT TO ISORT.

ENDFORM. " BUILD_SORT

&----


*& Module PBO OUTPUT

&----


  • text

----


MODULE PBO OUTPUT.

SET PF-STATUS 'ZSPD'.

CREATE OBJECT CONTAINER

EXPORTING

  • PARENT =

CONTAINER_NAME = 'CONTAINER'

  • STYLE =

  • LIFETIME = lifetime_default

  • REPID =

  • DYNNR =

  • NO_AUTODEF_PROGID_DYNNR =

EXCEPTIONS

CNTL_ERROR = 1

CNTL_SYSTEM_ERROR = 2

CREATE_ERROR = 3

LIFETIME_ERROR = 4

LIFETIME_DYNPRO_DYNPRO_LINK = 5

others = 6

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CREATE OBJECT GRID

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

I_PARENT = CONTAINER

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

EXCEPTIONS

ERROR_CNTL_CREATE = 1

ERROR_CNTL_INIT = 2

ERROR_CNTL_LINK = 3

ERROR_DP_CREATE = 4

others = 5

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY

  • EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

  • IS_LAYOUT =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

IT_OUTTAB = IFINAL[]

IT_FIELDCATALOG = IFIELDCAT

IT_SORT = ISORT

  • IT_FILTER =

EXCEPTIONS

INVALID_PARAMETER_COMBINATION = 1

PROGRAM_ERROR = 2

TOO_MANY_LINES = 3

others = 4

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDMODULE. " PBO OUTPUT

&----


*& Module PAI INPUT

&----


  • text

----


MODULE PAI INPUT.

CASE OKCODE.

WHEN 'BACK' OR 'EXIT'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " PAI INPUT

Thanks,

Sankar M

2 REPLIES 2
Read only

Former Member
0 Likes
504

Hi VN,

I also had this problem. I overcome by putting a check on objects being created. In batch mode GUI objects cannot be created.

Check sy-binpt is initial.

create object dock_container ....

I hope this helps.

Thanks and Best Regards,

Dinesh.

Read only

p291102
Active Contributor
0 Likes
505

HI,

Following report is the sample report for OOPS lav report.

REPORT ZSPD_ALV_OOPS .

TABLES : EKKO,EKPO,MAKT.

DATA : BEGIN OF IEKKO OCCURS 0,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BEDAT LIKE EKKO-BEDAT,

END OF IEKKO.

DATA : BEGIN OF IEKPO OCCURS 0,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

END OF IEKPO.

DATA : BEGIN OF IMAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

MAKTX LIKE MAKT-MAKTX,

END OF IMAKT.

DATA : BEGIN OF IFINAL OCCURS 0,

EBELN LIKE EKKO-EBELN,

EBELP LIKE EKPO-EBELP,

AEDAT LIKE EKKO-AEDAT,

BEDAT LIKE EKKO-BEDAT,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MAKTX LIKE MAKT-MAKTX,

END OF IFINAL.

*DATA : IFINALFUL LIKE STANDARD TABLE OF

DATA : OKCODE LIKE SY-UCOMM,

CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

GRID TYPE REF TO CL_GUI_ALV_GRID.

DATA : IFIELDCAT TYPE LVC_T_FCAT,

WFIELDCAT TYPE LVC_S_FCAT,

ILAYOUT TYPE LVC_S_LAYO,

ISORT TYPE LVC_T_SORT,

WSORT TYPE LVC_S_SORT.

SELECT-OPTIONS : S_AEDAT FOR EKKO-AEDAT.

START-OF-SELECTION.

PERFORM FILL_EKKO.

PERFORM FILL_EKPO.

PERFORM FILL_MAKT.

PERFORM BUILD_FINALTAB.

PERFORM BUILD_FIELDCAT.

PERFORM BUILD_SORT.

CALL SCREEN 100.

&----


*& Form fill_ekko

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_EKKO .

SELECT EBELN AEDAT BEDAT INTO TABLE IEKKO FROM EKKO WHERE AEDAT IN S_AEDAT.

ENDFORM. " fill_ekko

&----


*& Form fill_ekpo

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_EKPO .

IF NOT IEKKO[] IS INITIAL.

SELECT EBELN EBELP MATNR MENGE INTO TABLE IEKPO FROM EKPO FOR ALL ENTRIES IN IEKKO

WHERE EBELN = IEKKO-EBELN.

ENDIF.

ENDFORM. " fill_ekpo

&----


*& Form fill_makt

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_MAKT .

IF NOT IEKPO[] IS INITIAL.

SELECT MATNR MAKTX FROM MAKT INTO TABLE IMAKT FOR ALL ENTRIES IN IEKPO WHERE

MATNR = IEKPO-MATNR.

ENDIF.

ENDFORM. " fill_makt

&----


*& Form BUILD_FINALTAB

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FINALTAB .

LOOP AT IEKPO.

IFINAL-MATNR = IEKPO-MATNR.

IFINAL-MENGE = IEKPO-MENGE.

IFINAL-EBELP = IEKPO-EBELP.

IFINAL-EBELN = IEKPO-EBELN.

READ TABLE IEKKO WITH KEY EBELN = IEKPO-EBELN.

IF SY-SUBRC = 0.

IFINAL-AEDAT = IEKKO-AEDAT.

IFINAL-BEDAT = IEKKO-BEDAT.

ENDIF.

READ TABLE IMAKT WITH KEY MATNR = IEKPO-MATNR.

IF SY-SUBRC = 0.

IFINAL-MAKTX = IMAKT-MAKTX.

ENDIF.

APPEND IFINAL.

CLEAR : IFINAL,IEKKO,IMAKT,IEKPO.

ENDLOOP.

ENDFORM. " BUILD_FINALTAB

&----


*& Form BUILD_FIELDCAT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FIELDCAT .

WFIELDCAT-FIELDNAME = 'EBELN'.

WFIELDCAT-COL_POS = 1.

WFIELDCAT-OUTPUTLEN = 10.

WFIELDCAT-COLTEXT = 'Document No'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'EBELP'.

WFIELDCAT-COL_POS = 2.

WFIELDCAT-OUTPUTLEN = 7.

WFIELDCAT-COLTEXT = 'Item No'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'AEDAT'.

WFIELDCAT-COL_POS = 3.

WFIELDCAT-OUTPUTLEN = 10.

WFIELDCAT-COLTEXT = 'Creatn dat'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'BEDAT'.

WFIELDCAT-COL_POS = 4.

WFIELDCAT-OUTPUTLEN = 10.

WFIELDCAT-COLTEXT = 'Delv dat'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MATNR'.

WFIELDCAT-COL_POS = 5.

WFIELDCAT-OUTPUTLEN = 18.

WFIELDCAT-COLTEXT = 'Material no'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MAKTX'.

WFIELDCAT-COL_POS = 6.

WFIELDCAT-OUTPUTLEN = 15.

WFIELDCAT-COLTEXT = 'Material desc.'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

WFIELDCAT-FIELDNAME = 'MENGE'.

WFIELDCAT-COL_POS = 7.

WFIELDCAT-OUTPUTLEN = 15.

WFIELDCAT-COLTEXT = 'Quantity'.

WFIELDCAT-DO_SUM = 'X'.

APPEND WFIELDCAT TO IFIELDCAT.

CLEAR WFIELDCAT.

ENDFORM. " BUILD_FIELDCAT

&----


*& Form BUILD_SORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_SORT .

WSORT-FIELDNAME = 'EBELN'.

WSORT-SPOS = 1.

WSORT-UP = 'X'.

WSORT-GROUP = 'UL'.

WSORT-SUBTOT = 'X'.

APPEND WSORT TO ISORT.

ENDFORM. " BUILD_SORT

&----


*& Module PBO OUTPUT

&----


  • text

----


MODULE PBO OUTPUT.

SET PF-STATUS 'ZSPD'.

CREATE OBJECT CONTAINER

EXPORTING

  • PARENT =

CONTAINER_NAME = 'CONTAINER'

  • STYLE =

  • LIFETIME = lifetime_default

  • REPID =

  • DYNNR =

  • NO_AUTODEF_PROGID_DYNNR =

EXCEPTIONS

CNTL_ERROR = 1

CNTL_SYSTEM_ERROR = 2

CREATE_ERROR = 3

LIFETIME_ERROR = 4

LIFETIME_DYNPRO_DYNPRO_LINK = 5

others = 6

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CREATE OBJECT GRID

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

I_PARENT = CONTAINER

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

EXCEPTIONS

ERROR_CNTL_CREATE = 1

ERROR_CNTL_INIT = 2

ERROR_CNTL_LINK = 3

ERROR_DP_CREATE = 4

others = 5

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY

  • EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

  • IS_LAYOUT =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

IT_OUTTAB = IFINAL[]

IT_FIELDCATALOG = IFIELDCAT

IT_SORT = ISORT

  • IT_FILTER =

EXCEPTIONS

INVALID_PARAMETER_COMBINATION = 1

PROGRAM_ERROR = 2

TOO_MANY_LINES = 3

others = 4

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDMODULE. " PBO OUTPUT

&----


*& Module PAI INPUT

&----


  • text

----


MODULE PAI INPUT.

CASE OKCODE.

WHEN 'BACK' OR 'EXIT'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " PAI INPUT

Thanks,

Sankar M