04-24-2007 9:39 AM
Hello !!
Could u please suggest some programs related to Docking container(ALV double click).
Thanks,
Aditya
04-24-2007 9:54 AM
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
04-24-2007 9:54 AM
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
04-24-2007 9:58 AM
Go to SE83 u ll get example codes for everything.
Thanks & Regards
Santhosh
04-24-2007 10:15 AM
04-24-2007 10:18 AM
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