У меня на Dynpro есть текстовое поле с именем OUT_STR.
Когда я нажимаю некоторую кнопку на Dynpro у меня после выполнения некоторого кода в этом поле должна появляться некоторая текстовая информация (ну, напр., "123456789").
В PAI-модуле я пишу:
Code:
MODULE user_command_0100 INPUT.
DATA: f_name TYPE fieldname,
f_value TYPE fieldvalue.
CLEAR g_ok_code.
CASE sy-ucomm.
WHEN 'BTN_1'.
................
f_name = 'OUT_STR'.
f_value = '123456789'.
PERFORM write_text
USING f_name
f_value.
..................
ENDMODULE. " USER_COMMAND_0100 INPUT
Затем пишу подпрограмму:
Code:
FORM write_text
USING p_f_name TYPE fieldname
p_f_value TYPE fieldvalue.
DATA: dynpro_fields LIKE dynpread OCCURS 1 WITH HEADER LINE.
DATA: progname TYPE sy-repid,
dynnum TYPE sy-dynnr.
progname = sy-repid.
dynnum = sy-dynnr.
FREE: dynpro_fields.
dynpro_fields-fieldname = p_f_name.
dynpro_fields-fieldvalue = p_f_value.
APPEND dynpro_fields.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = progname
dynumb = dynnum
TABLES
dynpfields = dynpro_fields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
* MODIFY SCREEN.
* MESSAGE 'OK!!!' TYPE 'I'.
ENDIF.
ENDFORM. " WRITE_TEXT
Но при нажатии на кнопку текстовое поле остается пустым.
Что тут не так? И как мне сделать вывод текста?