Properties SourceCde
txt
1
*---------------------------------------------------------------------*
2
*       FORM SUCHEN                                                   *
3
*---------------------------------------------------------------------*
4
*       ........                                                      *
5
*---------------------------------------------------------------------*
6
FORM suchen.
7
  DESCRIBE TABLE exclude_tab.
8
  IF sy-tfill GT 0.                    "entries in old exclude_tab
9
    PERFORM consider_old_exclude_tab TABLES excl_que_tab.
10
  ENDIF.
11
  CALL FUNCTION 'QUERY_GET_OPERATION'
12
       EXPORTING
13
            table             = x_header-maintview
14
       TABLES
15
            exclude_fields    = excl_que_tab
16
       EXCEPTIONS
17
            table_not_found   = 0004
18
            no_valid_fields   = 0008
19
            cancelled_by_user = 0012.
20
  CASE sy-subrc.
21
    WHEN 0.
22
    WHEN 8.
23
      MESSAGE s039(sv) WITH view_name.
24
      EXIT.
25
    WHEN OTHERS.
26
      EXIT.
27
  ENDCASE.
28
  status-data   = auswahldaten.
29
  title-data    = auswahldaten.
30
  IF title-action EQ geloescht.
31
    status-delete = nicht_geloescht.
32
    title-action = aendern.
33
  ENDIF.
34
  REFRESH extract.
35
  LOOP AT total.
36
    PERFORM select USING by_field_contents.
37
    CHECK sy-subrc EQ 0.
38
    extract = total.
39
    APPEND extract.
40
  ENDLOOP.
41
  <status>-selected = by_field_contents.
42
  DESCRIBE TABLE extract LINES maxlines.
43
  nextline = 1.
44
  IF maxlines EQ 0.
45
    PERFORM fill_extract.
46
    MESSAGE s004(sv).
47
    EXIT.
48
  ENDIF.
49
  IF maxlines EQ 1.
50
    MESSAGE s005(sv).
51
    IF status-type EQ zweistufig.
52
      PERFORM read_table USING maxlines.
53
      PERFORM process_detail_screen USING 'S'.
54
    ENDIF.
55
  ELSE.
56
    IF status-mode EQ detail_bild.
57
      vim_next_screen = liste. vim_leave_screen = 'X'.
58
    ENDIF.
59
  ENDIF.
60
  MESSAGE s006(sv) WITH maxlines.
61
  mark_extract = 0.
62
  LOOP AT extract.
63
    IF <xmark> EQ markiert.
64
      mark_extract = mark_extract + 1.
65
    ENDIF.
66
  ENDLOOP.
67
  IF x_header-delmdtflag <> space.        "SW CSS-Problem 83157/1999
68
    LOOP AT extract.
69
      LOOP AT vim_collapsed_mainkeys.
70
        CHECK <vim_collapsed_mkey_bfx> = <vim_ext_mkey_beforex>
71
         AND <vim_collapsed_keyx> <> <vim_xextract_key>.
72
*      LOOP AT vim_collapsed_mainkeys WHERE
73
*                mkey_bf = <vim_ext_mkey_before>.
74
*        IF vim_collapsed_mainkeys-mainkey <> <vim_extract_key>.
75
        DELETE vim_collapsed_mainkeys.
76
*        ENDIF.
77
      ENDLOOP.
78
    ENDLOOP.
79
  ENDIF.
80
ENDFORM.