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: 

calling ucomm in ALV_Grid

Former Member
0 Kudos

Hi experts,

I am trying to do some thing but I have some difficulties. I would appreciate if some one tells me how to achieve this.

I am trying to invoke the ucomm and CALL SELECTION-SCREEN 500 STARTING AT 10 10 WHEN the field 'CITYFROM' is pressed.

Could some body tells me what I need to do in my coding? Below is my coding. Thank you all in advance.

*&---------------------------------------------------------------------*
*& Report  ZSPFLI

REPORT  zspfli.

TYPE-POOLS: slis.
TABLES: sflight, spfli.

DATA: gt_sflight TYPE STANDARD TABLE OF sflight,
      gw_sflight TYPE sflight.

DATA: gt_spfli TYPE STANDARD TABLE OF spfli,
      gw_spfli TYPE spfli.

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001. " .
SELECTION-SCREEN SKIP.
PARAMETERS: p_carr LIKE spfli-carrid.
SELECTION-SCREEN SKIP.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF SCREEN 500 TITLE title
                                     AS WINDOW.
PARAMETERS name TYPE sy-uname.
SELECTION-SCREEN END OF SCREEN 500.
title = 'Input name'.
*CALL SELECTION-SCREEN 500 STARTING AT 10 10.

START-OF-SELECTION.

  PERFORM data_selection.

END-OF-SELECTION.

  PERFORM alv_output.
*&---------------------------------------------------------------------*
*&      Form  data_selection
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM data_selection .

  SELECT * FROM spfli INTO TABLE gt_spfli
            WHERE carrid = p_carr.
*            AND   connid = so_con.

ENDFORM.                    " data_selection
*&---------------------------------------------------------------------*
*&      Form  alv_output
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_output .

  DATA:
    l_variant          TYPE disvariant,
    l_str_layout       TYPE slis_layout_alv.

* Make column width as small as possible.
  l_str_layout-colwidth_optimize = 'X'.
* Give the name of the report so that the user can save individual
* configuration of the ALV-Grid Display
  l_variant-report = sy-repid.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
*   I_CALLBACK_PROGRAM                = ' '
*   I_CALLBACK_PF_STATUS_SET          = ' '
     i_callback_user_command           = 'USER_COMMAND'
*   I_CALLBACK_TOP_OF_PAGE            = ' '
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
     i_structure_name                  = 'SPFLI'
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE                      =
*   I_GRID_SETTINGS                   =
   is_layout                         = l_str_layout
*   IT_FIELDCAT                       =
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
   is_variant                        = l_variant
*   IT_EVENTS                         =
*   IT_EVENT_EXIT                     =
*   IS_PRINT                          =
*   IS_REPREP_ID                      =
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
    TABLES
      t_outtab                          = gt_spfli
   EXCEPTIONS
     program_error                     = 1
     OTHERS                            = 2
            .
  ENDFORM.                    " alv_output

*&---------------------------------------------------------------------*
*&      Form  user_command
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
                  rs_selfield   TYPE slis_selfield.

  DATA: lt_spfli TYPE spfli.

  CASE r_ucomm.
    WHEN '&IC1'.                       "Doppelklick
      READ TABLE gt_spfli INTO lt_spfli INDEX rs_selfield-tabindex.
      IF sy-subrc = 0.

        CASE rs_selfield-fieldname.

          WHEN 'CITYFROM'.
            CALL SELECTION-SCREEN 500 STARTING AT 10 10.
        ENDCASE.
      ENDIF.
  ENDCASE.

ENDFORM.                    "user_command

1 ACCEPTED SOLUTION

Former Member
0 Kudos

I have done some changes in ur code (marked in bold)

REPORT ZSPFLI.

&----


*& Report ZSPFLI

TYPE-POOLS: slis.

TABLES: sflight, spfli.

DATA: gt_sflight TYPE STANDARD TABLE OF sflight,

gw_sflight TYPE sflight.

DATA: gt_spfli TYPE STANDARD TABLE OF spfli,

gw_spfli TYPE spfli.

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001. " .

SELECTION-SCREEN SKIP.

PARAMETERS: p_carr LIKE spfli-carrid.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF SCREEN 500 TITLE title

AS WINDOW.

PARAMETERS name TYPE sy-uname.

SELECTION-SCREEN END OF SCREEN 500.

title = 'Input name'.

*CALL SELECTION-SCREEN 500 STARTING AT 10 10.

START-OF-SELECTION.

PERFORM data_selection.

END-OF-SELECTION.

PERFORM alv_output.

&----


*& Form data_selection

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data_selection .

SELECT * FROM spfli INTO TABLE gt_spfli

WHERE carrid = p_carr.

  • AND connid = so_con.

ENDFORM. " data_selection

&----


*& Form alv_output

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM alv_output .

DATA:

l_variant TYPE disvariant,

l_str_layout TYPE slis_layout_alv,

l_syrepid type syrepid.

l_syrepid = sy-repid.

  • Make column width as small as possible.

l_str_layout-colwidth_optimize = 'X'.

  • Give the name of the report so that the user can save individual

  • configuration of the ALV-Grid Display

l_variant-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = l_syrepid

  • I_CALLBACK_PF_STATUS_SET = ' '

i_callback_user_command = 'USER_COMMAND'

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

i_structure_name = 'SPFLI'

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

is_layout = l_str_layout

  • IT_FIELDCAT =

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

is_variant = l_variant

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = gt_spfli

EXCEPTIONS

program_error = 1

OTHERS = 2

.

ENDFORM. " alv_output

&----


*& Form user_command

&----


  • text

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

DATA: lt_spfli TYPE spfli.

CASE r_ucomm.

WHEN '&IC1'. "Doppelklick

READ TABLE gt_spfli INTO lt_spfli INDEX rs_selfield-tabindex.

IF sy-subrc = 0.

CASE rs_selfield-fieldname.

WHEN 'CITYFROM'.

CALL SELECTION-SCREEN 500 STARTING AT 10 10.

ENDCASE.

ENDIF.

ENDCASE.

ENDFORM. "user_command

3 REPLIES 3

former_member156446
Active Contributor
0 Kudos

Hi looks like you are not maintaining any pf status for ur field or the button CITY* , you need create a PF status and assign a function code to that.. and then write your condition on sy-ucomm.

Former Member
0 Kudos

I have done some changes in ur code (marked in bold)

REPORT ZSPFLI.

&----


*& Report ZSPFLI

TYPE-POOLS: slis.

TABLES: sflight, spfli.

DATA: gt_sflight TYPE STANDARD TABLE OF sflight,

gw_sflight TYPE sflight.

DATA: gt_spfli TYPE STANDARD TABLE OF spfli,

gw_spfli TYPE spfli.

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001. " .

SELECTION-SCREEN SKIP.

PARAMETERS: p_carr LIKE spfli-carrid.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF SCREEN 500 TITLE title

AS WINDOW.

PARAMETERS name TYPE sy-uname.

SELECTION-SCREEN END OF SCREEN 500.

title = 'Input name'.

*CALL SELECTION-SCREEN 500 STARTING AT 10 10.

START-OF-SELECTION.

PERFORM data_selection.

END-OF-SELECTION.

PERFORM alv_output.

&----


*& Form data_selection

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data_selection .

SELECT * FROM spfli INTO TABLE gt_spfli

WHERE carrid = p_carr.

  • AND connid = so_con.

ENDFORM. " data_selection

&----


*& Form alv_output

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM alv_output .

DATA:

l_variant TYPE disvariant,

l_str_layout TYPE slis_layout_alv,

l_syrepid type syrepid.

l_syrepid = sy-repid.

  • Make column width as small as possible.

l_str_layout-colwidth_optimize = 'X'.

  • Give the name of the report so that the user can save individual

  • configuration of the ALV-Grid Display

l_variant-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = l_syrepid

  • I_CALLBACK_PF_STATUS_SET = ' '

i_callback_user_command = 'USER_COMMAND'

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

i_structure_name = 'SPFLI'

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

is_layout = l_str_layout

  • IT_FIELDCAT =

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

is_variant = l_variant

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = gt_spfli

EXCEPTIONS

program_error = 1

OTHERS = 2

.

ENDFORM. " alv_output

&----


*& Form user_command

&----


  • text

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

DATA: lt_spfli TYPE spfli.

CASE r_ucomm.

WHEN '&IC1'. "Doppelklick

READ TABLE gt_spfli INTO lt_spfli INDEX rs_selfield-tabindex.

IF sy-subrc = 0.

CASE rs_selfield-fieldname.

WHEN 'CITYFROM'.

CALL SELECTION-SCREEN 500 STARTING AT 10 10.

ENDCASE.

ENDIF.

ENDCASE.

ENDFORM. "user_command

0 Kudos

Thank you so much Joyjit Ghosh. It works well. Points have been awarded to you.

Regards

Nadin