‎2011 Nov 23 7:45 AM
I have 3 fields on screen. Company code, fiscal year(04 char) and period(03 char). Table from which I am extracting this data contains 3 fields Process_name, Company code and fiscal_year_period(07 char). After populating comp code and fiscal year when I do F4 for period on screen, I get blank screen with message Restrict value range (2 entries found). Ideally I should get only one value. Sample code below.
Data : Begin of values_tab_P occurs 0,
comp_code like ZIFRS_D_PROCESS-comp_code,
FIS_YR_PRD(7) type c," ZIFRS_D_PROCESS-FIS_YR_PRD,
end of values_Tab_P.
data : begin of tmp_values_tab_p occurs 0,
period(3) type c,
end of tmp_values_tab_p.
PROCESS ON VALUE-REQUEST.
FIELD COMP_CODE MODULE POPULATE_COMP_CODE.
FIELD FISCAL_YEAR_TEXT MODULE POPULATE_FISCAL_YEAR_TEXT.
FIELD PERIOD_TEXT MODULE POPULATE_PERIOD_TEXT.
MODULE POPULATE_PERIOD_TEXT INPUT.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = PROGNAME
DYNUMB = DYNNUM
TRANSLATE_TO_UPPER = 'X'
TABLES
DYNPFIELDS = DYNPRO_VALUES.
READ TABLE DYNPRO_VALUES INDEX 1 INTO FIELD_VALUE.
SELECT comp_code FIS_YR_PRD FROM ZIFRS_D_PROCESS
INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB_P
where comp_code = FIELD_VALUE-IELDVALUE AND PROC_NAME = 'DEPRECIATION RUN'.
READ TABLE VALUES_TAB_P INDEX 1.
write VALUES_TAB_P+8(3) to tmp_values_tab_p-period.
append tmp_values_tab_p. " Required values gets populated in tmp_values_tab_p
READ TABLE tmp_values_tab_p INDEX 1.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'PERIOD_TEXT'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'PERIOD_TEXT'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = tmp_values_tab_p.
REFRESH tmp_values_tab_p.
ENDMODULE. " POPULATE_PERIOD_TEXT INPUT
‎2011 Nov 23 8:52 AM
Hi.
Instead of using TYPE c try using a dictionary data element, that may be the issue. When using F4IF_INT_TABLE_VALUE_REQUEST you always need to use dictionary data elements, otherwise you get a blank screen.
data : begin of tmp_values_tab_p occurs 0,
period(3) type c,
end of tmp_values_tab_p.
‎2011 Nov 23 8:52 AM
Hi.
Instead of using TYPE c try using a dictionary data element, that may be the issue. When using F4IF_INT_TABLE_VALUE_REQUEST you always need to use dictionary data elements, otherwise you get a blank screen.
data : begin of tmp_values_tab_p occurs 0,
period(3) type c,
end of tmp_values_tab_p.
‎2011 Nov 23 8:57 AM
period type char03 will do
<removed code tags>
Edited by: Suhas Saha on Nov 23, 2011 2:42 PM