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

HANDLE_DOUBLE_CLICK

dunky
Active Participant
0 Likes
1,399

Hi,

I'm trying to insert a doble click function, in an ALV position, to acces to a specific transaction but i cannot achieve it. The system do a dump when i doble click at the position.

¿Can you help me?

DUMP

CODE

REPORT zmmr0021.

*Define data

TABLES: eban.
TYPE-POOLS: slis.

*Define fields
DATA:     ls_matnr TYPE mara-matnr,
           ls_stlnr TYPE mast-stlnr.

*Define Work areas
DATA:     wa_eban TYPE eban,
           wa_mast TYPE mast,
           wa_mara TYPE mara,
           wa_makt TYPE makt,
           wa_mard TYPE mard,
           wa_stpo TYPE stpo.

*Define data types for itab lines
TYPES: BEGIN OF lnalv_type,
         idnrk               TYPE stpo-idnrk,
         maktx               TYPE makt-maktx,
         zzmolde             TYPE mara-zzmolde,
         zzplano             TYPE mara-zzplano,
         zzverplano          TYPE mara-zzverplano,
         zzespecificacion    TYPE mara-zzespecificacion,
         zzverespecificacion TYPE mara-zzverespecificacion,
         labst               TYPE i,

   END OF lnalv_type.

*Define data types for itabs
TYPES itab01_type TYPE STANDARD TABLE OF lnalv_type.

*Define itab without header line
DATA itab01 TYPE itab01_type.

*Define work areas for itabs
DATA wa_itab01 TYPE lnalv_type.


DATA: fieldcatalog  TYPE slis_t_fieldcat_alv WITH HEADER LINE,
       gd_layout     TYPE slis_layout_alv,
       gd_repid      LIKE sy-repid,
       g_save        TYPE c VALUE 'X',
       g_variant     TYPE disvariant,
       gx_variant    TYPE disvariant,
       g_exit        TYPE c,
       ispfli        TYPE TABLE OF spfli.

INITIALIZATION.

**SELECTION SCREEN DETAILS
   SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002 .
   PARAMETERS: pm_banfn TYPE eban-banfn.
   SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.

*CHECK VALUES FOR SOLPED
   SELECT SINGLE * FROM eban INTO wa_eban WHERE banfn = pm_banfn.
   IF sy-subrc NE 0.
     MESSAGE text-001 TYPE 'S' DISPLAY LIKE 'E'.
     EXIT.
   ENDIF.

*ALV FUNCTION MODULE
   gx_variant-report = sy-repid.
   CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
     EXPORTING
       i_save     = g_save
     CHANGING
       cs_variant = gx_variant
     EXCEPTIONS
       not_found  = 2.
   IF sy-subrc = 0.
     pm_banfn = gx_variant-variant.
   ENDIF.

START-OF-SELECTION.
   PERFORM data_retrivel.
   PERFORM build_fieldcatalog.
   PERFORM display_alv_report.

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*

FORM build_fieldcatalog.

   fieldcatalog-fieldname = 'IDNRK'.
   fieldcatalog-col_pos   = 1.
   fieldcatalog-seltext_m = 'Mat.estándar'.
   fieldcatalog-outputlen   = 18.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'MAKTX'.
   fieldcatalog-col_pos   = 2.
   fieldcatalog-seltext_m = 'Descripción'.
   fieldcatalog-outputlen   = 30.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZMOLDE'.
   fieldcatalog-col_pos   = 3.
   fieldcatalog-seltext_m = 'Molde'.
   fieldcatalog-outputlen   = 15.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZPLANO'.
   fieldcatalog-col_pos   = 4.
   fieldcatalog-seltext_m = 'Plano'.
   fieldcatalog-outputlen   = 20.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZVERPLANO'.
   fieldcatalog-col_pos   = 5.
   fieldcatalog-seltext_m = 'Versión plano'.
   fieldcatalog-outputlen   = 10.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZESPECIFICACION'.
   fieldcatalog-col_pos   = 6.
   fieldcatalog-seltext_m = 'Especificación'.
   fieldcatalog-outputlen   = 20.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZVERESPECIFICACION'.
   fieldcatalog-col_pos   = 7.
   fieldcatalog-seltext_m = 'Ver.especific.'.
   fieldcatalog-outputlen   = 10.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'LABST'.
   fieldcatalog-col_pos   = 8.
   fieldcatalog-seltext_m = 'Stck.alm.1000'.
   fieldcatalog-outputlen   = 13.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

ENDFORM.                    "BUILD_FIELDCATALOG

*&---------------------------------------------------------------------*
*&      Form  HANDLE_DOUBLE_CLICK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_ROW  text
*      -->P_E_COLUMN  text
*      -->P_ES_ROW_NO  text
*----------------------------------------------------------------------*
FORM handle_double_click  USING i_row     TYPE lvc_s_row
                                 i_column  TYPE lvc_s_col
                                 is_row_no TYPE lvc_s_roid.

   DATA itab02    TYPE lnalv_type.

   READ TABLE itab01 INTO itab02 INDEX is_row_no-row_id .
   IF sy-subrc = 0 AND ( i_column-fieldname = 'IDNRK' OR
                         i_column-fieldname = 'MAKTX' ).
     SET PARAMETER ID 'MAT' FIELD itab02-idnrk.
     SET PARAMETER ID 'WRK' FIELD '1000'.
     CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.
   ENDIF .

ENDFORM.



Regards.

Hi,

I'm trying to insert a doble click function, in an ALV position, to acces to a specific transaction but i cannot achieve it. The system do a dump when i doble click at the position.

¿Can you help me?

DUMP

CODE

REPORT zmmr0021.

*Define data

TABLES: eban.
TYPE-POOLS: slis.

*Define fields
DATA:     ls_matnr TYPE mara-matnr,
           ls_stlnr TYPE mast-stlnr.

*Define Work areas
DATA:     wa_eban TYPE eban,
           wa_mast TYPE mast,
           wa_mara TYPE mara,
           wa_makt TYPE makt,
           wa_mard TYPE mard,
           wa_stpo TYPE stpo.

*Define data types for itab lines
TYPES: BEGIN OF lnalv_type,
         idnrk               TYPE stpo-idnrk,
         maktx               TYPE makt-maktx,
         zzmolde             TYPE mara-zzmolde,
         zzplano             TYPE mara-zzplano,
         zzverplano          TYPE mara-zzverplano,
         zzespecificacion    TYPE mara-zzespecificacion,
         zzverespecificacion TYPE mara-zzverespecificacion,
         labst               TYPE i,

   END OF lnalv_type.

*Define data types for itabs
TYPES itab01_type TYPE STANDARD TABLE OF lnalv_type.

*Define itab without header line
DATA itab01 TYPE itab01_type.

*Define work areas for itabs
DATA wa_itab01 TYPE lnalv_type.


DATA: fieldcatalog  TYPE slis_t_fieldcat_alv WITH HEADER LINE,
       gd_layout     TYPE slis_layout_alv,
       gd_repid      LIKE sy-repid,
       g_save        TYPE c VALUE 'X',
       g_variant     TYPE disvariant,
       gx_variant    TYPE disvariant,
       g_exit        TYPE c,
       ispfli        TYPE TABLE OF spfli.

INITIALIZATION.

**SELECTION SCREEN DETAILS
   SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002 .
   PARAMETERS: pm_banfn TYPE eban-banfn.
   SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.

*CHECK VALUES FOR SOLPED
   SELECT SINGLE * FROM eban INTO wa_eban WHERE banfn = pm_banfn.
   IF sy-subrc NE 0.
     MESSAGE text-001 TYPE 'S' DISPLAY LIKE 'E'.
     EXIT.
   ENDIF.

*ALV FUNCTION MODULE
   gx_variant-report = sy-repid.
   CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
     EXPORTING
       i_save     = g_save
     CHANGING
       cs_variant = gx_variant
     EXCEPTIONS
       not_found  = 2.
   IF sy-subrc = 0.
     pm_banfn = gx_variant-variant.
   ENDIF.

START-OF-SELECTION.
   PERFORM data_retrivel.
   PERFORM build_fieldcatalog.
   PERFORM display_alv_report.

*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*

FORM build_fieldcatalog.

   fieldcatalog-fieldname = 'IDNRK'.
   fieldcatalog-col_pos   = 1.
   fieldcatalog-seltext_m = 'Mat.estándar'.
   fieldcatalog-outputlen   = 18.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'MAKTX'.
   fieldcatalog-col_pos   = 2.
   fieldcatalog-seltext_m = 'Descripción'.
   fieldcatalog-outputlen   = 30.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZMOLDE'.
   fieldcatalog-col_pos   = 3.
   fieldcatalog-seltext_m = 'Molde'.
   fieldcatalog-outputlen   = 15.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZPLANO'.
   fieldcatalog-col_pos   = 4.
   fieldcatalog-seltext_m = 'Plano'.
   fieldcatalog-outputlen   = 20.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZVERPLANO'.
   fieldcatalog-col_pos   = 5.
   fieldcatalog-seltext_m = 'Versión plano'.
   fieldcatalog-outputlen   = 10.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZESPECIFICACION'.
   fieldcatalog-col_pos   = 6.
   fieldcatalog-seltext_m = 'Especificación'.
   fieldcatalog-outputlen   = 20.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'ZZVERESPECIFICACION'.
   fieldcatalog-col_pos   = 7.
   fieldcatalog-seltext_m = 'Ver.especific.'.
   fieldcatalog-outputlen   = 10.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

   fieldcatalog-fieldname = 'LABST'.
   fieldcatalog-col_pos   = 8.
   fieldcatalog-seltext_m = 'Stck.alm.1000'.
   fieldcatalog-outputlen   = 13.
   APPEND fieldcatalog TO fieldcatalog.
   CLEAR fieldcatalog .

ENDFORM.                    "BUILD_FIELDCATALOG

*&---------------------------------------------------------------------*
*&      Form  HANDLE_DOUBLE_CLICK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_ROW  text
*      -->P_E_COLUMN  text
*      -->P_ES_ROW_NO  text
*----------------------------------------------------------------------*
FORM handle_double_click  USING i_row     TYPE lvc_s_row
                                 i_column  TYPE lvc_s_col
                                 is_row_no TYPE lvc_s_roid.

   DATA itab02    TYPE lnalv_type.

   READ TABLE itab01 INTO itab02 INDEX is_row_no-row_id .
   IF sy-subrc = 0 AND ( i_column-fieldname = 'IDNRK' OR
                         i_column-fieldname = 'MAKTX' ).
     SET PARAMETER ID 'MAT' FIELD itab02-idnrk.
     SET PARAMETER ID 'WRK' FIELD '1000'.
     CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.
   ENDIF .

ENDFORM.



Regards.

4 REPLIES 4
Read only

SharathYaralkattimath
Contributor
0 Likes
1,298

Make sure you have mentioned the correct name of subroutine,

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

       EXPORTING

         i_callback_program          = g_repid

         it_fieldcat                 = gt_fieldcat[]

         it_events                   = gt_events[]

         i_callback_user_command     = 'HANDLE_DOUBLE_CLICK"Form to execute

         i_save                      = 'A'

         is_variant                  = g_variant

       TABLES

         t_outtab                    = itab.

Read only

0 Likes
1,298

I've modified as you mentioned but different dump appears. The program needs one additional parameter but i don't know which.

  gd_repid = sy-repid.
   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
       i_callback_program       = gd_repid
       i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
*      i_callback_pf_status_set = 'PF_STATUS_SET'
       i_callback_user_command  = 'HANDLE_DOUBLE_CLICK'
       it_fieldcat              = fieldcatalog[]
       i_save                   = 'X'
       is_variant               = g_variant
     TABLES
       t_outtab                 = itab01
     EXCEPTIONS
       program_error            = 1
       OTHERS                   = 2.
   IF sy-subrc <> 0.




Read only

0 Likes
1,298

You should declare your subroutine like this:-


FORM HANDLE_DOUBLE_CLICK USING r_ucomm LIKE sy-ucomm

                         rs_selfield TYPE slis_selfield.

ENDFORM.

Read only

dunky
Active Participant
0 Likes
1,298

Sorry, but I've done a mistake. FM REUSE_ALV_GRID_DISPLAY is not an objetcs oriented FM, but FORM HANDLE_DOBLE_CLICK is.

I need a user command for non object oriented to insert in my program to allow call transactions.

Thanks.