Print ALV grid
Hey, there.
I have an ALV grid report with a push button which updates the table content on the screen (num values at ALV).
The problem is that the printing itself comes out with the previous values.
I'm using the class CL_SALV_TABLE for the ALV.
Probebly the internal table's modification (modify itab from wa_tab) and the object's refreshing (GR_TABLE->REFRESH( )) is not enough.
Does anyone has an idea what's missing ??
Thanls in advance,
Reb
Tags:
Former Member replied
Hi
Try by using like this is_selfield-refresh = 'X'.
this is sample coding check it out
REPORT z_alv_auto_refresh. *>********************************************************************* * 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 *********************
Regards
Pavan