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

Refresh Button in ALV OutPut

Former Member
17,767

Hi all,

i want to add Refresh button in ALV Output with executable report is it possible? How?

1 ACCEPTED SOLUTION
Read only

Former Member
14,815

Dear all

i am using executable programe not module pool programming,i want this in executable programe alv output

What i need to change in this FM ????

Hi all,

i want to add Refresh button in ALV Output with executable report is it possible? How?

28 REPLIES 28
Read only

shah_viraj
Active Participant
14,815

Hi Mahipalsinh,

Yes it is possible. You may put one refresh button in executable report by creating GUI status.

Display the ALV Grid using class CL_GUI_ALV_GRID. On click of the refresh button call the method REFRESH_TABLE_DISPLAY of class CL_GUI_ALV_GRID.

Read only

0 Likes
14,815

Hi viraj

Do you have any example for this if yes then please give me..

Thanks,

Mahipalsinh

Read only

Former Member
0 Likes
14,815


Hi,

If you are using FM for your ALV,

You can copy the sap std status from program SAPLZENG_DATA_SCREEN and status as STANDARD_FULLSCREEN using Tcode SE41 By status oiption on aaplication tool Bar.

SET PF-STATUS 'STANDARD'.
.

Read only

0 Likes
14,815

Hi Pravin,

Please explain more ..

how can i put this button and how i can code for this?

Read only

0 Likes
14,815

Hi please refer BCALV_GRID_05 programme.

Read only

yogendra_bhaskar
Contributor
0 Likes
14,815

hi Mahipalsinh ,

Use :

DATA ref1 TYPE REF TO cl_gui_alv_grid.

   CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

     IMPORTING

       e_grid = ref1.

   CALL METHOD ref1->check_changed_data.

*

   rs_selfield-refresh = 'X'.


Regards,


Yogendra Bhaskar

Read only

0 Likes
14,815

where i have to use this code???

Read only

0 Likes
14,815

Hi Mahipalsinh ,

You have to include this in form   USER_OC .

or you can do one thing , create a pushbutton on status bar , with function code REFRESH

and code this in USER_OC

FORM USER_OC  USING R_UCOMM LIKE SY-UCOMM

                            RS_SELFIELD TYPE SLIS_SELFIELD.

   DATA REF1 TYPE REF TO CL_GUI_ALV_GRID.

   CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

     IMPORTING

       E_GRID = REF1.

   CALL METHOD REF1->CHECK_CHANGED_DATA.

*

   RS_SELFIELD-REFRESH = 'X'.

*

*  ENDIF.

   IF R_UCOMM EQ 'REFRESH'.

*

      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

       IMPORTING

         E_GRID = REF1.

     CALL METHOD REF1->CHECK_CHANGED_DATA.

*

     RS_SELFIELD-REFRESH = 'X'.

*

   ENDIF.

ENDFORM.

Regards

Yogendra Bhaskar

Read only

0 Likes
14,815

How can i create this push button?

Read only

Former Member
0 Likes
14,815


How si your ALV is it using FM or OOPs?

Read only

0 Likes
14,815

FM

Read only

RaymondGiuseppi
Active Contributor
0 Likes
14,815

Did you use the search tool ?

There are already some samples at scn with this refresh option.


Regards,

Raymond

Read only

Former Member
14,816

Dear all

i am using executable programe not module pool programming,i want this in executable programe alv output

What i need to change in this FM ????

Read only

0 Likes
14,815


Hi Mahipalsinh,

First you create the Status from SE41 transaction as shown in belwo snap shot.

Go to Tcose SE41--> Clcik on Status Icon on application tool bar and provide the From program and status name and mention your program name and staus name. Status name can be anything and click on Copy button.

It will lead to next screen and click on Copy

Clcik on change button

Activate the by clicking on Activate button. Here you can see all the standard Icon are copied. If you do not want any options you can remove it.

Now in your ALV program just call bellow code. You can see all the icons in report output including your refresh icon.

 

FORM pf_status_set USING pt_extab TYPE slis_t_extab.
SET PF-STATUS 'YPROGRAM'.
ENDFORM.

Cheers,

Pravin

Read only

0 Likes
14,815

Hi pravin

where i have write this code ?

Means at which place i have to put this code..where i have to perform this form ???

Read only

0 Likes
14,815

Hi,

You have to just  write that form routine  at any place in ALV logic. I.e. YOu can call it after building the fieldcatlog or after the /Header/Footer.

This will not have PERFORM. Just form will work.

Hope this will resolve your issue. Let me know if you still have any issue.

Cheers,

Pravin

Read only

0 Likes
14,815

Please give me some example code because without perform how can i use this form?

Read only

0 Likes
14,815


Hi Mahipalsinh,

Please find the example code as below and let me know if you have any issue.

REPORT yalv_report NO STANDARD PAGE HEADING LINE-SIZE 255
                          MESSAGE-ID zz.

TYPE-POOLS: slis.
**Material BAPI Header
TYPES BEGIN OF type_head.
        INCLUDE STRUCTURE bapimathead.
TYPES END OF type_head.
**Material BAPI for Extension
TYPES BEGIN OF type_extin.
        INCLUDE STRUCTURE bapiparex.
TYPES END OF type_extin.
**Material BAPI for Extension Changes
TYPES BEGIN OF type_extinx.
        INCLUDE STRUCTURE bapiparexx.
TYPES END OF type_extinx.
TYPES:BEGIN OF type_output,
         zzmatnr         TYPE matnr,
         zzchangetype    TYPE zzdechangetype,
         zzeffectivedate TYPE zzdeeffctdat,
         zzstatus        TYPE zzdestatus,
         zzversion       TYPE zzversion ,
         zzuomp          TYPE zzuomp,
         zzpck_uqty      TYPE zzpck_uqty,
         zzshp_uqty      TYPE zzshp_uqty,
         zzwhr_uqty      TYPE zzwhr_uqty ,
         zzpck_kuty      TYPE zzpck_kuty,
         zzshp_kuty      TYPE zzshp_kuty,
         message         TYPE char100,
      END OF type_output.

TYPES:BEGIN OF ty_qty,
         zzmatnr         TYPE matnr,
         zzchangetype    TYPE zzdechangetype,
         zzeffectivedate TYPE zzdeeffctdat,
         zzstatus        TYPE zzdestatus,
         zzversion       TYPE zzversion ,
         zzuomp          TYPE zzuomp  ,
         zzpck_uqty      TYPE zzpck_uqty  ,
         zzshp_uqty      TYPE zzshp_uqty,
         zzwhr_uqty      TYPE zzwhr_uqty  ,
         zzpck_kuty      TYPE zzpck_kuty,
         zzshp_kuty      TYPE zzshp_kuty,
         message         TYPE char100,
      END OF ty_qty.

***---Internal Tables
DATA:i_qty              TYPE TABLE OF ty_qty,
     i_extin            TYPE STANDARD TABLE OF type_extin,
     i_extinx           TYPE STANDARD TABLE OF type_extinx,
     i_return           TYPE STANDARD TABLE OF bapiret2
                             WITH HEADER LINE,
     i_out              TYPE STANDARD TABLE OF type_output,
     i_fieldcat         TYPE slis_t_fieldcat_alv,
     i_layout           TYPE slis_layout_alv,
     i_events           TYPE slis_t_event,
     i_list_top_of_page TYPE slis_t_listheader.
***---Work Area.
DATA:wa_headerdata      TYPE bapimathead,
     wa_qty             TYPE ty_qty,
     wa_extin           TYPE type_extin,
     wa_extinx          TYPE bapiparex,
     wa_message         TYPE bapiret2,
     wa_errtxt          TYPE t100-text,
     wa_out             TYPE type_output,
     wf_zzmatnr         TYPE zmm_chg_req-zzmatnr,
     wa_print           TYPE slis_print_alv,
     wa_fieldcat        TYPE slis_fieldcat_alv,
     wa_variant         TYPE disvariant.

CONSTANTS:c_x           TYPE char1  VALUE 'X',
          c_s           TYPE char1  VALUE 'S',
          c_m           TYPE char1  VALUE 'M',
          c_h           TYPE char1  VALUE 'H',
          c_5           TYPE char1  VALUE '5',
          c_a           TYPE char1  VALUE 'A',
          c_zfrt        TYPE char4  VALUE 'ZFRT',
          c_pack        TYPE char9  VALUE 'PACKAGING',
          c_zzmatnr     TYPE char7  VALUE 'ZZMATNR',
          c_zzversion   TYPE char9  VALUE 'ZZVERSION',
          c_effect      TYPE char15 VALUE 'ZZEFFECTIVEDATE',
          c_zzuomp      TYPE char6  VALUE 'ZZUOMP',
          c_zzpck_uqty  TYPE char10 VALUE 'ZZPCK_UQTY',
          c_zzshp_uqty  TYPE char10 VALUE 'ZZSHP_UQTY',
          c_zzwhr_uqty  TYPE char10 VALUE 'ZZWHR_UQTY',
          c_zzpck_kuty  TYPE char10 VALUE 'ZZPCK_KUTY',
          c_zzshp_kuty  TYPE char10 VALUE 'ZZSHP_KUTY',
          c_message     TYPE char7  VALUE 'MESSAGE',
          c_bid         TYPE bds_typeid VALUE 'TEST_LOGO'.
***--Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
SELECT-OPTIONS:s_matnr FOR wf_zzmatnr.
PARAMETERS    :p_date  TYPE sy-datum .
SELECTION-SCREEN END OF BLOCK b1.

INITIALIZATION.
  p_date = sy-datum.

START-OF-SELECTION.
  PERFORM get_data.

END-OF-SELECTION.
  PERFORM update_mara.
  PERFORM alv_grid_display.

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_data .

  SELECT a~zzmatnr
         a~zzchangetype
         a~zzeffectivedate
         a~zzstatus
         b~zzversion
         b~zzuomp
         b~zzpck_uqty
         b~zzshp_uqty
         b~zzwhr_uqty
         b~zzpck_kuty
         b~zzshp_kuty
    INTO TABLE i_qty
    FROM      ( zmm_chg_req AS a
    INNER JOIN zvpackageqty AS b
    ON  a~zzmatnr           EQ b~zzmatnr
    AND a~zzeffectivedate   EQ  b~zzeff_dt )
    WHERE a~zzmatnr         IN s_matnr
    AND a~zzchangetype      EQ c_pack
    AND a~zzstatus          EQ c_a
    AND a~zzeffectivedate   LE sy-datum.

ENDFORM.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  UPDATE_MARA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM update_mara .
  DATA: lwf_qty TYPE i.
  LOOP AT i_qty INTO wa_qty.

*  Populate the Header data
    wa_headerdata-material   = wa_qty-zzmatnr.
    wa_headerdata-ind_sector = c_m.
    wa_headerdata-matl_type  = c_zfrt.
    wa_headerdata-basic_view = c_x.

    wa_extin-structure          = 'BAPI_TE_MARA'.
    wa_extin-valuepart1+0(18)   = wa_qty-zzmatnr.
    wa_extin-valuepart1+18(108) = space.
    CLEAR lwf_qty.
    lwf_qty = wa_qty-zzwhr_uqty .
    wa_extin-valuepart1+108(10) = lwf_qty .
    wa_extin-valuepart1+118(3)  = wa_qty-zzpck_kuty .
    CLEAR lwf_qty.
    lwf_qty = wa_qty-zzpck_uqty.
    wa_extin-valuepart1+121(10) = lwf_qty .
    wa_extin-valuepart1+131(3)  = wa_qty-zzshp_kuty.
    CLEAR lwf_qty.
    lwf_qty = wa_qty-zzshp_uqty.
    wa_extin-valuepart1+134(10) = lwf_qty.
    APPEND wa_extin TO i_extin.

    wa_extinx-structure          = 'BAPI_TE_MARAX'.
    wa_extinx-valuepart1+0(18)   = wa_qty-zzmatnr.
    wa_extinx-valuepart1+18(21)  = space.
    wa_extinx-valuepart1+21(1)   = c_x.
    wa_extinx-valuepart1+22(1)   = c_x.
    wa_extinx-valuepart1+23(1)   = c_x.
    wa_extinx-valuepart1+24(1)   = c_x.
    wa_extinx-valuepart1+25(1)   = c_x.
    APPEND wa_extinx TO i_extinx.

** Save the quantity fileds to MARA table
    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata       = wa_headerdata
      IMPORTING
        return         = wa_message
      TABLES
        returnmessages = i_return
        extensionin    = i_extin
        extensioninx   = i_extinx.

    IF wa_message-type = c_s.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = c_x.
    ENDIF.
    CALL FUNCTION 'MESSAGE_TEXT_BUILD'
      EXPORTING
        msgid               = wa_message-id
        msgnr               = wa_message-number
        msgv1               = wa_message-message_v1
        msgv2               = wa_message-message_v2
        msgv3               = wa_message-message_v3
        msgv4               = wa_message-message_v4
      IMPORTING
        message_text_output = wa_errtxt
      EXCEPTIONS
        OTHERS              = 1.
    wa_qty-message = wa_errtxt.
** Fill final output table.
    MOVE-CORRESPONDING wa_qty TO wa_out.
    APPEND wa_out TO i_out.
    CLEAR: wa_out, wa_qty,wa_extinx,wa_extin.
    REFRESH: i_extinx,i_extin.
  ENDLOOP.
    REFRESH i_qty.
ENDFORM.                    " UPDATE_MARA
*&---------------------------------------------------------------------*
*&      Form  ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM alv_grid_display .
  PERFORM build_fieldcatlog.
  PERFORM get_event_layout.
  PERFORM header_section.
  PERFORM call_alv_grid.
ENDFORM.                    " ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATLOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM build_fieldcatlog .
  DATA:lf_column TYPE i VALUE 1.

  CLEAR wa_fieldcat.
  wa_fieldcat-fieldname = c_zzmatnr.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-001.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_zzversion.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-002.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_effect .
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-003.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_zzuomp.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-004.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_zzpck_uqty.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-005.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_zzshp_uqty.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-006.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_zzwhr_uqty.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-011.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_zzpck_kuty.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-012.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_zzshp_kuty.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-013.
  APPEND wa_fieldcat TO i_fieldcat.

  CLEAR wa_fieldcat.
  ADD 1 TO lf_column.
  wa_fieldcat-fieldname = c_message.
  wa_fieldcat-col_pos   = lf_column.
  wa_fieldcat-seltext_l = text-007.
  APPEND wa_fieldcat TO i_fieldcat.

ENDFORM.                    " BUILD_FIELDCATLOG
*&---------------------------------------------------------------------*
*&      Form  GET_EVENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_event_layout .

  DATA: lf_event              TYPE slis_alv_event,
        lf_form_top_of_page   TYPE slis_formname VALUE 'TOP_OF_PAGE',
        lf_form_end_of_list   TYPE slis_formname VALUE 'END_OF_LIST',
        lf_form_pf_status_set TYPE slis_formname VALUE 'PF_STATUS_SET'.

  CLEAR :i_events[], lf_event.

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      i_list_type     = 0
    IMPORTING
      et_events       = i_events
    EXCEPTIONS
      list_type_wrong = 1
      OTHERS          = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  READ TABLE i_events WITH KEY name = slis_ev_top_of_page
                          INTO lf_event.
  IF sy-subrc = 0.
    MOVE lf_form_top_of_page TO lf_event-form.
    APPEND lf_event TO i_events.
  ENDIF.

  CLEAR lf_event.
  READ TABLE i_events WITH KEY name =  slis_ev_pf_status_set
                           INTO lf_event.
  IF sy-subrc = 0.
    MOVE lf_form_pf_status_set TO lf_event-form.
    APPEND lf_event TO i_events.
  ENDIF.

  CLEAR lf_event.
  READ TABLE i_events WITH KEY name =  slis_ev_end_of_list
                          INTO lf_event.
  IF sy-subrc = 0.
    MOVE lf_form_end_of_list TO lf_event-form.
    APPEND lf_event TO i_events.
  ENDIF.
**  set the layout
  i_layout-zebra             = c_x.
  i_layout-colwidth_optimize = c_x.
  i_layout-no_input          = c_x.
  i_layout-get_selinfos      = c_x.
ENDFORM.                    " GET_EVENT
*&---------------------------------------------------------------------*
*&      Form  HEADER_SECTION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM header_section .

  DATA: wa_line TYPE slis_listheader.
  DATA: lf_time_stamp TYPE timestamp,
        lf_tzone TYPE usr02-tzone,
        lf_date TYPE sy-datum,
        lf_time TYPE sy-uzeit.

* Time Stamp
  GET TIME STAMP FIELD lf_time_stamp.
  SELECT SINGLE tzone INTO lf_tzone
    FROM usr02
    WHERE bname = sy-uname.
  IF sy-subrc <> 0.
  ELSE.
    CONVERT TIME STAMP lf_time_stamp TIME ZONE lf_tzone INTO
            DATE lf_date TIME lf_time.
  ENDIF.

  CLEAR wa_line.
  wa_line-typ  = c_h.
  wa_line-info = text-008.
  APPEND wa_line TO i_list_top_of_page.

  CLEAR wa_line.
  wa_line-typ  = c_s.
  wa_line-key = text-009.
  wa_line-info = sy-cprog.
  APPEND wa_line TO i_list_top_of_page.

  CLEAR wa_line.
  wa_line-typ  = c_s.
  wa_line-info = text-010.
  APPEND wa_line TO i_list_top_of_page.

  wa_line-typ  = c_s.
  wa_line-key  = text-014.
  WRITE: sy-sysid TO wa_line-info(5),
         '('      TO wa_line-info+5(1),
         sy-mandt TO wa_line-info+6(3),
         ')--'    TO wa_line-info+9(3),
         sy-uname TO wa_line-info+12(12),
         '--'     TO wa_line-info+24(2),
         lf_date MM/DD/YYYY TO wa_line-info+26(10),
         '('     TO wa_line-info+36(1),
         lf_time TO wa_line-info+37(8),
         ')'     TO wa_line-info+45.
  CONDENSE wa_line-info.
  APPEND wa_line TO i_list_top_of_page.
ENDFORM.                    " HEADER_SECTION

*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM top_of_page.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      i_logo             = 'TEST_LOGO'
      it_list_commentary = i_list_top_of_page.
ENDFORM.                    "TOP_OF_PAGE
*&--------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Form  END_OF_LIST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM end_of_list.
  DATA:lt_end_of_page TYPE slis_t_listheader,
       ls_line TYPE slis_listheader.

  CLEAR ls_line.
  ls_line-typ  = c_s.
  ls_line-key  =  text-015.
  APPEND ls_line TO lt_end_of_page.

  CLEAR ls_line.
  ls_line-typ  = c_s.
  ls_line-key  =  text-016.
  IF NOT s_matnr-high IS INITIAL.
    CONCATENATE text-017 s_matnr-low text-018 s_matnr-high INTO
    ls_line-info SEPARATED BY space .
  ELSE.
    ls_line-info = s_matnr-low.
  ENDIF.
  APPEND ls_line TO lt_end_of_page.

  CLEAR ls_line.
  ls_line-typ  = c_s.
  ls_line-key  =  text-019.
  ls_line-info =   p_date.
  APPEND ls_line TO lt_end_of_page.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = lt_end_of_page
      i_end_of_list_grid = c_x.
ENDFORM.                    "end_of_list
*&      Form  pf_status_set
**&--------------------------------------------------------------------*
FORM pf_status_set USING pt_extab TYPE slis_t_extab.
  SET PF-STATUS 'TEST_STATUS'.
ENDFORM.                               "PF_STATUS_SET
*&---------------------------------------------------------------------*
*&      Form  CALL_ALV_GRID
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM call_alv_grid .
  DATA: i_grid_settings TYPE lvc_s_glay.

  i_grid_settings-coll_top_p = c_5.
  i_grid_settings-coll_end_l = c_5.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_bypassing_buffer = c_x
      i_buffer_active    = c_x
      i_background_id    = c_bid
      i_callback_program = sy-repid
      i_grid_settings    = i_grid_settings
      is_layout          = i_layout
      it_fieldcat        = i_fieldcat[]
      is_print           = wa_print
      i_save             = 'A'
      is_variant         = wa_variant
      it_events          = i_events[]
    TABLES
      t_outtab           = i_out
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFORM.                    " CALL_ALV_GRID

Read only

0 Likes
14,815

Hi Pravin,

Thanks for your help.

I have done it but this refresh button is not working it is displayed on ALV but when i change it will not effect.

My requirment is when Report comes,click on material change its status and material is removed from ALV but it is remaining as it is.

Thanks,

Mahipal

Read only

0 Likes
14,815


Hi Mahipalsinh,

To work the refresh functionality you need to write use SELFIELD in youruser command form routine. Do as shown below.

 

FORM user_command USING v_fcode LIKE sy-ucomm
                                            v_selfield
TYPE slis_selfield.

 

 

IF  v_fcode = c_refresh.  " c_refresh is Function code

     v_selfield-refresh = 'X'.

ENDIF.

ENDFORM.

Read only

0 Likes
14,815

Hi Pravin,

When i am debuging on Refresh it will not come to FORM user_command.

You can check using attached file.

REPORT zmmml_2p. TABLES: zmmm_liste_1v , zmmm_class_1v. CONSTANTS: c_mdm(3)  VALUE 'MDM'. DATA it TYPE TABLE OF zmmm_liste_1s WITH HEADER LINE. FIELD-SYMBOLSTYPE zmmm_liste_1s . DATA: lf_objecttype LIKE bapi_doc_drad-objecttype,       lf_objectkey LIKE bapi_doc_drad-objectkey. DATA: lt_documentlist TYPE TABLE OF bapi_doc_keys ." WITH HEADER LINE. FIELD-SYMBOLSlike LINE OF lt_documentlist . DATA: okay. data:   gs_variant  type disvariant. DATA:i_layout          TYPE slis_layout_alv,     i_events          TYPE slis_t_event,     i_list_top_of_page TYPE slis_t_listheader. SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-101. SELECT-OPTIONS  so_user FOR sy-uname    MATCHCODE OBJECT user_comp . SELECT-OPTIONS so_matnr FOR zmmm_liste_1v-matnr. SELECT-OPTIONS so_mstae FOR zmmm_liste_1v-mstae. SELECT-OPTIONS so_mstde FOR zmmm_liste_1v-mstde NO-EXTENSION . SELECTION-SCREEN ULINE. SELECT-OPTIONS  so_werks FOR zmmm_liste_1v-werks     MEMORY ID wrk     NO-EXTENSION NO INTERVALS . SELECT-OPTIONS so_mmsta FOR zmmm_liste_1v-mmsta . SELECT-OPTIONS so_mmstd FOR zmmm_liste_1v-mmstd NO-EXTENSION . SELECT-OPTIONS so_beskz FOR zmmm_liste_1v-beskz . SELECT-OPTIONS so_ekgrp FOR zmmm_liste_1v-ekgrp . SELECT-OPTIONS so_dispo FOR zmmm_liste_1v-dispo . SELECT-OPTIONS so_zeifo FOR zmmm_liste_1v-zeifo MATCHCODE OBJECT h_t178 . PARAMETERS sprache TYPE spras DEFAULT sy-langu . SELECTION-SCREEN ULINE. parameters:   p_vari  type disvariant-variant. SELECTION-SCREEN END OF BLOCK a. DATA:i_out              TYPE STANDARD TABLE OF Mara,     i_fieldcat        TYPE slis_t_fieldcat_alv. DATA:wa_out            TYPE mara,     wa_print          TYPE slis_print_alv,     wa_fieldcat        TYPE slis_fieldcat_alv,     wa_variant        TYPE disvariant. CONSTANTS:c_x          TYPE char1  VALUE 'X',           c_s          TYPE char1  VALUE 'S',           c_m          TYPE char1  VALUE 'M',           c_h          TYPE char1  VALUE 'H',           c_5          TYPE char1  VALUE '5',           c_a          TYPE char1  VALUE 'A',           c_message    TYPE char7  VALUE 'MESSAGE',           c_bid        TYPE bds_typeid VALUE 'TEST_LOGO'. DATA: it_cat TYPE slis_t_fieldcat_alv,         h_stru LIKE dd02l-tabname,         h_prog LIKE sy-repid.   FIELD-SYMBOLSTYPE slis_fieldcat_alv.   PERFORM status USING text-005.   MOVE:  'ZMMM_LISTE_1S' TO h_stru, sy-repid TO h_prog. *=== Main ============================================================== INITIALIZATION. *=======================================================================   MOVE: 'EQ' TO so_user-option, 'I' TO so_user-sign,         sy-uname TO so_user-low.   APPEND so_user.   PERFORM set_mstae.   PERFORM set_mmstd. *Begin : Ainmup 28.03.2014  I-1311-064\01   at selection-screen on value-request for p_vari.   PERFORM set_layout. *End: Ainmup 28.03.2014  I-1311-064\01 AT SELECTION-SCREEN. *======================================================================= START-OF-SELECTION. *=======================================================================   PERFORM get_data CHANGING okay. "Daten selektieren   CHECK okay = 'X'. *  PERFORM out_data. END-OF-SELECTION.     PERFORM alv_grid_display. TOP-OF-PAGE. *====================================================================== *&---------------------------------------------------------------------* *&      FORMS *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *&      Form  Status (Textanzeige) *&---------------------------------------------------------------------* FORM status USING text.   CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'     EXPORTING       text = text. *    EXCEPTIONS *      OTHERS = 1. ENDFORM.                    "status *---------------------------------------------------------------------* *      FORM set_mstae                                                * *---------------------------------------------------------------------* FORM set_mstae.   IF so_user-low = c_mdm.     REFRESH so_mstae.     MOVE 'IEQ43' TO so_mstae.     APPEND so_mstae.   ELSE.     IF so_matnr IS INITIAL.       READ TABLE so_mstae INDEX 1.       CHECK sy-subrc > 0. *    so_mstae ist leer       MOVE 'IBT4049' TO so_mstae.       APPEND so_mstae.       MOVE 'IEQ95' TO so_mstae.       APPEND so_mstae.     ENDIF.   ENDIF. ENDFORM.                    "set_mstae *&--------------------------------------------------------------------* *&      Form  GET_DATA *&--------------------------------------------------------------------* *      Mara, Marc und MAKT lesen *---------------------------------------------------------------------* FORM get_data CHANGING p_okay. "Daten selektieren   TYPES t_makt LIKE makt.   DATA it_makt TYPE TABLE OF t_makt WITH HEADER LINE.   REFRESH it.   PERFORM status USING text-002.   IF so_user-low = c_mdm.     SELECT * FROM zmmm_liste_1v INTO CORRESPONDING FIELDS OF TABLE it     WHERE MSTAE IN so_mstae .   ELSE.     SELECT * FROM zmmm_liste_1v INTO CORRESPONDING FIELDS OF TABLE it     WHERE matnr IN so_matnr AND spras = sprache     AND ( ( mstae IN so_mstae AND mstde IN so_mstde )       OR ( mmsta IN so_mmsta AND mmstd IN so_mmstd ) )     AND werks IN so_werks AND beskz IN so_beskz     AND ekgrp IN so_ekgrp AND dispo IN so_dispo AND zeifo IN so_zeifo     AND ernam IN so_user.   ENDIF.   READ TABLE it INDEX 1.   IF sy-subrc > 0.     MESSAGE i010(zmmm).     CLEAR p_okay.   ELSE.     PERFORM status USING text-003.     p_okay = 'X'.     SELECT * FROM makt INTO TABLE it_makt     FOR ALL ENTRIES IN it WHERE matnr = it-zz_rfmat AND spras = sprache.     IF sy-dbcnt > 0.       LOOP AT it ASSIGNING.         READ TABLE it_makt WITH KEY matnr =-zz_rfmat.         IF sy-subrc = 0.           MOVE: it_makt-maktx TO-maktx_ref.         ENDIF.       ENDLOOP.     ENDIF.     PERFORM status USING text-006.     LOOP AT it ASSIGNING.       SELECT SINGLE * FROM zmmm_class_1v         WHERE objek =-matnr AND klart = '001'         AND spras = sprache.       IF sy-subrc = 0.         MOVE: zmmm_class_1v-class TO-class.         MOVE: zmmm_class_1v-kschl TO-kschl.       ENDIF.     ENDLOOP.   ENDIF.   DATA: lt_return  TYPE TABLE OF bapiret2,         ls_address  TYPE bapiaddr3,         lv_tabix    TYPE sy-tabix.   LOOP AT it ASSIGNING.     lv_tabix = sy-tabix.     CLEAR: lt_return[], ls_address.     CALL FUNCTION 'BAPI_USER_GET_DETAIL'       EXPORTING         username =-ernam       IMPORTING         address  = ls_address       TABLES         return  = lt_return.     IF lt_return IS INITIAL.      -fullname  = ls_address-fullname.      -tel1_numbr = ls_address-tel1_numbr.      -tel1_ext  = ls_address-tel1_ext.       MODIFY it FROMINDEX lv_tabix.     ENDIF.   ENDLOOP.   PERFORM status USING text-007.   LOOP AT it ASSIGNING.     PERFORM read_dir_data.   ENDLOOP. ENDFORM.                                                    "GET_DATA *---------------------------------------------------------------------* *      FORM USER_OC                                                  * *---------------------------------------------------------------------* * Form wird beim Klicken auf MATNR oder ZZ_RFMAT dynamisch gerufen *---------------------------------------------------------------------* *  -->  R_UCOMM                                                      * *  -->  RS_SELFIELD                                                  * *---------------------------------------------------------------------* FORM user_oc  USING r_ucomm LIKE sy-ucomm                  "#EC CALLED       rs_selfield TYPE slis_selfield. DATA : lv_mstae TYPE mara-mstae.   CASE rs_selfield-fieldname .     when 'MATNR' or 'ZZ_RFMAT' .       SET PARAMETER ID 'MAT' FIELD  rs_selfield-value.       CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.   ENDCASE. ENDFORM.                    "user_oc *---------------------------------------------------------------------* *      FORM set_mmstd                                                * *---------------------------------------------------------------------* *---------------------------------------------------------------------* FORM set_mmstd.   DATA d_mmstd LIKE sy-datum .   d_mmstd = sy-datum - 2 .   REFRESH so_mmstd.   MOVE: 'GE' TO so_mmstd-option, 'I' TO so_mmstd-sign,         d_mmstd TO so_mmstd-low.   APPEND so_mmstd. ENDFORM.                    "set_mmstd *---------------------------------------------------------------------* *      FORM read_dir_data                                                * *---------------------------------------------------------------------* *---------------------------------------------------------------------* FORM read_dir_data.   lf_objecttype = 'MARA'.   lf_objectkey =-matnr.   CLEAR lt_documentlist . REFRESH lt_documentlist .   CALL FUNCTION 'BAPI_DOCUMENT_GETOBJECTDOCS'     EXPORTING       objecttype          = lf_objecttype       objectkey          = lf_objectkey       currentversionsonly = 'X'       date                = sy-datum     TABLES       documentlist        = lt_documentlist.   if not lt_documentlist[] is INITIAL.     READ TABLE lt_documentlist with KEY documenttype = 'IDW' assigning.     IF sy-subrc eq 0 .       perform read_dir_details .       EXIT.     ENDIF.     READ TABLE lt_documentlist with KEY documenttype = 'DWG' assigning.     IF sy-subrc eq 0 .       perform read_dir_details .       EXIT.     ENDIF.   endif.   READ TABLE lt_documentlist with KEY documenttype = 'DFF' assigning.   IF sy-subrc eq 0 .     perform read_dir_details .     EXIT.   ENDIF. ENDFORM.                    "read_dir_data *---------------------------------------------------------------------* *      FORM read_dir_details                                                * *---------------------------------------------------------------------* FORM read_dir_details .   DATA: lf_doctype LIKE bapi_doc_draw-documenttype,   lf_docnumber LIKE bapi_doc_draw-documentnumber,   lf_docpart LIKE bapi_doc_draw-documentpart,   lf_docversion LIKE bapi_doc_draw-documentversion .   DATA: lt_files LIKE bapi_doc_files2 OCCURS 0 WITH HEADER LINE,   ls_document LIKE bapi_doc_draw2.   lf_doctype =-DOCUMENTTYPE .   lf_docnumber =-DOCUMENTNUMBER .   lf_docversion =-DOCUMENTVERSION .   lf_docpart =-DOCUMENTPART .   REFRESH lt_files. CLEAR lt_files.   CALL FUNCTION 'BAPI_DOCUMENT_GETDETAIL2'     EXPORTING:       documenttype = lf_doctype       documentnumber = lf_docnumber       documentpart = lf_docpart       documentversion = lf_docversion       getactivefiles = 'X'     IMPORTING:       documentdata = ls_document     TABLES:       documentfiles = lt_files.   if not lt_files[] is INITIAL.     READ TABLE lt_files with KEY WSAPPLICATION = 'TIF' CHECKEDIN = 'X' .     if sy-subrc eq 0 .      -TIF_EXISTS = 'X' .     endif.   ENDIF.  -DOKAR =-DOCUMENTTYPE .  -DOKNR =-DOCUMENTNUMBER .  -DOKVR =-DOCUMENTVERSION .  -DOKTL =-DOCUMENTPART .  -DOKST = ls_document-STATUSINTERN . ENDFORM. "read_dir_details *&---------------------------------------------------------------------* *&      Form  SET_LAYOUT *&---------------------------------------------------------------------* *      text *----------------------------------------------------------------------* *  -->  Ainmup 28.03.2014 Add Layout Field in selction Screen I-1311-064\01 *----------------------------------------------------------------------* FORM SET_LAYOUT . DATA: lf_event              TYPE slis_alv_event,         lf_form_top_of_page  TYPE slis_formname VALUE 'TOP_OF_PAGE',         lf_form_end_of_list  TYPE slis_formname VALUE 'END_OF_LIST',         lf_form_pf_status_set TYPE slis_formname VALUE 'PF_STATUS_SET'.   CLEAR :i_events[], lf_event.   CALL FUNCTION 'REUSE_ALV_EVENTS_GET'     EXPORTING       i_list_type    = 0     IMPORTING       et_events      = i_events     EXCEPTIONS       list_type_wrong = 1       OTHERS          = 2.   IF sy-subrc <> 0.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.   ENDIF.   READ TABLE i_events WITH KEY name = slis_ev_top_of_page                           INTO lf_event.   IF sy-subrc = 0.     MOVE lf_form_top_of_page TO lf_event-form.     APPEND lf_event TO i_events.   ENDIF.   CLEAR lf_event.   READ TABLE i_events WITH KEY name =  slis_ev_pf_status_set                           INTO lf_event.   IF sy-subrc = 0.     MOVE lf_form_pf_status_set TO lf_event-form.     APPEND lf_event TO i_events.   ENDIF.   CLEAR lf_event.   READ TABLE i_events WITH KEY name =  slis_ev_end_of_list                           INTO lf_event.   IF sy-subrc = 0.     MOVE lf_form_end_of_list TO lf_event-form.     APPEND lf_event TO i_events.   ENDIF.   clear gs_variant.   gs_variant-report = sy-repid. * Function module for f4 search help for layout   call function 'REUSE_ALV_VARIANT_F4'     exporting       is_variant        = gs_variant       i_display_via_grid = 'X'     importing       es_variant        = gs_variant     exceptions       not_found          = 1       program_error      = 2       others            = 3.   if sy-subrc ne 0.     message id sy-msgid type sy-msgty number sy-msgno     with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.   else.     write gs_variant-variant to p_vari.   endif. ENDFORM.                    " SET_LAYOUT *&---------------------------------------------------------------------* *&      Form  ALV_GRID_DISPLAY *&---------------------------------------------------------------------* *      text *----------------------------------------------------------------------* *  -->  p1        text *   p1        text * 0.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.   ENDIF.   CLEAR lf_event.   READ TABLE i_events WITH KEY name =  slis_ev_pf_status_set                           INTO lf_event.   IF sy-subrc = 0.     MOVE lf_form_pf_status_set TO lf_event-form.     APPEND lf_event TO i_events.   ENDIF. **  set the layout   i_layout-zebra            = c_x.   i_layout-colwidth_optimize = c_x.   i_layout-no_input          = c_x.   i_layout-get_selinfos      = c_x. * For Layout Selection   clear gs_variant.   gs_variant-report = sy-repid. * Function module for f4 search help for layout   call function 'REUSE_ALV_VARIANT_F4'     exporting       is_variant        = gs_variant       i_display_via_grid = 'X'     importing       es_variant        = gs_variant     exceptions       not_found          = 1       program_error      = 2       others            = 3.   if sy-subrc ne 0.     message id sy-msgid type sy-msgty number sy-msgno     with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.   else.     write gs_variant-variant to p_vari.   endif. ENDFORM.                    " GET_EVENT_LAYOUT *&---------------------------------------------------------------------* *&      Form  pf_status_set **&--------------------------------------------------------------------* FORM pf_status_set USING pt_extab TYPE slis_t_extab.   SET PF-STATUS 'YPROGRAM'. ENDFORM.                              "PF_STATUS_SET *&---------------------------------------------------------------------* *&      Form  CALL_ALV_GRID *&---------------------------------------------------------------------* *      text *----------------------------------------------------------------------* *  -->  p1        text * 0.     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.   ENDIF. ENDFORM.                    " CALL_ALV_GRID

Thanks.

Read only

0 Likes
14,815

Hi,

I have checked the code.

Please call below form routine after  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'.

Aslo add refresh related code whihc i have marked in bold and underlined in belwo code.

This will surely work. Check the function code and use that code in IF condition.

Let me know if you still face any issue.

 

FORM user_oc USING r_ucomm LIKE sy-ucomm "#EC CALLED
rs_selfield
TYPE slis_selfield.
DATA : lv_mstae TYPE mara-mstae.

CASE rs_selfield-fieldname .
WHEN 'MATNR' OR 'ZZ_RFMAT' .
SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
ENDCASE.
IF v_fcode = c_refresh. " c_refresh is Function code
v_selfield
-refresh = 'X'.
ENDIF.
ENDFORM. "user_oc

Read only

0 Likes
14,815

Hi pravin,

i have tried but it is not working i have create this sample code this will work in your System please if you have some time then please change in this prog as per requirment.Change Description and use refresh button .

Read only

0 Likes
14,815


Hi ,

I got the issue you also need to define it_event_exit  pass it to 'REUSE_ALV_GRID_DISPLAY'.I have modified the code and checked ,it goes to debugging after clicking on refresh icon.

Please find the attached file.

Read only

0 Likes
14,815

but result is remaining still same as it is?because material description is not changig at time of refresh.and when we press back ,Exit or cancle button it is not behave correctly.

Read only

0 Likes
14,815

Hi,

Please as perform get_data in refresh code. I have tested and it's working.Hope this time your issue will resolve. Let me know if still have any issue.

Regards,

Pravin

Read only

0 Likes
14,815

Thanks Prvin actuly i had done same but i was calling ALV again after get_data .Now its working perfectly thanks for your solution.

Read only

Former Member
0 Likes
14,815

Button should have function code, if this button is triggered

then do your select query or update your internal table and call CALL METHOD ALV_GRID->REFRESH_TABLE_DISPLAY.

I hope this is enough.

Regards,

Vadamalai A