Change text of button dynamically on screen of Module Pool programming

DATA text(30) value ”.
DATA : repid TYPE sy–repid.
DATA : f1 TYPE TABLE OF trmsg WITH HEADER LINE.
DATA : dynp_header   TYPE d020s,
tdynp_fields  TYPE TABLE OF d021s,
tdynp_logic   TYPE TABLE OF d022s,
tdynp_matchc  TYPE TABLE OF d023s,
dynp_fields  TYPE d021s,
dynp_logic   TYPE d022s,
dynp_matchc  TYPE d023s.

DATA: BEGIN OF dynproname,
prog LIKE d020s–prog,
dnum LIKE d020s–dnum,
END OF dynproname.

CASE sy–ucomm.
WHEN ‘BUTTON’.
repid = sy–repid.

CLEAR: dynp_header, dynp_fields, dynp_logic, dynp_matchc.
REFRESH: tdynp_fields, tdynp_logic, tdynp_matchc.

dynproname–prog = repid.
dynproname–dnum = ‘9000’.

IMPORT DYNPRO dynp_header tdynp_fields
tdynp_logic  tdynp_matchc ID dynproname.

LOOP AT tdynp_fields INTO dynp_fields
WHERE fnam = ‘BUTTON’.
dynp_fields–stxt = text.
dynp_fields–leng = 20.
MODIFY  tdynp_fields FROM dynp_fields.
ENDLOOP.

EXPORT DYNPRO dynp_header tdynp_fields
tdynp_logic  tdynp_matchc ID dynproname.

GENERATE DYNPRO dynp_header tdynp_fields
tdynp_logic  tdynp_matchc ID dynproname MESSAGE f1 LINE f1 WORD f1 .
ENDCASE.