В общем я сделал поле matnr типом n c количеством цифр таким же как и поле matnr в физической таблице mara. После этого выборка поля вида материала заработала, но появился ещё вопрос. В стандартной программе транзакции отчёт выходит в виде одного настроенного формата, который был установлен по умолчанию и отображается на селекционном экране. Теперь я пытаюсь сделать такой же формат у себя в транзакции, поставить его по умолчанию и передать в стандартную программу транзакции S_P99_41000062 через submit, но выходит как то не удобно, т.е. запускаю программу, заполняю поля на селекционном экране, но отчёт не запускается до тех пока я не выберу формат, при чём отчёт сразу запускается при выборе формата, т.е. без нажатия кнопочки часы и пока я не зайду в окно выбора формата и не выберу его отчёт не запускается. Толи я что то намудрил, толи лыжи не едут, чота не пойму как надо сделать правильно, чтобы отчёт просто запускался бы в формате, который используется и в стандартной программе транзакции S_P99_41000062. бы В общем часть кода, где срабатывает формат такаяselection-screen skip 2.
select-options: r_matnr for ckmlhd-matnr.
parameters:
p_werks like mlkey-werks_ml_productive
obligatory
memory id wrk.
selection-screen skip 1.
** Periode
selection-screen begin of block parameter with frame title text-101.
parameters: p_poper like cki_doc_ml-sl_periode
memory id mlp,
p_bdatj like ckmlrunplant-gjahr memory id mlj.
selection-screen end of block parameter.
parameters: p_alvdef like disvariant-variant.
" DATA: VARIANT like disvariant-variant.
select single variant from ltdxd into p_alvdef where report = sy-cprog.
at selection-screen on value-request for p_alvdef.
gs_alv_variant-report = sy-repid.
call function 'REUSE_ALV_VARIANT_F4'
exporting
is_variant = gs_alv_variant
i_save = 'A'
importing
es_variant = gs_alv_variant
exceptions
not_found = 2.
if sy-subrc = 2.
message id sy-msgid type 'S' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
else.
p_alvdef = gs_alv_variant-variant.
endif.
*
refresh listtab.
refresh listtabusd.
refresh ascilistkzt.
refresh ascilistusd.
submit rkkbmlmat with r_matnr in r_matnr with p_werks = p_werks with p_poper = p_poper
with p_bdatj = p_bdatj with p_curtp = '10 Валюта БЕ' with p_alvdef = p_alvdef
exporting list to memory and return.
call function 'LIST_FROM_MEMORY'
tables
listobject = listtab
exceptions
not_found = 1
others = 2.
if sy-subrc ne 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
call function 'LIST_TO_ASCI'
tables
listasci = ascilistkzt
listobject = listtab
exceptions
empty_list = 1
list_index_invalid = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.