1 |
2 |
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 |
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. |