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

need two sections

Former Member
0 Likes
677

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
646

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

5 REPLIES 5
Read only

Former Member
0 Likes
647

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

Read only

0 Likes
646

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

Read only

0 Likes
646

Hi Karan it is not possible to drag and drop ?

What is wrong ??

Read only

0 Likes
646

Hi ,

Check this sample report

BCALV_TEST_GRID_DRAG_DROP

Regards

Read only

Former Member
0 Likes
646

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