пошел_погулять написал(а):
Использую ФМ F4IF_INT_TABLE_VALUE_REQUEST, заполняет нужное мне поле, как при выборе нужного значения зополнить другое поле зависящим значением...
Попробуйте сделать по аналогии со следующим:
Code:
FORM f4_form USING value(p_1) TYPE any value(p_2) TYPE any value(p_3) TYPE any value(p_4) TYPE any
p1 LIKE kala-kalaid p2 LIKE kala-kaladat
p3 LIKE kala-tvers p4 LIKE kala-kalabez .
" чтение значений полей с экрана
it_sval-fieldname = p_1. " Первый параметер
APPEND it_sval.
it_sval-fieldname = p_2. "Второй параметер
APPEND it_sval.
it_sval-fieldname = p_3. "Третий параметер
APPEND it_sval.
it_sval-fieldname = p_4. "Четвертый параметер
APPEND it_sval.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
translate_to_upper = 'X'
TABLES
dynpfields = it_sval " DATA: it_sval TYPE dynpread
EXCEPTIONS " OCCURS 0 WITH HEADER LINE
OTHERS = 1. "поля читаемые с экрана
IF sy-subrc = 0.
READ TABLE it_sval INDEX 1.
IF sy-subrc = 0.
wa_shlp-shlpname = 'ZH_PLAN_CALK'. - средство поиска
wa_shlp-shlptype = 'SH'.
APPEND wa_if TO it_if.
wa_if-shlpfield = 'KALAID'. - название первого поля
wa_if-valfield = p_1.
wa_if-value = space.
APPEND wa_if TO it_if. " it_if TYPE ddshifaces - интерфейс со SH
READ TABLE it_sval INDEX 2.
IF sy-subrc = 0.
wa_if-shlpfield = 'KALADAT'. - название второго поля
wa_if-valfield = p_2.
wa_if-value = space.
APPEND wa_if TO it_if.
READ TABLE it_sval INDEX 3.
IF sy-subrc = 0.
wa_if-shlpfield = 'TVERS'. - название третьего поля
wa_if-valfield = p_3.
wa_if-value = space.
APPEND wa_if TO it_if.
READ TABLE it_sval INDEX 4.
IF sy-subrc = 0.
wa_if-shlpfield = 'KALABEZ'. - название четвертого поля
wa_if-valfield = p_4.
wa_if-value = space.
APPEND wa_if TO it_if.
wa_shlp-interface[] = it_if[].
CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
EXPORTING
shlp = wa_shlp
IMPORTING
rc = wa_rc
TABLES
return_values = it_ret " it_ret TYPE ddshretval
EXCEPTIONS " OCCURS 0 - значения возвр. SH
OTHERS = 1.
****присвоение полям вывода*****************
IF sy-subrc = 0 AND wa_rc = 0.
REFRESH it_sval.
READ TABLE it_ret INDEX 1.
p3 = it_ret-fieldval.
READ TABLE it_ret INDEX 2.
p1 = it_ret-fieldval.
READ TABLE it_ret INDEX 3.
CONCATENATE it_ret-fieldval+6(4)
it_ret-fieldval+3(2)
it_ret-fieldval(2)
INTO p2.
READ TABLE it_ret INDEX 4.
p4 = it_ret-fieldval.
it_sval-fieldname = p_1.
it_sval-fieldvalue = p1.
APPEND it_sval.
it_sval-fieldname = p_2.
WRITE p2 TO it_sval-fieldvalue DD/MM/YYYY .
APPEND it_sval.
it_sval-fieldname = p_3.
it_sval-fieldvalue = p3.
APPEND it_sval.
it_sval-fieldname = p_4.
it_sval-fieldvalue = p4.
APPEND it_sval.
**************типа нажатия на "ENTER"***********
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = it_sval.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. "f4_form
И быть может вам в этой жизни подвезет
