‎2009 Feb 25 7:23 AM
Dear Experts,
what would you recommend for the following case.
I need two sections (ALV or windows, or pane etc...) on a Dynpro. The left section and a right section.
One of the sections is already populated (data comes from internal table) lets say the right one.
And now make them user possible to drag and drop the data from the right section to left
section.
With other words you push data from right to left (from one internal table to the other internal table)
Hope somebody can help me.
Regards
sas
‎2009 Feb 25 7:27 AM
Refer below code
REPORT ZALV_DG_DP .
INCLUDE ZALV_DG_DP_TOP.
INCLUDE ZALV_DG_DP_CLASSES.
INCLUDE ZALV_DG_DP_STATUS_PBO.
INCLUDE ZALV_DG_DP_PAI.
INCLUDE ZALV_DG_DP_DATA_FORMS.
START-OF-SELECTION.
*Selecting data from database
PERFORM DATA_SELECT.
*call screen for dislay grid
CALL SCREEN 500.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Include ZALV_DG_DP_TOP *
*&---------------------------------------------------------------------*
CLASS LCL_DRG_DRP DEFINITION DEFERRED.
*&---------------------------------------------------------------------*
*& Data Declearation *
*&---------------------------------------------------------------------*
DATA: W_GRID TYPE REF TO CL_GUI_ALV_GRID,
W_GRID2 TYPE REF TO CL_GUI_ALV_GRID,
W_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER,
W_DOCKING2 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
W_DG_BEHV TYPE REF TO CL_DRAGDROP,
W_RECEIVER TYPE REF TO LCL_DRG_DRP.
DATA: WA_LAYOUT TYPE LVC_S_LAYO.
DATA: WA_LAYOUT1 TYPE LVC_S_LAYO.
DATA: T_SORT TYPE LVC_T_SORT.
DATA: W_OK_CODE TYPE SY-UCOMM.
*&---------------------------------------------------------------------*
*& Internal Table *
*&---------------------------------------------------------------------*
DATA: T_VBRK TYPE TABLE OF VBRK.
DATA: T_VBRK2 TYPE TABLE OF VBRK.
*&---------------------------------------------------------------------*
*& Work Area *
*&---------------------------------------------------------------------*
DATA: WA_VBRK TYPE VBRK.
*&---------------------------------------------------------------------*
*& Include ZALV_DG_DP_CLASSES *
*&---------------------------------------------------------------------*
CLASS LCL_DRAGDROP DEFINITION.
PUBLIC SECTION.
DATA: WAL_VBRK TYPE VBRK,
WAL_VBRK2 TYPE VBRK,
INDEX TYPE I.
ENDCLASS. "LCL_DRAGDROP DEFINITION
*---------------------------------------------------------------------*
* CLASS LCL_DRG_DRP DEFINATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS LCL_DRG_DRP DEFINITION.
PUBLIC SECTION.
METHODS:
HANDLE_ALV_DRAG FOR EVENT ONDRAG OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN E_DRAGDROPOBJ,
HANDLE_ALV_DROP FOR EVENT ONDROP OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN E_DRAGDROPOBJ.
ENDCLASS. "LCL_DRG_DRP DEFINATION
*---------------------------------------------------------------------*
* CLASS LCL_DRG_DRP IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS LCL_DRG_DRP IMPLEMENTATION.
METHOD HANDLE_ALV_DRAG.
DATA: DATAOBJ TYPE REF TO LCL_DRAGDROP,
LINE TYPE VBRK.
* Read dragged row
READ TABLE T_VBRK INDEX E_ROW-INDEX INTO LINE.
CREATE OBJECT DATAOBJ.
* remember the row index to copy or move a line
MOVE E_ROW-INDEX TO DATAOBJ->INDEX.
* store the dragged line, too.
READ TABLE T_VBRK INTO DATAOBJ->WAL_VBRK INDEX E_ROW-INDEX.
* Assign your data object to the refering event parameter.
E_DRAGDROPOBJ->OBJECT = DATAOBJ.
ENDMETHOD. "HANDLE_ALV_DRAG
*--------------------------------------------------------------------
* Implement the event handler for event 'OnDrop'. This event is used
* to use your dragged information in combination with your drop source.
METHOD HANDLE_ALV_DROP.
DATA: DATAOBJ TYPE REF TO LCL_DRAGDROP,
DROP_INDEX TYPE I,
WAL_VBRK TYPE VBRK,
STABLE TYPE LVC_S_STBL.
* Refresh Alv Grid Control without scrolling
STABLE-ROW = 'X'.
STABLE-COL = 'X'.
CATCH SYSTEM-EXCEPTIONS MOVE_CAST_ERROR = 1.
DATAOBJ ?= E_DRAGDROPOBJ->OBJECT.
*. Check which operation the user has conducted (copy or move).
IF E_DRAGDROPOBJ->EFFECT EQ CL_DRAGDROP=>COPY.
INSERT DATAOBJ->WAL_VBRK INTO T_VBRK2 INDEX E_ROW-INDEX.
ELSE.
DELETE T_VBRK INDEX DATAOBJ->INDEX.
INSERT DATAOBJ->WAL_VBRK INTO T_VBRK2 INDEX E_ROW-INDEX.
ENDIF.
CALL METHOD W_GRID2->REFRESH_TABLE_DISPLAY
EXPORTING
I_SOFT_REFRESH = 'X'
IS_STABLE = STABLE.
CALL METHOD W_GRID->REFRESH_TABLE_DISPLAY
EXPORTING
I_SOFT_REFRESH = 'X'
IS_STABLE = STABLE.
ENDCATCH.
IF SY-SUBRC <> 0.
CALL METHOD E_DRAGDROPOBJ->ABORT.
ENDIF.
ENDMETHOD. "HANDLE_ALV_DROP
ENDCLASS. "LCL_DRG_DRP IMPLEMENTATION
*----------------------------------------------------------------------*
***INCLUDE ZALV_DG_DP_DATA_FORMS .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form DATA_SELECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATA_SELECT .
SELECT * FROM VBRK INTO TABLE T_VBRK UP TO 10 ROWS.
SELECT * FROM VBRK INTO TABLE T_VBRK2 UP TO 10 ROWS WHERE VBELN > '0090000009'.
ENDFORM. " DATA_SELECT
*&---------------------------------------------------------------------*
*& Form ASSIGN_HANDLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ASSIGN_HANDLE .
DATA: L_EFFECT TYPE I,
L_HANDLE_ALV TYPE I.
* Define a behaviour for drag and drop on alv objects and get its handle.
CREATE OBJECT W_DG_BEHV.
L_EFFECT = CL_DRAGDROP=>MOVE.
CALL METHOD W_DG_BEHV->ADD
EXPORTING
FLAVOR = 'Line'
DRAGSRC = 'X'
DROPTARGET = 'X'
EFFECT = L_EFFECT.
CALL METHOD W_DG_BEHV->GET_HANDLE
IMPORTING
HANDLE = L_HANDLE_ALV.
WA_LAYOUT-S_DRAGDROP-ROW_DDID = L_HANDLE_ALV.
WA_LAYOUT-GRID_TITLE = TEXT-101.
WA_LAYOUT1-S_DRAGDROP-ROW_DDID = L_HANDLE_ALV.
WA_LAYOUT1-GRID_TITLE = TEXT-102.
ENDFORM. " ASSIGN_HANDLE
*&---------------------------------------------------------------------*
*& Form SORTING
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_WA_SORT text
*----------------------------------------------------------------------*
FORM SORTING CHANGING P_T_SORT TYPE LVC_T_SORT.
DATA: WAL_SORT LIKE LINE OF P_T_SORT.
WAL_SORT-SPOS = '1'.
WAL_SORT-FIELDNAME = 'VBELN'.
WAL_SORT-UP = 'X'.
WAL_SORT-DOWN = SPACE.
APPEND WAL_SORT TO P_T_SORT.
ENDFORM. " SORTING
*----------------------------------------------------------------------*
***INCLUDE ZALV_DG_DP_PAI .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0500 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0500 INPUT.
CASE W_OK_CODE.
WHEN 'BACK' OR 'CANCEL'.
IF NOT W_DOCKING IS INITIAL.
CALL METHOD W_DOCKING->FREE.
CALL METHOD W_DOCKING2->FREE.
CALL METHOD CL_GUI_CFW=>FLUSH
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
IF SY-SUBRC <> 0.
ENDIF.
CLEAR W_DOCKING.
CLEAR W_GRID.
CLEAR W_DOCKING2.
CLEAR W_GRID2.
LEAVE TO SCREEN 0.
ENDIF.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
CLEAR W_OK_CODE.
ENDMODULE. " USER_COMMAND_0500 INPUT
*----------------------------------------------------------------------*
***INCLUDE ZALV_DG_DP_STATUS_PBO .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0500 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0500 OUTPUT.
SET PF-STATUS '500'.
SET TITLEBAR '500'.
ENDMODULE. " STATUS_0500 OUTPUT
*&---------------------------------------------------------------------*
*& Module CREATE_OBJ OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CREATE_OBJ OUTPUT.
IF W_GRID IS INITIAL.
CREATE OBJECT W_DOCKING
EXPORTING
DYNNR = '500'
EXTENSION = '550'
SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_LEFT.
CREATE OBJECT W_DOCKING2
EXPORTING
DYNNR = '500'
EXTENSION = '400'
SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_TOP.
* create alv control
CREATE OBJECT W_GRID
EXPORTING I_PARENT = W_DOCKING.
* create alv control
CREATE OBJECT W_GRID2
EXPORTING I_PARENT = W_DOCKING2.
* Create object n N set Handle.
CREATE OBJECT W_RECEIVER.
* Events alv control
SET HANDLER W_RECEIVER->HANDLE_ALV_DRAG FOR W_GRID.
SET HANDLER W_RECEIVER->HANDLE_ALV_DROP FOR W_GRID2.
* describe behaviour of drag&drop
PERFORM ASSIGN_HANDLE.
PERFORM SORTING CHANGING T_SORT.
CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'VBRK'
IS_LAYOUT = WA_LAYOUT
CHANGING
IT_SORT = T_SORT
IT_OUTTAB = T_VBRK.
CALL METHOD W_GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'VBRK'
IS_LAYOUT = WA_LAYOUT1
CHANGING
IT_SORT = T_SORT
IT_OUTTAB = T_VBRK2.
ELSE.
PERFORM SORTING CHANGING T_SORT.
CALL METHOD W_GRID->REFRESH_TABLE_DISPLAY.
CALL METHOD W_GRID2->REFRESH_TABLE_DISPLAY.
ENDIF.
ENDMODULE. " CREATE_OBJ OUTPUT
‎2009 Feb 25 7:27 AM
Refer below code
REPORT ZALV_DG_DP .
INCLUDE ZALV_DG_DP_TOP.
INCLUDE ZALV_DG_DP_CLASSES.
INCLUDE ZALV_DG_DP_STATUS_PBO.
INCLUDE ZALV_DG_DP_PAI.
INCLUDE ZALV_DG_DP_DATA_FORMS.
START-OF-SELECTION.
*Selecting data from database
PERFORM DATA_SELECT.
*call screen for dislay grid
CALL SCREEN 500.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Include ZALV_DG_DP_TOP *
*&---------------------------------------------------------------------*
CLASS LCL_DRG_DRP DEFINITION DEFERRED.
*&---------------------------------------------------------------------*
*& Data Declearation *
*&---------------------------------------------------------------------*
DATA: W_GRID TYPE REF TO CL_GUI_ALV_GRID,
W_GRID2 TYPE REF TO CL_GUI_ALV_GRID,
W_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER,
W_DOCKING2 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
W_DG_BEHV TYPE REF TO CL_DRAGDROP,
W_RECEIVER TYPE REF TO LCL_DRG_DRP.
DATA: WA_LAYOUT TYPE LVC_S_LAYO.
DATA: WA_LAYOUT1 TYPE LVC_S_LAYO.
DATA: T_SORT TYPE LVC_T_SORT.
DATA: W_OK_CODE TYPE SY-UCOMM.
*&---------------------------------------------------------------------*
*& Internal Table *
*&---------------------------------------------------------------------*
DATA: T_VBRK TYPE TABLE OF VBRK.
DATA: T_VBRK2 TYPE TABLE OF VBRK.
*&---------------------------------------------------------------------*
*& Work Area *
*&---------------------------------------------------------------------*
DATA: WA_VBRK TYPE VBRK.
*&---------------------------------------------------------------------*
*& Include ZALV_DG_DP_CLASSES *
*&---------------------------------------------------------------------*
CLASS LCL_DRAGDROP DEFINITION.
PUBLIC SECTION.
DATA: WAL_VBRK TYPE VBRK,
WAL_VBRK2 TYPE VBRK,
INDEX TYPE I.
ENDCLASS. "LCL_DRAGDROP DEFINITION
*---------------------------------------------------------------------*
* CLASS LCL_DRG_DRP DEFINATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS LCL_DRG_DRP DEFINITION.
PUBLIC SECTION.
METHODS:
HANDLE_ALV_DRAG FOR EVENT ONDRAG OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN E_DRAGDROPOBJ,
HANDLE_ALV_DROP FOR EVENT ONDROP OF CL_GUI_ALV_GRID
IMPORTING E_ROW E_COLUMN E_DRAGDROPOBJ.
ENDCLASS. "LCL_DRG_DRP DEFINATION
*---------------------------------------------------------------------*
* CLASS LCL_DRG_DRP IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS LCL_DRG_DRP IMPLEMENTATION.
METHOD HANDLE_ALV_DRAG.
DATA: DATAOBJ TYPE REF TO LCL_DRAGDROP,
LINE TYPE VBRK.
* Read dragged row
READ TABLE T_VBRK INDEX E_ROW-INDEX INTO LINE.
CREATE OBJECT DATAOBJ.
* remember the row index to copy or move a line
MOVE E_ROW-INDEX TO DATAOBJ->INDEX.
* store the dragged line, too.
READ TABLE T_VBRK INTO DATAOBJ->WAL_VBRK INDEX E_ROW-INDEX.
* Assign your data object to the refering event parameter.
E_DRAGDROPOBJ->OBJECT = DATAOBJ.
ENDMETHOD. "HANDLE_ALV_DRAG
*--------------------------------------------------------------------
* Implement the event handler for event 'OnDrop'. This event is used
* to use your dragged information in combination with your drop source.
METHOD HANDLE_ALV_DROP.
DATA: DATAOBJ TYPE REF TO LCL_DRAGDROP,
DROP_INDEX TYPE I,
WAL_VBRK TYPE VBRK,
STABLE TYPE LVC_S_STBL.
* Refresh Alv Grid Control without scrolling
STABLE-ROW = 'X'.
STABLE-COL = 'X'.
CATCH SYSTEM-EXCEPTIONS MOVE_CAST_ERROR = 1.
DATAOBJ ?= E_DRAGDROPOBJ->OBJECT.
*. Check which operation the user has conducted (copy or move).
IF E_DRAGDROPOBJ->EFFECT EQ CL_DRAGDROP=>COPY.
INSERT DATAOBJ->WAL_VBRK INTO T_VBRK2 INDEX E_ROW-INDEX.
ELSE.
DELETE T_VBRK INDEX DATAOBJ->INDEX.
INSERT DATAOBJ->WAL_VBRK INTO T_VBRK2 INDEX E_ROW-INDEX.
ENDIF.
CALL METHOD W_GRID2->REFRESH_TABLE_DISPLAY
EXPORTING
I_SOFT_REFRESH = 'X'
IS_STABLE = STABLE.
CALL METHOD W_GRID->REFRESH_TABLE_DISPLAY
EXPORTING
I_SOFT_REFRESH = 'X'
IS_STABLE = STABLE.
ENDCATCH.
IF SY-SUBRC <> 0.
CALL METHOD E_DRAGDROPOBJ->ABORT.
ENDIF.
ENDMETHOD. "HANDLE_ALV_DROP
ENDCLASS. "LCL_DRG_DRP IMPLEMENTATION
*----------------------------------------------------------------------*
***INCLUDE ZALV_DG_DP_DATA_FORMS .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form DATA_SELECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DATA_SELECT .
SELECT * FROM VBRK INTO TABLE T_VBRK UP TO 10 ROWS.
SELECT * FROM VBRK INTO TABLE T_VBRK2 UP TO 10 ROWS WHERE VBELN > '0090000009'.
ENDFORM. " DATA_SELECT
*&---------------------------------------------------------------------*
*& Form ASSIGN_HANDLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ASSIGN_HANDLE .
DATA: L_EFFECT TYPE I,
L_HANDLE_ALV TYPE I.
* Define a behaviour for drag and drop on alv objects and get its handle.
CREATE OBJECT W_DG_BEHV.
L_EFFECT = CL_DRAGDROP=>MOVE.
CALL METHOD W_DG_BEHV->ADD
EXPORTING
FLAVOR = 'Line'
DRAGSRC = 'X'
DROPTARGET = 'X'
EFFECT = L_EFFECT.
CALL METHOD W_DG_BEHV->GET_HANDLE
IMPORTING
HANDLE = L_HANDLE_ALV.
WA_LAYOUT-S_DRAGDROP-ROW_DDID = L_HANDLE_ALV.
WA_LAYOUT-GRID_TITLE = TEXT-101.
WA_LAYOUT1-S_DRAGDROP-ROW_DDID = L_HANDLE_ALV.
WA_LAYOUT1-GRID_TITLE = TEXT-102.
ENDFORM. " ASSIGN_HANDLE
*&---------------------------------------------------------------------*
*& Form SORTING
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_WA_SORT text
*----------------------------------------------------------------------*
FORM SORTING CHANGING P_T_SORT TYPE LVC_T_SORT.
DATA: WAL_SORT LIKE LINE OF P_T_SORT.
WAL_SORT-SPOS = '1'.
WAL_SORT-FIELDNAME = 'VBELN'.
WAL_SORT-UP = 'X'.
WAL_SORT-DOWN = SPACE.
APPEND WAL_SORT TO P_T_SORT.
ENDFORM. " SORTING
*----------------------------------------------------------------------*
***INCLUDE ZALV_DG_DP_PAI .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0500 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0500 INPUT.
CASE W_OK_CODE.
WHEN 'BACK' OR 'CANCEL'.
IF NOT W_DOCKING IS INITIAL.
CALL METHOD W_DOCKING->FREE.
CALL METHOD W_DOCKING2->FREE.
CALL METHOD CL_GUI_CFW=>FLUSH
EXCEPTIONS
CNTL_SYSTEM_ERROR = 1
CNTL_ERROR = 2.
IF SY-SUBRC <> 0.
ENDIF.
CLEAR W_DOCKING.
CLEAR W_GRID.
CLEAR W_DOCKING2.
CLEAR W_GRID2.
LEAVE TO SCREEN 0.
ENDIF.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
CLEAR W_OK_CODE.
ENDMODULE. " USER_COMMAND_0500 INPUT
*----------------------------------------------------------------------*
***INCLUDE ZALV_DG_DP_STATUS_PBO .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0500 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0500 OUTPUT.
SET PF-STATUS '500'.
SET TITLEBAR '500'.
ENDMODULE. " STATUS_0500 OUTPUT
*&---------------------------------------------------------------------*
*& Module CREATE_OBJ OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CREATE_OBJ OUTPUT.
IF W_GRID IS INITIAL.
CREATE OBJECT W_DOCKING
EXPORTING
DYNNR = '500'
EXTENSION = '550'
SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_LEFT.
CREATE OBJECT W_DOCKING2
EXPORTING
DYNNR = '500'
EXTENSION = '400'
SIDE = CL_GUI_DOCKING_CONTAINER=>DOCK_AT_TOP.
* create alv control
CREATE OBJECT W_GRID
EXPORTING I_PARENT = W_DOCKING.
* create alv control
CREATE OBJECT W_GRID2
EXPORTING I_PARENT = W_DOCKING2.
* Create object n N set Handle.
CREATE OBJECT W_RECEIVER.
* Events alv control
SET HANDLER W_RECEIVER->HANDLE_ALV_DRAG FOR W_GRID.
SET HANDLER W_RECEIVER->HANDLE_ALV_DROP FOR W_GRID2.
* describe behaviour of drag&drop
PERFORM ASSIGN_HANDLE.
PERFORM SORTING CHANGING T_SORT.
CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'VBRK'
IS_LAYOUT = WA_LAYOUT
CHANGING
IT_SORT = T_SORT
IT_OUTTAB = T_VBRK.
CALL METHOD W_GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'VBRK'
IS_LAYOUT = WA_LAYOUT1
CHANGING
IT_SORT = T_SORT
IT_OUTTAB = T_VBRK2.
ELSE.
PERFORM SORTING CHANGING T_SORT.
CALL METHOD W_GRID->REFRESH_TABLE_DISPLAY.
CALL METHOD W_GRID2->REFRESH_TABLE_DISPLAY.
ENDIF.
ENDMODULE. " CREATE_OBJ OUTPUT
‎2009 Feb 25 8:35 AM
Karan thanks.
I will try it out than turn to you back
Regards
sas
Edited by: erdem sas on Feb 25, 2009 9:44 AM
‎2009 Feb 25 9:02 AM
Hi Karan it is not possible to drag and drop ?
What is wrong ??
‎2009 Feb 25 9:04 AM
‎2009 Feb 25 8:49 AM
*Hi, you can create but you have to use subscreen. please find the demo code bellow.*
REPORT ZSUBSCREEN.
TABLES: USR02, "Logon data
SSCRFIELDS. "FIELDS ON SELECTION SCREENS
*----
SUBSCREEN 1
*----
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-010.
SELECT-OPTIONS: USERNAME FOR USR02-BNAME.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN END OF SCREEN 100.
*----
SUBSCREEN 2
*----
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-020.
SELECT-OPTIONS: LASTLOGI FOR USR02-TRDAT.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN END OF SCREEN 200.
*----
SUBSCREEN 3
*----
SELECTION-SCREEN BEGIN OF SCREEN 300 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-030.
SELECT-OPTIONS: CLASSTYP FOR USR02-CLASS.
SELECTION-SCREEN END OF BLOCK B3.
SELECTION-SCREEN END OF SCREEN 300.
SELECTION-SCREEN:
FUNCTION KEY 1,
FUNCTION KEY 2.
SELECTION-SCREEN: BEGIN OF TABBED BLOCK SUB FOR 15 LINES,
END OF BLOCK SUB.
START-OF-SELECTION.
SELECT * FROM USR02 WHERE BNAME IN USERNAME
AND ERDAT IN LASTLOGI
AND CLASS IN CLASSTYP.
WRITE: / 'User ', USR02-BNAME,
'Last Login Date ', USR02-TRDAT,
'Last Login Time ', USR02-LTIME,
'CLASS ', USR02-CLASS.
ENDSELECT.
END-OF-SELECTION.
INITIALIZATION.
SCREEN ICON LEFT AND RIGHT
SSCRFIELDS-FUNCTXT_01 = '@0D@'.
SSCRFIELDS-FUNCTXT_02 = '@0E@'.
SUB-PROG = SY-REPID.
SUB-DYNNR = 100.
AT SELECTION-SCREEN.
CASE SY-DYNNR.
WHEN 100.
IF SSCRFIELDS-UCOMM = 'FC01'.
SUB-DYNNR = 300.
ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
SUB-DYNNR = 200.
ENDIF.
WHEN 200.
IF SSCRFIELDS-UCOMM = 'FC01'.
SUB-DYNNR = 100.
ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
SUB-DYNNR = 300.
ENDIF.
WHEN 300.
IF SSCRFIELDS-UCOMM = 'FC01'.
SUB-DYNNR = 200.
ELSEIF SSCRFIELDS-UCOMM = 'FC02'.
SUB-DYNNR = 100.
ENDIF.
ENDCASE.