Application Development 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: 

Docking container(ALV double click)

Former Member
0 Kudos

Hello !!

Could u please suggest some programs related to Docking container(ALV double click).

Thanks,

Aditya

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Adithya,

Just go thoruhg these thread and documents. You will definetly solve the problem.

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESITSSAPGUIHTML/BCFESITSSAPGUIHTML.pdf

http://www.sapfans.com/forums/viewtopic.php?t=52107

Warm Regards,

Vijay

4 REPLIES 4

Former Member
0 Kudos

Hi Adithya,

Just go thoruhg these thread and documents. You will definetly solve the problem.

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESITSSAPGUIHTML/BCFESITSSAPGUIHTML.pdf

http://www.sapfans.com/forums/viewtopic.php?t=52107

Warm Regards,

Vijay

Former Member
0 Kudos

Go to SE83 u ll get example codes for everything.

Thanks & Regards

Santhosh

uwe_schieferstein
Active Contributor
0 Kudos

Hello Aditya

Have a look at my sample report <b>ZUS_SDN_TWO_ALV_GRIDS</b> in thread

.

I have already posted several other sample reports showing various aspects of ALV programming in this forum. Simply search for <b>ZUS_SDN</b>.

Regards

Uwe

sonu_p2
Active Participant
0 Kudos

Dear Aditya,

Check out the code below :-

PROGRAM ZSAC_DBCLK_ALVOO MESSAGE-ID ZSAC_PUR_MSG.

type-pools : slis.

CONSTANTS : C_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.

DATA: gt_outtab type table of ZSAC_EDIT.

tables :

ekko, "Purchasing Document Header

ekpo. "Purchasing Document Item

**********************FOR EDITABLE ALV**********************

DATA :g_grid TYPE REF TO cl_gui_alv_grid,

g_custom_container TYPE REF TO cl_gui_custom_container,

gs_layout TYPE lvc_s_layo,

g_max type i value 100,

gte_fieldcat type lvc_t_fcat,

gse_fieldcat like line of gte_fieldcat.

**********************FOR DOCKING CONTAINER LEFT**********************

DATA : dock_left type ref to cl_gui_docking_container,

sd_container type ref to cl_gui_custom_container,

s_grid_dock_left type ref to cl_gui_alv_grid.

***********************FOR DOCKING CONTAINER RIGHT**********************

*

*

*DATA : dock_right type ref to cl_gui_docking_container,

  • sd_container type ref to cl_gui_custom_container,

  • s_grid_dock_right type ref to cl_gui_alv_grid.

DATA : s_container type ref to cl_gui_custom_container,

s_grid type ref to cl_gui_alv_grid,

gt_fieldcat type lvc_t_fcat,

gs_fieldcat like line of gt_fieldcat.

DATA : s_container1 type ref to cl_gui_custom_container,

s_grid1 type ref to cl_gui_alv_grid,

gt_fieldcat1 type lvc_t_fcat,

gs_fieldcat1 like line of gt_fieldcat1.

TYPES : BEGIN OF IT_EKKO_STRUCT,

ebeln TYPE ekko-ebeln, "Purchasing Document Number

bukrs TYPE ekko-bukrs, "Company Code

END OF IT_EKKO_STRUCT.

DATA : IT_EKKO TYPE TABLE OF IT_EKKO_STRUCT,

IT_EKKO_WA LIKE LINE OF IT_EKKO.

DATA: ok_code TYPE sy-ucomm ,

TXT_PURDOC LIKE ekpo-ebeln.

TYPES : BEGIN OF IT_EKPO_STRUCT,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

matnr TYPE ekpo-matnr,

werks TYPE ekpo-werks,

kunnr TYPE ekpo-kunnr,

bukrs TYPE ekko-bukrs,

END OF IT_EKPO_STRUCT.

DATA : IT_EKPO TYPE TABLE OF IT_EKPO_STRUCT,

IT_EKPO_WA LIKE LINE OF IT_EKPO.

*----


*

  • CLASS Z_MAIN DEFINITION

*----


*

*

*----


*

CLASS Z_MAIN DEFINITION.

PUBLIC SECTION.

METHODS : SELECTION , FIRSTDIS ,SECONDDIS , DOCKING ,EDITABLE_ALV.

METHODS on_dblclick FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_row.

METHODS handle_dbclk

FOR EVENT double_click OF cl_gui_alv_grid

IMPORTING e_row.

ENDCLASS. "Z_MAIN DEFINITION

*----


*

  • CLASS Z_MAIN IMPLEMENTATION

*----


*

*

*----


*

CLASS Z_MAIN IMPLEMENTATION.

                      • METHOD FOR SELECTING RECORDS *******************

METHOD SELECTION.

SELECT ebeln ebelp matnr werks kunnr

FROM EKPO

INTO CORRESPONDING FIELDS OF TABLE IT_EKPO

WHERE ebeln = TXT_PURDOC.

SELECT ebeln bukrs

FROM ekko

INTO CORRESPONDING FIELDS OF TABLE it_ekko

WHERE ebeln = TXT_PURDOC.

ENDMETHOD. "SELECTION

                      • DISPLAYING FIRST ALV GRID *******************

METHOD FIRSTDIS.

PERFORM fld_cat.

IF s_container is INITIAL.

CREATE OBJECT s_container

EXPORTING container_name = 'SS_CONTAINER'.

CREATE OBJECT s_grid

EXPORTING i_parent = s_container.

CALL METHOD s_grid->set_table_for_first_display

CHANGING

it_outtab = it_ekko

it_fieldcatalog = gt_fieldcat.

ENDIF.

ENDMETHOD. "FIRSTDIS

                      • DISPLAYING SECOND ALV GRID *******************

METHOD SECONDDIS.

PERFORM fld_cat1.

IF s_container1 is INITIAL.

CREATE OBJECT s_container1

EXPORTING container_name = 'SP_CONTAINER'.

CREATE OBJECT s_grid1

EXPORTING i_parent = s_container1.

CALL METHOD s_grid1->set_table_for_first_display

CHANGING

it_outtab = it_ekpo

it_fieldcatalog = gt_fieldcat1.

ENDIF.

ENDMETHOD. "SECONDDIS

                      • DOUBLE CLICK EVENTS *******************

METHOD on_dblclick.

READ TABLE it_ekko INDEX e_row INTO it_ekko_wa.

LEAVE TO SCREEN 0400.

ENDMETHOD. "on_dblclick

                      • DISPLAYING DOCKING CONTAINER *******************

METHOD DOCKING.

PERFORM fld_cat.

IF sd_container is INITIAL.

CREATE OBJECT sd_container

EXPORTING

container_name = 'SS_DOCK'

EXCEPTIONS

OTHERS = 1.

ENDIF.

IF dock_left is INITIAL.

CREATE OBJECT dock_left

EXPORTING side = cl_gui_docking_container=>dock_at_left

ratio = 25.

ENDIF.

CREATE OBJECT s_grid_dock_left

EXPORTING i_parent = dock_left.

CALL METHOD s_grid_dock_left->set_table_for_first_display

CHANGING

it_outtab = it_ekko

it_fieldcatalog = gt_fieldcat.

ENDMETHOD. "DOCKING

********************EDITABLE ALV METHOD ***********

METHOD EDITABLE_ALV.

IF g_custom_container IS INITIAL.

CREATE OBJECT g_custom_container

EXPORTING container_name = 'ALV_EDIT'.

CREATE OBJECT g_grid

EXPORTING i_parent = g_custom_container.

*§1.Set status of all cells to editable using the layout structure.

gs_layout-edit = 'X'.

select * from ZSAC_EDIT into table gt_outtab up to g_max rows.

CALL METHOD g_grid->set_table_for_first_display

EXPORTING i_structure_name = 'zsac_edit'

is_layout = gs_layout

i_bypassing_buffer = space

  • is_variant = ws_f_grid_disvar

  • i_save = ws_c_grid_save

CHANGING it_outtab = gt_outtab.

CALL METHOD g_grid->set_ready_for_input

EXPORTING i_ready_for_input = 1.

ENDIF.

ENDMETHOD.

METHOD handle_dbclk.

READ TABLE it_ekko INDEX e_row INTO it_ekko_wa.

ENDMETHOD. "handle_hotspot_click

ENDCLASS. "Z_MAIN IMPLEMENTATION

*&----


*

*& Module STATUS_0100 OUTPUT

*&----


*

  • text

*----


*

MODULE STATUS_0100 OUTPUT.

ENDMODULE. " STATUS_0100 OUTPUT

*&----


*

*& Module USER_COMMAND_0100 INPUT

*&----


*

  • text

*----


*

MODULE USER_COMMAND_0100 INPUT.

DATA : obj1 type ref to Z_MAIN.

CREATE OBJECT : obj1.

CALL METHOD obj1->SELECTION.

CASE SY-UCOMM.

WHEN 'SEARCH'.

LEAVE TO SCREEN 0300.

WHEN 'EDIT'.

LEAVE TO SCREEN 0600.

WHEN 'DOCK'.

LEAVE TO SCREEN 0500.

WHEN 'CANCEL'.

LEAVE PROGRAM.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

*&----


*

*& Module STATUS_0300 OUTPUT

*&----


*

  • text

*----


*

MODULE STATUS_0300 OUTPUT.

SET PF-STATUS 'ALV1'.

CALL METHOD obj1->FIRSTDIS.

SET HANDLER obj1->on_dblclick FOR s_grid.

ENDMODULE. " STATUS_0300 OUTPUT

*&----


*

*& Form fld_cat

*&----


*

  • text

*----


*

FORM fld_cat.

gs_fieldcat-fieldname = 'EBELN'.

gs_fieldcat-tabname = 'IT_EKKO'.

gs_fieldcat-reptext = 'Purchasing Document'.

gs_fieldcat-outputlen = 20.

APPEND gs_fieldcat TO gt_fieldcat.

CLEAR gs_fieldcat.

gs_fieldcat-fieldname = 'BUKRS'.

gs_fieldcat-tabname = 'IT_EKKO'.

gs_fieldcat-reptext = 'Company Code'.

gs_fieldcat-outputlen = 20.

APPEND gs_fieldcat TO gt_fieldcat.

CLEAR gs_fieldcat.

ENDFORM. "fld_cat

*&----


*

*& Form fld_cat1

*&----


*

  • text

*----


*

FORM fld_cat1.

gs_fieldcat1-fieldname = 'EBELN'.

gs_fieldcat1-tabname = 'IT_EKPO'.

gs_fieldcat1-reptext = 'Purchasing Document'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'EBELP'.

gs_fieldcat1-tabname = 'IT_EKPO'.

gs_fieldcat1-reptext = 'Item Number'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

gs_fieldcat1-fieldname = 'WERKS'.

gs_fieldcat1-tabname = 'IT_EKPO'.

gs_fieldcat1-reptext = 'Plant'.

gs_fieldcat1-outputlen = 20.

APPEND gs_fieldcat1 TO gt_fieldcat1.

CLEAR gs_fieldcat1.

ENDFORM. "fld_cat1

*&----


*

*& Module STATUS_0400 OUTPUT

*&----


*

  • text

*----


*

MODULE STATUS_0400 OUTPUT.

SET PF-STATUS 'ALV2'.

CALL METHOD obj1->SECONDDIS.

ENDMODULE. " STATUS_0400 OUTPUT

*&----


*

*& Module USER_COMMAND_0300 INPUT

*&----


*

  • text

*----


*

MODULE USER_COMMAND_0300 INPUT.

*

ENDMODULE. " USER_COMMAND_0300 INPUT

*&----


*

*& Module USER_COMMAND_0400 INPUT

*&----


*

  • text

*----


*

MODULE USER_COMMAND_0400 INPUT.

ENDMODULE. " USER_COMMAND_0400 INPUT

*&----


*

*& Module STATUS_0500 OUTPUT

*&----


*

  • text

*----


*

MODULE STATUS_0500 OUTPUT.

SET PF-STATUS 'DOCKINGCONTAINER'.

CALL METHOD obj1->DOCKING.

SET HANDLER obj1->handle_dbclk FOR s_grid_dock_left.

ENDMODULE. " STATUS_0500 OUTPUT

*&----


*

*& Form handle_double_click

*&----


*

  • text

*----


*

  • -->IS_ROW_NO text

  • -->I_COLUMN_ID text

*----


*

FORM handle_double_click USING is_row_no TYPE lvc_s_roid

i_column_id TYPE lvc_s_col.

READ TABLE it_ekko INTO it_ekko_wa INDEX is_row_no-row_id.

ENDFORM. "handle_double_click

*&----


*

*& Module STATUS_0600 OUTPUT

*&----


*

  • text

*----


*

MODULE STATUS_0600 OUTPUT.

SET PF-STATUS 'EDITALV'.

CALL METHOD obj1->EDITABLE_ALV.

ENDMODULE. " STATUS_0600 OUTPUT

*&----


*

*& Module USER_COMMAND_0600 INPUT

*&----


*

  • text

*----


*

MODULE USER_COMMAND_0600 INPUT.

case sy-ucomm.

WHEN 'SAVE'.

*PERFORM EDIT_FIELDCAT.

*

*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

*EXPORTING

*I_CALLBACK_PROGRAM = SY-REPID

**I_CALLBACK_PF_STATUS_SET = 'EDITALV'

*I_CALLBACK_USER_COMMAND = C_USER_COMMAND

*IT_FIELDCAT = gte_fieldcat

*

  • TABLES

  • T_OUTTAB = gt_outtab.

*

*

  • endcase.

*

**

**

*FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM

*P_SELFLD TYPE SLIS_SELFIELD.

*

*Data ref1 type ref to cl_gui_alv_grid.

*CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

*IMPORTING

*E_GRID = g_grid.

*

***case p_ucomm.

***

***when 'SAVE'.

***

*call method ref1->check_changed_data.

**

**

**

**

**

**

*ENDFORM.

ENDCASE.

ENDMODULE. " USER_COMMAND_0600 INPUT

*FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM

*P_SELFLD TYPE SLIS_SELFIELD.

*

*Data ref1 type ref to cl_gui_alv_grid.

*CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

*IMPORTING

*E_GRID = g_grid.

*

***case p_ucomm.

***

***when 'SAVE'.

***

*call method ref1->check_changed_data.

**

**

**

**

**

**

*ENDFORM.

FORM EDIT_FIELDCAT.

gse_fieldcat-fieldname = 'ZEMPID'.

gse_fieldcat-tabname = 'ZSAC_EDIT'.

gse_fieldcat-edit = 'X'.

gse_fieldcat-reptext = 'Employee id'.

gse_fieldcat-outputlen = 20.

APPEND gse_fieldcat TO gte_fieldcat.

CLEAR gse_fieldcat.

gse_fieldcat-fieldname = 'ZPROJNAME'.

gse_fieldcat-tabname = 'ZSAC_EDIT'.

gse_fieldcat-edit = 'X'.

gse_fieldcat-reptext = 'Project Name'.

gse_fieldcat-outputlen = 20.

APPEND gse_fieldcat TO gte_fieldcat.

CLEAR gse_fieldcat.

gse_fieldcat-fieldname = 'ZEMPNAME'.

gse_fieldcat-tabname = 'ZSAC_EDIT'.

gse_fieldcat-edit = 'X'.

gse_fieldcat-reptext = 'Employee Name'.

gse_fieldcat-outputlen = 20.

APPEND gse_fieldcat TO gte_fieldcat.

CLEAR gse_fieldcat.

gse_fieldcat-fieldname = 'ZEMPDES'.

gse_fieldcat-tabname = 'ZSAC_EDIT'.

gse_fieldcat-edit = 'X'.

gse_fieldcat-reptext = 'Employee Designation'.

gse_fieldcat-outputlen = 20.

APPEND gse_fieldcat TO gte_fieldcat.

CLEAR gse_fieldcat.

Reward points if helpful

Thanks ,

Sachin