2012 Nov 21 8:46 AM
Hi Experts,
Scenario: I have two input fields A and B (Module Pool program).
Based on the value of input field B that I have selected by using F4 or writing, I have to fetch the value of input field A.
Requirement: Under the POV when I am feching the value of input field B after selecting it, I have found no value but when i am giving enter after selecting or writing the value, I am getting the value.
My requirement is to fetch the value when I am writing or selecting the value by using F4 without giving the enter.
Hi Experts,
Scenario: I have two input fields A and B (Module Pool program).
Based on the value of input field B that I have selected by using F4 or writing, I have to fetch the value of input field A.
Requirement: Under the POV when I am feching the value of input field B after selecting it, I have found no value but when i am giving enter after selecting or writing the value, I am getting the value.
My requirement is to fetch the value when I am writing or selecting the value by using F4 without giving the enter.
2012 Nov 21 8:52 AM
Use DYNP_VALUES_UPDATE in the event and update field A. Search for more details.
Un-marking as question due to basic nature.
2012 Nov 21 11:54 AM
2012 Nov 21 8:57 AM
Hello Suman,
Use FM DYNP_VALUES_READ to read values from selection screen.
For ex :
refresh s_kunnr.
CLEAR: lw_dyfields.
lw_dyfields-fieldname = 'S_KUNNR-LOW'.
APPEND lw_dyfields TO lt_dyfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
translate_to_upper = c_x
TABLES
dynpfields = lt_dyfields.
You will get field value in table lt_dyfields.
Regards,
Deepti
2012 Nov 21 11:30 AM
2012 Nov 21 9:01 AM
Hi,
Almost same scenario I have,in one EHS DEVELOPEMENT.
but not in Module pool.
u can try like
1)within one perform(subroutine)
DATA: BEGIN OF it_person_id OCCURS 0,
person_id TYPE t7ehs00_mappernr-person_id,
END OF it_person_id.
DATA : wa_person_id LIKE LINE OF it_person_id.
SELECT DISTINCT person_id FROM t7ehs00_mappernr
INTO CORRESPONDING FIELDS OF TABLE it_person_id.
CLEAR it_person_id .
SORT it_person_id BY person_id.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'P_ID'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'P_ID'
value_org = 'S'
display = 'F'
TABLES
value_tab = it_person_id
* FIELD_TAB =
return_tab = it_return1
* DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
p_id = it_return1-fieldval.
2)after that,
based on previous value i used ONE fm
CALL FUNCTION 'DYNP_VALUES_READ' for that
my code was
DATA : BEGIN OF it_srv_number OCCURS 0,
srv_number TYPE t7ehs00_service-srv_number,
END OF it_srv_number.
DATA: it_srv_number1 LIKE TABLE OF it_srv_number.
DATA: BEGIN OF it_intpernr OCCURS 0,
intpernr TYPE t7ehs00_mappernr-intpernr,
person_id TYPE t7ehs00_mappernr-person_id,
END OF it_intpernr.
DATA : wa_intpernr LIKE LINE OF it_intpernr.
DATA : lv_fieldvalue TYPE dynfieldvalue,
lwa_dynpread TYPE dynpread,
lt_dynpread TYPE TABLE OF dynpread.
lwa_dynpread-fieldname = 'FORMO'.
APPEND lwa_dynpread TO lt_dynpread.
lwa_dynpread-fieldname = 'VISION'.
APPEND lwa_dynpread TO lt_dynpread.
lwa_dynpread-fieldname = 'STOOL'.
APPEND lwa_dynpread TO lt_dynpread.
lwa_dynpread-fieldname = 'P_ID'.
APPEND lwa_dynpread TO lt_dynpread.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = lt_dynpread
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
OTHERS = 11.
IF sy-subrc IS INITIAL.
CLEAR : lwa_dynpread.
READ TABLE lt_dynpread INTO lwa_dynpread WITH KEY fieldname = 'P_ID'.
p_id = lwa_dynpread-fieldvalue.
READ TABLE lt_dynpread INTO lwa_dynpread WITH KEY fieldname = 'FORMO'.
formo = lwa_dynpread-fieldvalue.
IF formo NE 'X'.
READ TABLE lt_dynpread INTO lwa_dynpread WITH KEY fieldname = 'VISION'.
vision = lwa_dynpread-fieldvalue.
IF vision NE 'X'.
READ TABLE lt_dynpread INTO lwa_dynpread WITH KEY fieldname = 'STOOL'.
stool = lwa_dynpread-fieldvalue.
ENDIF.
ENDIF.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_id
IMPORTING
output = p_id.
IF formo = 'X'.
SELECT srv_number FROM t7ehs00_srv_prot
INTO TABLE it_srv_number1
WHERE pnumber = 'IME'
OR pnumber = 'PM1'
OR pnumber = 'PM2'
or pnumber = 'PM3'.
ELSEIF vision = 'X'.
SELECT srv_number FROM t7ehs00_srv_prot
INTO TABLE it_srv_number1
WHERE pnumber = 'VT'.
ELSEIF stool = 'X'.
SELECT srv_number FROM t7ehs00_srv_prot
INTO TABLE it_srv_number1
WHERE pnumber = 'ST'.
ENDIF.
SELECT SINGLE intpernr person_id FROM t7ehs00_mappernr
INTO wa_intpernr
WHERE person_id = p_id.
if it_srv_number1[] is not INITIAL.
SELECT DISTINCT srv_number FROM t7ehs00_service
INTO TABLE it_srv_number
for all ENTRIES IN it_srv_number1
WHERE srv_number = it_srv_number1-srv_number
and pernr = wa_intpernr-intpernr.
endif.
CLEAR it_srv_number .
SORT it_srv_number BY srv_number.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'P_NUMBER'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'P_NUMBER'
value_org = 'S'
display = 'F'
TABLES
value_tab = it_srv_number
** FIELD_TAB =
return_tab = it_return2
** DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
Hope it helpful for You.
Thanks
Gourav.
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |