REPORT {{p}}ext_check_old. DATA gv_site TYPE {{p}}exting-site. PARAMETERS: p_from TYPE d OBLIGATORY, p_to TYPE d OBLIGATORY. SELECT-OPTIONS: s_site FOR gv_site. PARAMETERS p_defect AS CHECKBOX. TYPES: BEGIN OF ty_line, ext_id TYPE {{p}}exting-ext_id, site TYPE {{p}}exting-site, ext_type TYPE {{p}}exting-ext_type, weight_g TYPE i, pressure_bar TYPE i, state TYPE c LENGTH 7, urgency TYPE i, END OF ty_line. DATA: gt_lines TYPE STANDARD TABLE OF ty_line WITH DEFAULT KEY, gs_line TYPE ty_line, lt_ext TYPE STANDARD TABLE OF {{p}}exting, ls_ext TYPE {{p}}exting, lv_state TYPE c LENGTH 7, lv_prio TYPE i, lo_alv TYPE REF TO cl_salv_table. START-OF-SELECTION. SELECT * FROM {{p}}exting INTO TABLE lt_ext. LOOP AT lt_ext INTO ls_ext. IF ls_ext-last_check >= p_from AND ls_ext-last_check <= p_to AND ls_ext-site IN s_site. IF ls_ext-weight_g < 4000. IF ls_ext-ext_type = 'CO2'. lv_state = 'REPLACE'. ELSE. lv_state = 'REFILL'. ENDIF. lv_prio = 1. ELSEIF ls_ext-pressure_bar < 10. lv_state = 'SERVICE'. lv_prio = 2. ELSEIF ls_ext-next_check - ls_ext-last_check < 300. lv_state = 'SHORT'. lv_prio = 3. ELSE. lv_state = 'OK'. lv_prio = 4. ENDIF. IF p_defect = 'X' AND lv_prio = 4. CONTINUE. ENDIF. CLEAR gs_line. gs_line-ext_id = ls_ext-ext_id. gs_line-site = ls_ext-site. gs_line-ext_type = ls_ext-ext_type. gs_line-weight_g = ls_ext-weight_g. gs_line-pressure_bar = ls_ext-pressure_bar. gs_line-state = lv_state. gs_line-urgency = lv_prio. APPEND gs_line TO gt_lines. ENDIF. ENDLOOP. SORT gt_lines BY urgency ASCENDING ext_id ASCENDING. PERFORM display_alv. FORM display_alv. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = lo_alv CHANGING t_table = gt_lines ). lo_alv->display( ). CATCH cx_salv_msg. ENDTRY. ENDFORM.