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

Any sample program for interactive ALV using OO-ABAP

Former Member
0 Likes
2,205

Hi all

Any sample program for interactive ALV using OO-ABAP.

Thanks in advance.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,137

Search in SE38 with BALVEDIT* (Press F4).

Regards,

Ravi

6 REPLIES 6
Read only

Former Member
0 Likes
1,138

Search in SE38 with BALVEDIT* (Press F4).

Regards,

Ravi

Read only

Former Member
0 Likes
1,137

Hi,

Go thru this link.

Thanks

Sunil

Read only

Former Member
Read only

uwe_schieferstein
Active Contributor
0 Likes
1,137

Hello Reddy

I have posted several sample reports in this forum. Just search the forum with term <b>ZUS_SDN</b> (e.g. ZUS_SDN_BCALV_EDIT_03_F4).

Regards

Uwe

Read only

Former Member
0 Likes
1,137
Read only

Former Member
0 Likes
1,137

Hi,

Interactive ALV using ABAP Objects.

Code Sample:

report ZINTERACTIVEREPORT.

class EVENT_CLASS definition deferred.

data : OK_CODE like SY-UCOMM,

GT_VBAK type table of VBAK,

GT_VBAP type table of VBAP,

G_MAX type I value 100,

G_REPID like SY-REPID,

GS_LAYOUT type LVC_S_LAYO,

GT_FIELDCAT type LVC_T_FCAT ,

GS_FIELDCAT type LVC_S_FCAT ,

GRID1 type ref to CL_GUI_ALV_GRID,

GRID2 type ref to CL_GUI_ALV_GRID,

CUSTOM1 type ref to CL_GUI_CUSTOM_CONTAINER,

CUSTOM2 type ref to CL_GUI_CUSTOM_CONTAINER,

C1 type SCRFNAME value 'CONTAINER1',

C2 type SCRFNAME value 'CONTAINER2',

EVENT_RECEIVER type ref to EVENT_CLASS.

set screen 100.

----


  • CLASS lcl_event_receiver DEFINITION

----


*

----


class EVENT_CLASS definition.

public section.

methods:

HANDLE_DOUBLE_CLICK

for event DOUBLE_CLICK of CL_GUI_ALV_GRID importing E_ROW .

endclass. "lcl_event_receiver DEFINITION

----


  • CLASS lcl_event_receiver IMPLEMENTATION

----


*

----


class EVENT_CLASS implementation.

method HANDLE_DOUBLE_CLICK.

data : LS_VBAK like line of GT_VBAK.

read table GT_VBAK index E_ROW-INDEX into LS_VBAK.

perform SELECT_TABLE_VBAP using LS_VBAK changing GT_VBAP.

call screen 101 starting at 0 0.

endmethod. "handle_double_click

endclass. "lcl_event_receiver IMPLEMENTATION

&----


*& Module pbo_100 OUTPUT

&----


module PBO_100 output.

set pf-status 'MAIN100'.

set titlebar 'MAIN100'.

G_REPID = SY-REPID.

if CUSTOM1 is initial.

perform SELECT_TABLE_VBAK changing GT_VBAK.

create object CUSTOM1

exporting

  • PARENT =

CONTAINER_NAME = C1

  • 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 GRID1

exporting

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

I_PARENT = CUSTOM1

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

  • I_FCAT_COMPLETE = SPACE

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

GS_LAYOUT-GRID_TITLE = 'SALES DOCUMENT NUMBER'.

GS_FIELDCAT-FIELDNAME = 'VBELN'.

GS_FIELDCAT-REF_TABLE = 'VBAK'.

GS_FIELDCAT-REF_FIELD = 'VBELN'.

GS_FIELDCAT-COLTEXT = 'SALES DOCUMENT NUMBER'.

GS_FIELDCAT-OUTPUTLEN = 10.

append GS_FIELDCAT to GT_FIELDCAT.

call method GRID1->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 = GS_LAYOUT

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

  • IR_SALV_ADAPTER =

changing

IT_OUTTAB = GT_VBAK[]

IT_FIELDCATALOG = GT_FIELDCAT

  • IT_SORT =

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

create object EVENT_RECEIVER.

set handler EVENT_RECEIVER->HANDLE_DOUBLE_CLICK for GRID1.

endif.

endmodule. " pbo_100 OUTPUT

&----


*& Form select_table_vbap

&----


form SELECT_TABLE_VBAK changing P_GT_VBAK like GT_VBAK.

select VBELN from VBAK into corresponding fields of table P_GT_VBAK up to G_MAX rows.

endform. " select_table_vbap

&----


*& Module pai_100 INPUT

&----


module PAI_100 input.

case OK_CODE.

when 'BACK' or 'CANCEL' or 'EXIT'.

leave program.

  • perform exit_program.

endcase.

clear OK_CODE.

endmodule. " pai_100 INPUT

----


  • MODULE PBO_101 OUTPUT

----


*

----


module PBO_101 output.

set pf-status 'DETAIL101'.

set titlebar 'DETAIL101'.

if CUSTOM2 is initial.

create object CUSTOM2

exporting

  • PARENT =

CONTAINER_NAME = C2

  • 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 GRID2

exporting

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

I_PARENT = CUSTOM2

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

  • I_FCAT_COMPLETE = SPACE

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

GS_LAYOUT-GRID_TITLE = 'SALES DOCUMENT ITEM'.

refresh gt_fieldcat.

clear gs_fieldcat.

GS_FIELDCAT-FIELDNAME = 'POSNR'.

GS_FIELDCAT-REF_TABLE = 'VBAP'.

GS_FIELDCAT-REF_FIELD = 'POSNR'.

GS_FIELDCAT-COLTEXT = 'SALES DOCUMENT ITEM'.

GS_FIELDCAT-OUTPUTLEN = 10.

append GS_FIELDCAT to GT_FIELDCAT.

call method GRID2->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 = GS_LAYOUT

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

  • IR_SALV_ADAPTER =

changing

IT_OUTTAB = GT_VBAP[]

IT_FIELDCATALOG = GT_FIELDCAT

  • IT_SORT =

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

endif.

endmodule. " PBO_101 OUTPUT

&----


*& Form select_table_vbap

&----


form SELECT_TABLE_VBAP using P_LS_VBAK like line of GT_VBAK

changing P_GT_VBAP like GT_VBAP[].

select POSNR from VBAP into corresponding fields of table GT_VBAP where VBELN = P_LS_VBAK-VBELN.

endform. " select_table_vbap

&----


*& Module PAI_101 INPUT

&----


module PAI_101 input.

case OK_CODE.

when 'RETURN'.

leave to screen 100.

endcase.

clear OK_CODE.

endmodule. " PAI_101 INPUT