Properties SourceCde
txt
1
*---------------------------------------------------------------------*
2
*       FORM INIT_SUBSET_KEYFIELDS                                    *
3
*---------------------------------------------------------------------*
4
*       ........                                                      *
5
*---------------------------------------------------------------------*
6
FORM init_subset_keyfields.
7
  DATA: all_flds_blank TYPE c VALUE 'X', state_init TYPE c.
8
  FIELD-SYMBOLS: <key> type x.
9
  ASSIGN <initial_x>(x_header-keylen) TO <key>.
10
  clear <table1_wa>.
11
  MOVE <key> TO <f1_wax>.
12
  IF <status>-sbsid_rcvd NE space.
13
    CALL FUNCTION 'VIEW_INIT_SUBST_KEYFLDS'
14
         EXPORTING
15
              visk_tabname         = x_header-maintview
16
              workarea_in          = <initial>
17
         IMPORTING
18
              workarea_out         = <initial>
19
              all_fields_blank     = all_flds_blank
20
              state_init_necessary = state_init
21
         TABLES
22
              sellist              = dba_sellist
23
              x_namtab             = x_namtab.
24
  ELSE.
25
    CALL FUNCTION 'VIEW_INIT_SUBST_KEYFLDS'
26
         EXPORTING
27
              visk_tabname         = x_header-maintview
28
              workarea_in          = <initial>
29
         IMPORTING
30
              workarea_out         = <initial>
31
              all_fields_blank     = all_flds_blank
32
              state_init_necessary = state_init
33
         TABLES
34
              sellist              = dpl_sellist
35
              x_namtab             = x_namtab.
36
    IF all_flds_blank NE space.
37
      RAISE no_value_for_subset_ident.
38
    ENDIF.
39
    IF <key> NE <f1_wax>.
40
      MOVE 'X' TO state_init.
41
    ELSE.  "nicht-Key Subsetfelder, für die in ZP19 Keyflag gesetzt
42
      LOOP AT x_namtab where keyflag  <> SPACE  AND
43
                             readonly =  subset AND
44
                             position >= x_header-keylen.
45
        MOVE 'X' TO state_init. EXIT.
46
      ENDLOOP.
47
    ENDIF.
48
    IF state_init NE space.
49
      CLEAR: <status>-maxlines,
50
             <status>-cur_field,
51
             <status>-cur_offset.
52
      MOVE: 1 TO <status>-cur_line,
53
            1 TO <status>-firstline,
54
            maint_mode TO <status>-st_action,
55
            nicht_geloescht TO <status>-st_delete,
56
            list_bild TO <status>-st_mode.
57
      PERFORM set_status_nokeyselcnds.
58
    ELSE.
59
* further selection criteria?
60
      LOOP AT dpl_sellist TRANSPORTING NO FIELDS
61
                          WHERE ddic EQ space OR ( operator EQ 'GE' OR
62
                                                   operator EQ 'GT' OR
63
                                                   operator EQ 'LE' OR
64
                                                   operator EQ 'LT' ).
65
        EXIT.
66
      ENDLOOP.
67
      IF sy-subrc <> 0 and <status>-maxlines <> 0.
68
        <status>-selcd_rcvd = 'X'.
69
      ENDIF.
70
    ENDIF.
71
  ENDIF.
72
ENDFORM.