1)
Code:
select * from J_3RFTAX_OBJSEL
into itab
where NODE_CODE in p2.
ENDSELECT.
в описании экрана этот код зачем нужен?
2)
Code:
select * from J_3RFTAX_OBJSEL into itab
WHERE HIER_KEY = P1 and NODE_CODE = P2 and SEQNR = '01'.
endselect.
P2 описана как select-options, поэтому писать NODE_CODE = P2 некорректно, нужно NODE_CODE in P2
3) у вас табличка itab всегда будет пустой
Code:
itab type J_3RFTAX_OBJSEL occurs 100 [b]with header line[/b].
то есть itab это строка таблицы itab[] (лучше описывать отдельно таблицу и переменную для строки, чтобы не путаться)
Code:
DATA: itab type STANDARD TABLE OF J_3RFTAX_OBJSEL,
l_itab LIKE LINE OF itab.
если даже оставлять как есть with header line, то нужно в
Code:
select * from J_3RFTAX_OBJSEL
into itab
where NODE_CODE in p2.
ENDSELECT.
добавить APPEND itab
Code:
select * from J_3RFTAX_OBJSEL
into itab
where NODE_CODE in p2.
APPEND itab.
ENDSELECT.
4) вобще неясно зачем столько сложностей для выборки в 1 Select.
5)
Цитата:
И как записать поле J_3RFTAX_OBJSEL-LOW в поле ITAB-RTAXOBJ, если поля ITAB-RTAXOBJ нет?
логично было бы предположить, что раз такого поля нет, то и записать в него никак нельзя.
чем поле itab-low (аналогичное J_3RFTAX_OBJSEL-LOW) не устраивает?
6) я бы написал как-то так
Code:
REPORT ZFISL_DECL_CHK.
INCLUDE <icon>.
DATA:
itab TYPE STANDARD TABLE OF j_3rftax_objsel,
l_itab LIKE LINE OF itab.
PARAMETERS: p1 LIKE j_3rftax_objects-hier_key OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS p2 FOR l_itab-node_code.
START-OF-SELECTION.
SELECT * FROM j_3rftax_objsel INTO CORRESPONDING FIELDS OF TABLE itab
WHERE hier_key = p1
AND node_code IN p2
AND seqnr = '01'
AND tabname = 'GLU1'
AND fieldname = 'RTAXOBJ'
.
IF sy-subrc = 0.
LOOP AT itab INTO l_itab.
WRITE:/ l_itab.
ENDLOOP.
ELSE.
WRITE 'Запись не найдена'.
ENDIF.