1 |
2 |
3 |
4 |
5 |
6 | FORM vim_assign_mainkey_after USING value(vama_tabix) TYPE i. |
7 | DATA: vama_ix TYPE i, length TYPE i. |
8 | FIELD-SYMBOLS: <x_namtab> TYPE vimnamtab. |
9 | |
10 | vama_ix = vama_tabix + 1. |
11 | READ TABLE x_namtab ASSIGNING <x_namtab> INDEX vama_ix. |
12 | IF sy-subrc EQ 0 AND "entry found and |
13 | <x_namtab>-texttabfld EQ space AND "key continues |
14 | <x_namtab>-position LT x_header-keylen. "after date field |
15 | vama_ix = x_header-keylen - <x_namtab>-position. |
16 | ASSIGN: <table1_x>+<x_namtab>-position(vama_ix) |
17 | TO <vim_f1_afterx>, |
18 | <vim_h_coll_mkey>+<x_namtab>-position(vama_ix) |
19 | TO <vim_collapsed_key_afx>, |
20 | <vim_h_mkey>+<x_namtab>-position(vama_ix) |
21 | TO <vim_mkey_afterx>, |
22 | <vim_h_old_mkey>+<x_namtab>-position(vama_ix) |
23 | TO <vim_old_mkey_afterx>. " TYPE 'C'. |
24 | IF x_header-generictrp <> 'X'. |
25 |
26 |
27 | length = <x_namtab>-position |
28 | DIV cl_abap_char_utilities=>charsize. |
29 | vama_ix = vama_ix DIV cl_abap_char_utilities=>charsize. |
30 | ASSIGN: <table1>+length(vama_ix) |
31 | TO <vim_f1_after>, |
32 | vim_collapsed_mainkeys-mainkey+length(vama_ix) |
33 | TO <vim_collapsed_key_af>, |
34 | vim_mainkey+length(vama_ix) |
35 | TO <vim_mkey_after>, |
36 | vim_old_viewkey+length(vama_ix) |
37 | TO <vim_old_mkey_after>. |
38 | ELSE. |
39 | ASSIGN: <vim_f1_afterx> TO <vim_f1_after>, |
40 | <vim_collapsed_key_afx> TO <vim_collapsed_key_af>, |
41 | <vim_mkey_afterx> TO <vim_mkey_after>, |
42 | <vim_old_mkey_afterx> TO <vim_old_mkey_after>. |
43 | ENDIF. |
44 | vim_mkey_after_exists = 'X'. |
45 | CLEAR vim_no_mainkey_exists. |
46 | ELSE. |
47 | CLEAR vim_mkey_after_exists. |
48 | ENDIF. |
49 | ENDFORM. "vim_asign_mainkey_after |