10-23-2007 11:51 AM
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
10-24-2007 5: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
11-30-2007 5: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 ********************