Skip to Content
author's profile photo Former Member
Former Member

Auto-refresh of ALV II

i tried to apply the logic in this link

https://www.sdn.sap.com/irj/sdn/abap-forums

but it gives runtime error...this my test program...

please advise and help if there is any notices...

&----


*& Report Z_TEST_REF

*&

&----


*&

*&

&----


REPORT Z_TEST_REF.

types:

begin of typ_equip,

equnr type equi-equnr,

aenam type equi-aenam,

end of typ_equip.

data: gt_user LIKE uinfo OCCURS 0 WITH HEADER LINE, " User info in SM04

INT_CATALOG TYPE LVC_T_FCAT,

W_CATALOG LIKE LINE OF INT_CATALOG,

int_equi type standard table of typ_equip,

wa_equi like line of int_equi,

container_r TYPE REF TO cl_gui_custom_container,

grid_r TYPE REF TO cl_gui_alv_grid.

call screen 100.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

select equnr aenam from equi into corresponding fields of table int_equi

where matnr = '000000007100000009'.

SET PF-STATUS '100'.

  • SET TITLEBAR 'xxx'.

PERFORM F_GENERATE_FILDCATALOG.

IF container_r IS INITIAL.

CREATE OBJECT container_r

EXPORTING container_name = 'CONTAINER_1'.

CREATE OBJECT grid_r

EXPORTING i_parent = container_r.

CALL METHOD grid_r->set_table_for_first_display

EXPORTING i_structure_name = 'INT_CATALOG'

CHANGING it_outtab = int_equi

IT_FIELDCATALOG = INT_CATALOG.

endif.

perform f_read_data.

perform f_display_data .

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Form F_GENERATE_FILDCATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_GENERATE_FILDCATALOG .

W_CATALOG-COL_POS = '1'.

W_CATALOG-FIELDNAME = 'EQUNR'.

W_CATALOG-SCRTEXT_L = 'Date'.

W_CATALOG-OUTPUTLEN = '25'.

APPEND W_CATALOG TO INT_CATALOG.

CLEAR W_CATALOG.

W_CATALOG-COL_POS = '1'.

W_CATALOG-FIELDNAME = 'AENAM'.

W_CATALOG-SCRTEXT_L = 'Date'.

W_CATALOG-OUTPUTLEN = '20'.

APPEND W_CATALOG TO INT_CATALOG.

CLEAR W_CATALOG.

ENDFORM. " F_GENERATE_FILDCATALOG

&----


*& Form f_call_rfc_wait

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_call_rfc_wait .

DATA lv_mssg(80). "#EC NEEDED

  • Wait in a task

CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'

PERFORMING f_task_end ON END OF TASK

EXPORTING

seconds = 5 " Refresh time

busy_waiting = space

EXCEPTIONS

RESOURCE_FAILURE = 1

communication_failure = 2 MESSAGE lv_mssg

system_failure = 3 MESSAGE lv_mssg

OTHERS = 4.

ENDFORM. " f_call_rfc_wait

&----


*& Form f_task_end

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_task_end USING u_taskname .

DATA lv_mssg(80). "#EC NEEDED

  • Receiving task results

RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'

EXCEPTIONS

RESOURCE_FAILURE = 1

communication_failure = 2 MESSAGE lv_mssg

system_failure = 3 MESSAGE lv_mssg

OTHERS = 4.

CHECK sy-subrc EQ 0.

SET USER-COMMAND '&NTE'. " Refresh

ENDFORM. " f_task_end

&----


*& Form f_read_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_read_data .

*REFRESH gt_user.

select equnr aenam from equi into corresponding fields of table int_equi

where matnr = '000000007100000009'.

PERFORM f_call_rfc_wait.

ENDFORM. " f_read_data

&----


*& Form f_display_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM f_display_data.

DEFINE m_sort.

add 1 to ls_sort-spos.

ls_sort-fieldname = &1.

append ls_sort to lt_sort.

END-OF-DEFINITION.

DEFINE m_event_exit.

clear ls_event_exit.

ls_event_exit-ucomm = &1.

ls_event_exit-after = 'X'.

append ls_event_exit to lt_event_exit.

END-OF-DEFINITION.

DATA :

ls_layout TYPE slis_layout_alv,

lt_sort TYPE slis_t_sortinfo_alv,

ls_sort TYPE slis_sortinfo_alv,

lt_event_exit TYPE slis_t_event_exit,

ls_event_exit TYPE slis_event_exit.

  • Build Sort Table

m_sort 'EQUNR'.

  • Build Event Exit Table

m_event_exit '&NTE'. " Refresh

ls_layout-zebra = 'X'.

ls_layout-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

i_callback_user_command = 'USER_COMMAND'

is_layout = ls_layout

i_structure_name = 'UINFO'

it_sort = lt_sort

it_event_exit = lt_event_exit

TABLES

t_outtab = int_equi.

ENDFORM. " f_display_data

----


  • FORM USER_COMMAND *

----


FORM user_command USING i_ucomm TYPE syucomm

is_selfield TYPE slis_selfield. "#EC CALLED

CASE i_ucomm.

WHEN '&NTE'.

PERFORM f_read_data.

is_selfield-refresh = 'X'.

SET USER-COMMAND '&OPT'. " Optimize columns width

ENDCASE.

ENDFORM. " USER_COMMAND

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

2 Answers

  • Posted on Oct 24, 2007 at 04:54 AM

    Hi,

    I hope you have created the necessary button with Code &NTE.

    Please refer following threads:

    http://www.sap-img.com/abap/how-to-refresh-alv-list-grid-once-it-is-displayed.htm

    http://www.erpgenie.com/abap/controls/alvgrid.htm#Refresh%20grid%20display

    Best regards,

    Prashant

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Nov 30, 2007 at 05:31 AM

    Hi

    *>*********************************************************************
    * This report displays User's info (SM04) using the FM : *
    
    * REUSE_ALV_LIST_DISPLAY *
    
    * The list is auto-refreshed (refresh time : 5 seconds) *
    
    *---------------------------------------------------------------------*
    TYPE-POOLS: slis. " ALV Global Types
    
    DATA :
    
    gt_user LIKE uinfo OCCURS 0 WITH HEADER LINE. " User info in SM04
    *---------------------------------------------------------------------*
    START-OF-SELECTION.
    
    PERFORM f_read_data.
    
    PERFORM f_display_data.
    *---------------------------------------------------------------------*
    
    * Form F_LIRE_DATA
    
    *---------------------------------------------------------------------*
    FORM f_read_data.
    
    REFRESH gt_user.
    * Get User's info
    CALL FUNCTION 'THUSRINFO'
    
    TABLES
    
    usr_tabl = gt_user.
    * Wait in a task
    PERFORM f_call_rfc_wait.
    
    ENDFORM. " F_READ_DATA
    
    *---------------------------------------------------------------------*
    
    * Form F_DISPLAY_DATA
    
    *---------------------------------------------------------------------*
    
    FORM f_display_data.
    
    DEFINE m_sort.
    
    add 1 to ls_sort-spos.
    
    ls_sort-fieldname = &1.
    
    append ls_sort to lt_sort.
    
    END-OF-DEFINITION.
    
    DEFINE m_event_exit.
    
    clear ls_event_exit.
    
    ls_event_exit-ucomm = &1.
    
    ls_event_exit-after = 'X'.
    
    append ls_event_exit to lt_event_exit.
    
    END-OF-DEFINITION.
    
    DATA :
    
    ls_layout TYPE slis_layout_alv,
    
    lt_sort TYPE slis_t_sortinfo_alv,
    
    ls_sort TYPE slis_sortinfo_alv,
    
    lt_event_exit TYPE slis_t_event_exit,
    
    ls_event_exit TYPE slis_event_exit.
    * Build Sort Table
    m_sort 'ZEIT'.
    * Build Event Exit Table
    m_event_exit '&NTE'. " Refresh
    
    ls_layout-zebra = 'X'.
    
    ls_layout-colwidth_optimize = 'X'.
    
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    
    EXPORTING
    
    i_callback_program = sy-cprog
    
    i_callback_user_command = 'USER_COMMAND'
    
    is_layout = ls_layout
    
    i_structure_name = 'UINFO'
    
    it_sort = lt_sort
    
    it_event_exit = lt_event_exit
    
    TABLES
    
    t_outtab = gt_user.
    
    ENDFORM. " F_DISPLAY_DATA
    *---------------------------------------------------------------------*
    
    * FORM USER_COMMAND *
    
    *---------------------------------------------------------------------*
    FORM user_command USING i_ucomm TYPE syucomm
    
    is_selfield TYPE slis_selfield. "#EC CALLED
    
    CASE i_ucomm.
    
    WHEN '&NTE'.
    
    PERFORM f_read_data.
    
    is_selfield-refresh = 'X'.
    
    SET USER-COMMAND '&OPT'. " Optimize columns width
    
    ENDCASE.
    
    ENDFORM. " USER_COMMAND
    *---------------------------------------------------------------------*
    
    * Form F_CALL_RFC_WAIT
    
    *---------------------------------------------------------------------*
    FORM f_call_rfc_wait.
    
    DATA lv_mssg(80). "#EC NEEDED
    * Wait in a task
    CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'
    
    PERFORMING f_task_end ON END OF TASK
    
    EXPORTING
    
    seconds = 5 " Refresh time
    
    busy_waiting = space
    
    EXCEPTIONS
    
    RESOURCE_FAILURE = 1
    
    communication_failure = 2 MESSAGE lv_mssg
    
    system_failure = 3 MESSAGE lv_mssg
    
    OTHERS = 4.
    
    ENDFORM. " F_CALL_RFC_WAIT
    *---------------------------------------------------------------------*
    
    * Form F_TASK_END
    
    *---------------------------------------------------------------------*
    FORM f_task_end USING u_taskname.
    
    DATA lv_mssg(80). "#EC NEEDED
    * Receiving task results
    RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'
    
    EXCEPTIONS
    
    RESOURCE_FAILURE = 1
    
    communication_failure = 2 MESSAGE lv_mssg
    
    system_failure = 3 MESSAGE lv_mssg
    
    OTHERS = 4.
    
    CHECK sy-subrc EQ 0.
    
    SET USER-COMMAND '&NTE'. " Refresh
    
    ENDFORM. " F_TASK_END
    ************** END OF PROGRAM Z_ALV_AUTO_REFRESH ********************

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.