REPORT {{p}}helpdesk_old. TYPES: BEGIN OF ty_line, team TYPE {{p}}ticket-team, tickets TYPE i, urgent TYPE i, END OF ty_line. DATA: gt_line TYPE STANDARD TABLE OF ty_line, gt_team TYPE STANDARD TABLE OF {{p}}ticket-team, gv_tickets TYPE i, gv_urgent TYPE i, ls_line TYPE ty_line, lv_team TYPE {{p}}ticket-team, gv_team TYPE {{p}}ticket-team, lo_alv TYPE REF TO cl_salv_table. PARAMETERS p_from TYPE d OBLIGATORY. PARAMETERS p_to TYPE d OBLIGATORY. SELECT-OPTIONS s_team FOR gv_team. START-OF-SELECTION. SELECT DISTINCT team FROM {{p}}ticket INTO TABLE gt_team WHERE opened_on >= p_from AND opened_on <= p_to AND team IN s_team. LOOP AT gt_team INTO lv_team. SELECT COUNT(*) FROM {{p}}ticket INTO gv_tickets WHERE team = lv_team AND opened_on >= p_from AND opened_on <= p_to. SELECT COUNT(*) FROM {{p}}ticket INTO gv_urgent WHERE team = lv_team AND opened_on >= p_from AND opened_on <= p_to AND ( priority = '1' OR priority = '2' ). ls_line-team = lv_team. ls_line-tickets = gv_tickets. ls_line-urgent = gv_urgent. APPEND ls_line TO gt_line. ENDLOOP. SORT gt_line BY tickets DESCENDING team ASCENDING. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = lo_alv CHANGING t_table = gt_line ). lo_alv->display( ). CATCH cx_salv_msg INTO DATA(lx_error). MESSAGE lx_error TYPE 'I' DISPLAY LIKE 'E'. ENDTRY.