Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Update selection-screen

daixiong_jiang3
Active Participant
0 Likes
479

1.source code

{

AT SELECTION-SCREEN ON cb_rep.

PERFORM sub_set_para1.

AT SELECTION-SCREEN ON p_para1.

PERFORM sub_validate_para1.

}

2.problem:

Subroutine 'sub_set_para1' will fetch data and process it.

for example: P_PARA1 = 'ABC' .

Subroutine 'sub_validate_para1.' will check the value of P_PARA1:

{

IF P_PARA1 = 'ABC'.

MESSAGE e398(00) with p_para1 'is wrong' space space.

ENDIF.

}

The problem is the message type is 'E' so the program is still at the 'PAI' of 'SELECTION-SCREEN'

and the value of 'P_PARA1' can not display untill next PBO. But the value 'ABC' has appeared in the message, which will puzzle the user.

So what i want to know is how to refresh 'SELECTION-SCREEN' between two events 'AT selection-screen on '.

u2019DYNP_VALUES_UPDATEu2018 seems not work.

lth_dynpread-fieldname = 'P_PARA1'.

lth_dynpread-fieldvalue = 'ABC'.

APPEND lth_dynpread TO ltd_dynpread.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = SY-REPID

dynumb = SY-DYNNR

tables

dynpfields = ltd_dynpread.

2 REPLIES 2
Read only

venkat_o
Active Contributor
0 Likes
423

Hi Jiang,

Here is one example which is suitable for your requirement. It works fine.

<pre>

REPORT zvenkat_f4_for_parameters MESSAGE-ID zmsg .

&----


" Declaration part

&----


TYPES:

BEGIN OF t_t001w,

werks TYPE t001w-werks,

name1 TYPE t001w-name1,

END OF t_t001w,

t_return_tab TYPE ddshretval.

DATA:

w_t001w TYPE t_t001w,

w_return_tab TYPE t_return_tab.

DATA:

i_t001w TYPE STANDARD TABLE OF t_t001w,

i_return_tab TYPE STANDARD TABLE OF t_return_tab.

&----


"SELECTION-SCREEN

&----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

PARAMETERS :p_werks TYPE t001w-werks,

p_name1 TYPE t001w-name1.

SELECTION-SCREEN END OF BLOCK b1.

&----


" AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_werks

&----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_werks.

PERFORM f4_help_for_palant.

&----


*& Form f4_help_for_palant

&----


FORM f4_help_for_palant.

DATA:

w_dynpfields TYPE dynpread,

i_dynpfields LIKE STANDARD TABLE OF dynpread.

IF i_t001w[] IS INITIAL.

SELECT werks name1

FROM t001w

INTO TABLE i_t001w.

ENDIF.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = 'WERKS'

dynpprog = sy-repid

dynpnr = sy-dynnr

dynprofield = 'P_WERKS'

value_org = 'S'

TABLES

value_tab = i_t001w

return_tab = i_return_tab.

READ TABLE i_return_tab INTO w_return_tab INDEX 1.

p_werks = w_return_tab-fieldval.

READ TABLE i_t001w INTO w_t001w WITH KEY werks = p_werks.

IF sy-subrc = 0.

w_dynpfields-fieldname = 'P_NAME1'.

w_dynpfields-fieldvalue = w_t001w-name1.

APPEND w_dynpfields TO i_dynpfields.

CLEAR w_dynpfields.

CALL FUNCTION 'DYNP_VALUES_UPDATE'

EXPORTING

dyname = sy-repid

dynumb = sy-dynnr

TABLES

dynpfields = i_dynpfields.

ENDIF.

ENDFORM. " f4_help_for_palant

</pre>

Thanks

Venkat.O

Read only

former_member229729
Active Participant
0 Likes
423

Hi,

Instead of :

MESSAGE e398(00) with p_para1 'is wrong' space space.

Please try with:

MESSAGE S398(00) DISPLAY LIKE 'E'

with p_para1 'is wrong' space space .

Rgds,

Ramani N