*---------------------------------------------------------------------* * FORM SELECT * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> PARAM * * <-- SY-SUBRC * *---------------------------------------------------------------------* FORM select USING param. FIELD-SYMBOLS: <vim_tot_txt_struc_loc> TYPE ANY. sy-subrc = 8. IF param EQ space AND status-action NE transportieren. "normal selection (not deleted entries) PERFORM normal_select. ELSE. CASE param. WHEN geloescht. CHECK <action> EQ geloescht OR <action> EQ neuer_geloescht OR <action> EQ update_geloescht. CLEAR sy-subrc. IF x_header-selection NE space. IF x_header-bastab <> space AND x_header-texttbexst <> space. ASSIGN <vim_tot_txt_struc> TO <vim_tot_txt_struc_loc>. ELSE. ASSIGN <vim_total_struc> TO <vim_tot_txt_struc_loc>. ENDIF. CALL FUNCTION 'TABLE_RANGE_CHECK' EXPORTING tabname = x_header-maintview entry = total entry_text = <vim_tot_txt_struc_loc> ddic = 'N' key = 'N' ignore_blank_subsetfields = 'N' TABLES x_namtab = x_namtab x_header = x_header sellist = dpl_sellist EXCEPTIONS entry_not_fits = 1 no_value_for_subset_ident = 2. IF sy-subrc EQ 2. RAISE no_value_for_subset_ident. ENDIF. ENDIF. WHEN markiert. IF status-delete EQ geloescht. CHECK <action> EQ geloescht OR <action> EQ neuer_geloescht OR <action> EQ update_geloescht. ENDIF. CHECK <mark> EQ param. CLEAR sy-subrc. IF x_header-selection NE space. IF x_header-bastab <> space AND x_header-texttbexst <> space. ASSIGN <vim_tot_txt_struc> TO <vim_tot_txt_struc_loc>. ELSE. ASSIGN <vim_total_struc> TO <vim_tot_txt_struc_loc>. ENDIF. CALL FUNCTION 'TABLE_RANGE_CHECK' EXPORTING tabname = x_header-maintview entry = total entry_text = <vim_tot_txt_struc_loc> ddic = 'N' key = 'N' ignore_blank_subsetfields = 'N' TABLES x_namtab = x_namtab x_header = x_header sellist = dpl_sellist EXCEPTIONS entry_not_fits = 1 no_value_for_subset_ident = 2. IF sy-subrc EQ 2. RAISE no_value_for_subset_ident. ENDIF. ENDIF. WHEN bcset_only. "HCG Display only data from BC-Set READ TABLE vim_bc_entry_list INTO vim_bc_entry_list_wa WITH TABLE KEY viewname = x_header-viewname keys = <vim_xtotal_key>. IF sy-subrc NE 0. sy-subrc = 8. ENDIF. CHECK sy-subrc EQ 0. IF x_header-selection NE space. IF x_header-bastab <> space AND x_header-texttbexst <> space. ASSIGN <vim_tot_txt_struc> TO <vim_tot_txt_struc_loc>. ELSE. ASSIGN <vim_total_struc> TO <vim_tot_txt_struc_loc>. ENDIF. CALL FUNCTION 'TABLE_RANGE_CHECK' EXPORTING tabname = x_header-maintview entry = total entry_text = <vim_tot_txt_struc_loc> ddic = 'N' key = 'N' ignore_blank_subsetfields = 'N' TABLES x_namtab = x_namtab x_header = x_header sellist = dpl_sellist EXCEPTIONS entry_not_fits = 1 no_value_for_subset_ident = 2. IF sy-subrc EQ 2. RAISE no_value_for_subset_ident. ENDIF. ENDIF. WHEN by_field_contents. PERFORM normal_select. CHECK sy-subrc EQ 0. IF x_header-bastab NE space AND x_header-texttbexst NE space. * table with texttable CALL FUNCTION 'QUERY_CHECK' EXPORTING record = <vim_total_struc> textrecord = <vim_tot_txt_struc> EXCEPTIONS no_hits_in_record = 4 parameter_error = 8. ELSE. * view or single table CALL FUNCTION 'QUERY_CHECK' EXPORTING record = <vim_total_struc> * record = total EXCEPTIONS no_hits_in_record = 4 parameter_error = 8. ENDIF. WHEN OTHERS. "neuer_eintrag or aendern IF x_header-bastab NE space AND x_header-texttbexst NE space AND param EQ aendern. CHECK <action> EQ param OR <action_text> EQ param OR <action> NE neuer_eintrag AND <action_text> EQ neuer_eintrag. ELSE. CHECK <action> EQ param. ENDIF. CLEAR sy-subrc. IF x_header-selection NE space. IF x_header-bastab <> space AND x_header-texttbexst <> space. ASSIGN <vim_tot_txt_struc> TO <vim_tot_txt_struc_loc>. ELSE. ASSIGN <vim_total_struc> TO <vim_tot_txt_struc_loc>. ENDIF. CALL FUNCTION 'TABLE_RANGE_CHECK' EXPORTING tabname = x_header-maintview entry = total entry_text = <vim_tot_txt_struc_loc> ddic = 'N' key = 'N' ignore_blank_subsetfields = 'N' TABLES x_namtab = x_namtab x_header = x_header sellist = dpl_sellist EXCEPTIONS entry_not_fits = 1 no_value_for_subset_ident = 2. IF sy-subrc EQ 2. RAISE no_value_for_subset_ident. ENDIF. ENDIF. ENDCASE. ENDIF."param eq space and status-action ne transportieren ENDFORM. "select