Properties SourceCde
txt
1
*---------------------------------------------------------------------*
2
*       FORM FILL_EXTRACT                                             *
3
*---------------------------------------------------------------------*
4
*       ........                                                      *
5
*---------------------------------------------------------------------*
6
FORM fill_extract.
7
 DATA: rec LIKE sy-subrc VALUE 9, total_safe(4096) TYPE c, indei TYPE i,
8
                   hf TYPE i VALUE 1.
9
  FIELD-SYMBOLS: <begdate_mask>.
10
  REFRESH: extract. CLEAR extract.
11
  CLEAR vim_mainkey.
12
  TRANSLATE vim_no_mainkey_exists USING vim_no_mkey_not_procsd_patt.
13
  IF x_header-delmdtflag NE space.
14
    ASSIGN <vim_new_begdate> TO <begdate_mask> TYPE 'C'.
15
  ENDIF.
16
  LOOP AT total.
17
    PERFORM normal_select.
18
    CHECK sy-subrc EQ 0.
19
    IF x_header-delmdtflag NE space AND
20
       vim_ignore_collapsed_mainkeys EQ space.
21
      PERFORM check_and_modify_mainkey_tab USING rec.
22
      IF rec NE 0.
23
        vim_coll_mainkeys_beg_ix = vim_last_coll_mainkeys_ix.
24
      ENDIF.
25
      CHECK rec LT 8.
26
      IF rec EQ 4. rec = 9. ENDIF.
27
    ENDIF.
28
    extract = total.
29
    APPEND extract.
30
  ENDLOOP.
31
  vim_coll_mainkeys_beg_ix = 1.
32
  IF rec NE 9 AND rec NE 0.
33
    PERFORM mod_extract_and_mainkey_tab USING 'A' 0.
34
  ENDIF.
35
  DESCRIBE TABLE extract LINES maxlines.
36
  mark_extract = mark_total.
37
  status-data = gesamtdaten.
38
  title-data  = gesamtdaten.
39
  CLEAR <status>-selected.
40
* <STATUS>-DISPL_MODE = EXPANDED. "default display mode
41
  IF maxlines EQ 0.
42
    PERFORM vim_send_sv005_or_sv766 USING '766'
43
                                          'RESET'.
44
    IF function NE 'DELE' AND function NE 'SAVE'.           "HWR
45
      IF x_header-selection EQ space AND fill_extr_first_proc EQ space.
46
        IF NOT vim_oc_inst IS INITIAL
47
* data access restricted?
48
          AND ( ( <status>-st_action = aendern
49
                AND NOT vim_oc_inst->oc_selcrit_maint_tab IS INITIAL )
50
          OR ( 'ST' CS <status>-st_action
51
                AND NOT vim_oc_inst->oc_selcrit_read_tab IS INITIAL ) ).
52
          MESSAGE s766(sv).
53
*   Eingeschränkte Anzeige von Datensätzen.
54
        ELSE.
55
          MESSAGE s065(sv).            "keine Einträge vorhanden
56
        ENDIF.
57
        MOVE 'X' TO fill_extr_first_proc.
58
      ELSE.
59
        MESSAGE s004(sv). "keine Einträge gemäß Selektion gefunden
60
      ENDIF.
61
    ENDIF.                                                  "HWR
62
    EXIT.
63
  ELSEIF maxlines EQ 1.
64
    PERFORM vim_maintain_single_set.    "UFint2329966/2000
65
  ELSEIF NOT vim_oc_inst IS INITIAL AND
66
   function NE 'DELE' AND function NE 'SAVE'.
67
* data access restricted?
68
    IF ( <status>-st_action = aendern
69
         AND NOT vim_oc_inst->oc_selcrit_maint_tab IS INITIAL )
70
     OR ( 'ST' CS <status>-st_action
71
          AND NOT vim_oc_inst->oc_selcrit_read_tab IS INITIAL ).
72
      PERFORM vim_send_sv005_or_sv766 USING '766'
73
                                          'SENDIT'.
74
*   Eingeschränkte Anzeige von Datensätzen.
75
    ENDIF.
76
  ELSE.
77
    PERFORM vim_send_sv005_or_sv766 USING '766'
78
                                          'RESET'.
79
  ENDIF.
80
ENDFORM.                    "fill_extract