F4 Value Request FM Using Fieldnames
Is there any for F4 value request function module using Field name as input? For example BUKRS
Hi,
Field A - BELNR
Field B - BUKRS (get f4 help based on field A)
Use:
PARAMETERS : p_belnr TYPE belnr,
p_bukrs TYPE bukrs.
DATA : BEGIN OF itab OCCURS 0,
bukrs TYPE bukrs,
END OF itab.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_bukrs.
PERFORM f4_bukrs_help USING p_bukrs.
*& Form f4_bukrs_help
* text
* -->P_BUKRS text
FORM f4_bukrs_help USING p_bukrs.
DATA : itab TYPE STANDARD TABLE OF it WITH HEADER LINE,
tb_dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE,
v_belnr TYPE belnr.
CLEAR: tb_dynpfields.
REFRESH: tb_dynpfields.
MOVE 'P_BELNR' TO tb_dynpfields-fieldname.
APPEND tb_dynpfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = 'Z_F4' "program name
dynumb = '1000' "screen number
TABLES
dynpfields = tb_dynpfields
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE tb_dynpfields INDEX 1.
IF sy-subrc EQ 0.
v_belnr = tb_dynpfields-fieldvalue.
ENDIF.
SELECT bukrs from <db_table> INTO TABLE itab WHERE belnr = v_belnr.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'BURKS' "internal table field
dynpprog = 'Z_F4' "program name
dynpnr = '1000' "screen number
dynprofield = 'P_BUKRS' "screen field name
value_org = 'S'
TABLES
value_tab = itab "internal table
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " f4_bukrs_help
Hope this helps you.
Regards,
Tarun
Similar Messages
-
Problem using At Selection Screen on value request for *"Select Fieldname"*
Hi All,
I Have a requirement of passing mutiple paraters value or selection option values in selection screen.
For Eg :I Have -
*--- Selection Screen
Select-options : s1 for vbak-vbeln ,
s2 for vbap-posnr.
*--- At Selection Screen
At Selection Screen on value request for s1-low.
i need to pass S1-low as well as S2-low ...
i.e first item of the Sales Document.
Value is getting passed in S1-low but not in S2-low
Can anybody help me on this ...
Thanks in Advance ..Hi,
Make use of the FM "F4IF_INT_TABLE_VALUE_REQUEST" for the value request for the first field.
Use the "FIELD_MAPPING" in the tables parameter of the above FM.
Please go through the FM documentation.
Hope this will help you.
Regards,
Smart Varghese -
How to use F4 help in screens(Process on Value-request) ?
Hi experts,
Can someone provide me some code which uses Process on Value-request in dialog programming? I have a requirement of entering a path on a modal dialog box that i have designed and i need to attach the f4_filename function module to it ?Please help...
Thanks in advance,
regards
Ashwin.Hi Ashwin,
Can use the function module HELP_VALUES_GET_NO_DD_NAME.
Here is the sample code that can help you using this for F4 help.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_field-low.
PERFORM F4_HELP.
*& Form F4_HELP
FORM F4_HELP .
CLEAR : I_FIELDS1,I_CONTENTS1.
REFRESH : I_FIELDS1,I_CONTENTS1.
I_FIELDS1-TABNAME = 'YHPA0TPROJ'.
I_FIELDS1-FIELDNAME = 'YHPPROJ'.
I_FIELDS1-SELECTFLAG = 'X'.
APPEND I_FIELDS1.
CLEAR I_FIELDS1.
I_FIELDS1-TABNAME = 'YHPA0TPROJ'.
I_FIELDS1-FIELDNAME = 'YHPPDES'.
I_FIELDS1-SELECTFLAG = ' '.
APPEND I_FIELDS1.
CLEAR I_FIELDS1.
SELECT YHPPROJ
YHPPDES
FROM YHPA0TPROJ
INTO TABLE I_CONTENTS1.
IF NOT I_CONTENTS1[] IS INITIAL.
CALL FUNCTION 'HELP_VALUES_GET_NO_DD_NAME'
EXPORTING
SELECTFIELD = 'YHPPROJ'
IMPORTING
IND = V_IND1
TABLES
FIELDS = I_FIELDS1
FULL_TABLE = I_CONTENTS1
EXCEPTIONS
FULL_TABLE_EMPTY = 1
NO_TABLESTRUCTURE_GIVEN = 2
NO_TABLEFIELDS_IN_DICTIONARY = 3
MORE_THEN_ONE_SELECTFIELD = 4
NO_SELECTFIELD = 5
OTHERS = 6.
IF SY-SUBRC EQ 0.
READ TABLE I_CONTENTS1 INDEX V_IND1.
P_PROJ = I_CONTENTS1-YHPPROJ.
P_YHPDES = I_CONTENTS1-YHPPDES.
ENDIF.
ELSE.
MESSAGE I000(YHPA0K) WITH 'No projects available'.
MESSAGE I519(YHPA0K). " No projects available
EXIT.
ENDIF.
ENDFORM.
Hope this helps you.
Regards,
Saumya -
Any Functions can I use Search Help on VALUE-REQUEST in PAI.
Hi~!! Experts.
I want to know some functions or methods of Search Help.
I have made a ZHxxxx Search Help in SE11.
And I applied a screen field by using screen painter.
But I want to fill up the other fields, using selected value.
So I made a Module under th PROCESS On VALUE-REQUEST.
unfortunately, I can't use no more The Search that I made.
I want to using the Search Help(ZHxxxx), and I want to fill up the other fields by using that's values.
I guess some F4 functions can use Search Help. Right?
Anyone know how to deal it. Please answer me,. The program Type is Module Pool program.Hi Insik,
Proceed as below :-
First of all declare the module below in the flow logic of your screen then create it in your main program.
You declare the module in the PROCESS ON VALUE-REQUEST.
PROCESS ON VALUE-REQUEST.
FIELD TXT_DOCNO MODULE VALUE_BELNR.
You also need to create an internal table where you wil store results of the select query fired below in the module.
Here you will get a F4 help on the filed Document Number(TXT_DOCNO) based on the field Company code (TXT_CODCO)
MODULE VALUE_BELNR INPUT.
progname = sy-repid.
dynnum = sy-dynnr.
CLEAR: field_value, dynpro_values.
field_value-fieldname = 'TXT_CODCO'.
APPEND field_value TO dynpro_values.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'BKPF'
fieldname = 'BUKRS'
dynpprog = progname
dynpnr = dynnum
dynprofield = 'TXT_CODCO'.
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 BUKRS BELNR
FROM BKPF
INTO CORRESPONDING FIELDS OF TABLE it_doc1
WHERE BUKRS = field_value-fieldvalue.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'BELNR'
dynpprog = progname
dynpnr = dynnum
dynprofield = 'TXT_BELNR'
value_org = 'S'
TABLES
value_tab = it_doc1.
ENDMODULE. " VALUE_BELNR INPUT
Regards
Abhii -
Null values returned when using request.getParameters(
I have a html form which allows the user to choose options and select a file to upload. When I use method=Post I get null values returned. When I use method=Get I get my parameter values fine.. but I get an error.
"Posted content type isn't multipart/form-data"
I would like to know why I am getting null values returned when using Post. I am using the following to get the values from the name=value passed to the servlet.
String strIndustry = request.getParameter("frmIndustry");
String strCompany = request.getParameter("frmCompany");
String strCollabType = request.getParameter("frmCollaboration");
I have another form where the user can search information in a database that works just fine w/ either Get or Post
Or perhaps I am using oreilly MultipartRequest incorrectly??? but I copied it directly from another discussion.. ???
any thoughts
Thankstaybon:
you could do it like this. in this case, you submit your form with the parameters (industry, company, collaboration), and upload your file at the same time. and in the target servlet, you can build your MultipartRequest object like this:
MultipartRequest multi = new MultipartRequest(request, temp_location, 50 * 1024);where variable temp_location stands for a temporatory diretory for file uploading.
and then you get your parameters, so you can build the directory with them. and after that, you can move your file to that directory using File.renameTo();
but as i've suggested in my previous posting, i just recommend you upload your file in a separate form. and then you can perform an oridianry doPost form submit with those parameters. or you may have problems with the file uploading. (this is just my personal experiences with Multipart).
there is one other thing i'd like to mention, file.renameTo() won't work if you need to move files to a network drive in windows. it won't work if you move files across file systems in unix.
Song xiaofei
Developer Technical Support
Sun Microsystems
http://www.sun.com/developers/support -
How to get parameter value from report in event of value-request?
Hi everyone,
The customer want to use particular F4 help on report, but some input value before press enter key are not used in event of "at selection-screen on value-request for xxx", How to get parameter value in this event?
many thanks!
JackYou probably want to look at function module DYNP_VALUES_READ to allow you to read the values of the other screen fields during the F4 event... below is a simple demo of this - when you press F4 the value from the p_field is read and returned in the p_desc field.
Jonathan
report zlocal_jc_sdn_f4_value_read.
parameters:
p_field(10) type c obligatory, "field with F4
p_desc(40) type c lower case.
at selection-screen output.
perform lock_p_desc_field.
at selection-screen on value-request for p_field.
perform f4_field.
*& Form f4_field
form f4_field.
*" Quick demo custom pick list...
data:
l_desc like p_desc,
l_dyname like d020s-prog,
l_dynumb like d020s-dnum,
ls_dynpfields like dynpread,
lt_dynpfields like dynpread occurs 10.
l_dynumb = sy-dynnr.
l_dyname = sy-repid.
*" Read screen value of P_FIELD
ls_dynpfields-fieldname = 'P_FIELD'.
append ls_dynpfields to lt_dynpfields.
call function 'DYNP_VALUES_READ'
exporting
dyname = l_dyname
dynumb = l_dynumb
tables
dynpfields = lt_dynpfields
exceptions
others = 1.
check sy-subrc is initial.
*" See what user typed in P_FIELD:
read table lt_dynpfields into ls_dynpfields
with key fieldname = 'P_FIELD'.
*" normally you would then build your own search list
*" based on value of P_FIELD and call F4IF_INT_TABLE_VALUE_REQUEST
*" but this is just a demo of writing back to the screen...
*" so just put the value from p_field into P_DESC plus some text...
concatenate 'This is a description for' ls_dynpfields-fieldvalue
into l_desc separated by space.
*" Pop a variable value back into screen
clear: ls_dynpfields.
ls_dynpfields-fieldname = 'P_DESC'.
ls_dynpfields-fieldvalue = l_desc.
append ls_dynpfields to lt_dynpfields.
call function 'DYNP_VALUES_UPDATE'
exporting
dyname = l_dyname
dynumb = l_dynumb
tables
dynpfields = lt_dynpfields
exceptions
others = 0.
endform. "f4_field
*& Form lock_p_desc_field
form lock_p_desc_field.
*" Make P_DESC into a display field
loop at screen.
if screen-name = 'P_DESC'.
screen-input = '0'.
modify screen.
exit.
endif.
endloop.
endform. "lock_p_desc_field -
AT SELECTION-SCREEN ON VALUE-REQUEST FOR not input value in input field
Dear All,
I make search help for field ARBPL in selection screen are not excepted selected value.
Code is
SELECT-OPTIONS: p_arbpl FOR zdmde-arbpl MODIF ID two.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_arbpl-low.
REFRESH sh_arbpl.
SELECT * from crhd into CORRESPONDING FIELDS OF TABLE sh_arbpl.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'P_ARBPL'
DYNPROFIELD = 'P_ARBPL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = sh_arbpl.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_arbpl-high.
REFRESH sh_arbpl.
SELECT * from crhd into CORRESPONDING FIELDS OF TABLE sh_arbpl.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'P_ARBPL'
DYNPROFIELD = 'P_ARBPL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = sh_arbpl.
Please tell how to input selected field from search help into input field in both low and high.
Would appreciate your reply .
Regards,
PoojaHi Pooja,
For getting the response back from the user selection , please get the return code too. Before that instead of directly using the table crhd structure.. please do create a type declaration of that table , make sure that the field that you wanted to get using search help be specified at last of declaration type like this
TYPES: BEGIN OF ty,
OBJTY TYPE CR_OBJTY,
ARBPL TYPE ARBPL,
END OF ty.
this is because the return parameter t_rtn will holds the last value of type which been selected by user.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'P_ARBPL'
DYNPROFIELD = 'P_ARBPL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = sh_arbpl
return_tab = t_rtn.
LOOP AT t_rtn INTO x_rtn .
ENDLOOP.
try executing this code.
TABLES crhd.
TYPES: BEGIN OF ty,
OBJTY TYPE CR_OBJTY,
ARBPL TYPE ARBPL,
END OF ty.
DATA: sh_arbpl TYPE TABLE OF ty.
DATA: dynpfields TYPE TABLE OF DYNPREAD,
x_dynpfields TYPE dynpread,
t_rtn TYPE STANDARD TABLE OF DDSHRETVAL ,
x_rtn TYPE DDSHRETVAL.
SELECT-OPTIONS: p_arbpl FOR crhd-ARBPL MODIF ID two.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_arbpl-low.
REFRESH sh_arbpl.
SELECT * from crhd into CORRESPONDING FIELDS OF TABLE sh_arbpl WHERE werks eq '1000'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'P_ARBPL'
DYNPROFIELD = 'P_ARBPL'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = sh_arbpl
return_tab = t_rtn.
LOOP AT t_rtn INTO x_rtn .
ENDLOOP.
x_dynpfields-fieldname = 'P_ARBPL-LOW' .
x_dynpfields-fieldvalue = x_rtn-fieldval.
APPEND x_dynpfields TO dynpfields.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = dynpfields
* EXCEPTIONS
* INVALID_ABAPWORKAREA = 1
* INVALID_DYNPROFIELD = 2
* INVALID_DYNPRONAME = 3
* INVALID_DYNPRONUMMER = 4
* INVALID_REQUEST = 5
* NO_FIELDDESCRIPTION = 6
* UNDEFIND_ERROR = 7
* OTHERS = 8
Regards,
Sivaganesh -
F4 help needed in Process on value-request
Hi,
I have two fields on screen: region and its description in a dialog program. I want region description to be populated as soon as I select F4 help for region. Description field is output only . I want to do it using a module in Process On value-request. Field p_region MODULE GET_REGION_DESCRIPTION.
Using standard F4 help I can do it. If in my table I assign search help at field level for region. For example :
Search Help: ZREGION_SHLP. Selection method: ZREGION. Fields: Region and Description.
Table name : ZREGION.
i) 1st Fields: REGION , Data Element - ZREGN, Domain: ZZREGN ( CHAR2), Value table: ZREGN. Assign Search help at field level instead of data element level.
ii) 2nd Field: REGION_DESC, Data Element - BEZEI30.
in program: DATA: p_region like zregion-region. So if I press F4 help and select one region, description field gets populated.
I don't want to use standard functionality but want to write code in POV event. If I use F4IF_INT_TABLE_VLUE_REQUEST function module, I will get all the values associated with the field region. Since I don't know which region user has selected, i can't populate description. How to get the selected value in POV for that particular field. How can I get the value selected for region and then use DYNP_VALUES_UPDATE function module to update the description field. I tried search help exit event return to return the selected value. How to pass that value in POV module as you cannot use FORM ENDFORM . inside MODULE ENDMODULE.
Regards,
DPM1st step is:
choose screen 2000 for the program using t-code se80.
at the end of the coding enter the below code:
process ON VALUE-REQUEST.
FIELD screen field name module f4_zsearchhelp.
after typing the code double click on f4_zsearch help.
it ll ask for includes, Choose as main program.
then enter the below code after choosing:
DATA : t_dynpro_value TYPE TABLE OF dynpread,
v_field_value LIKE LINE OF t_dynpro_value,
lt_fields TYPE TABLE OF dfies,
t_return_str TYPE TABLE OF ddshretval,
w_return_str TYPE ddshretval,
v_text TYPE char25.
DATA: t_ty_prov_id TYPE STANDARD TABLE OF ty_prov_id,
w_ty_prov_id TYPE ty_prov_id.
CLEAR: t_ty_prov_id], w_ty_prov_id, t_return_str[, w_return_str.
enter the select query from the description table to get the description for the particular code.
in this i had mentioned with an example that i m getting description for massg :
p9001-massg ll have the value and v_text ll have the description.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = 'TY_TAB'
retfield = 'MASSG'------>returning field
PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'P9001-ZMASSG'----
> pass the screen field name
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
value_org = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ''
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
value_tab = t_ty_prov_id
field_tab = lt_fields
return_tab = t_return_str
DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE t_return_str INTO w_return_str WITH KEY retfield = 'P9001-ZMASSG'.
IF sy-subrc IS INITIAL.
READ TABLE t_ty_prov_id INTO w_ty_prov_id WITH KEY zmassg_desc = w_return_str-fieldval.
IF sy-subrc eq 0.
DATA: et_desc(20) TYPE c.
et_desc = w_ty_agrtx-v_gtext.
MODIFY SCREEN.
CLEAR : v_field_value,t_dynpro_value[].
v_field_value-fieldname = 'P9001-ZMASSG'.
v_field_value-fieldvalue = w_ty_prov_id-action_resn.
APPEND v_field_value TO t_dynpro_value .
CLEAR : v_field_value.
v_field_value-fieldname = 'V_TEXT'.
v_field_value-fieldvalue = w_ty_prov_id-zmassg_desc.
APPEND v_field_value TO t_dynpro_value .
CLEAR : v_field_value.
ENDIF .
ENDIF.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = t_dynpro_value
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.
ENDIF.
you can add the v_text in layput .
hope it ll satisfy your requirement. -
AT SELECTION-SCREEN ON VALUE-REQUEST needed
hi,
i want code for atselection-screen for one parameter.
pls check the code i am sending.i am not understanding that if any one knows pls explain me.and it is correct or not.
parameters: P_LDCTY(2).
DATA: BEGIN OF IHELP_FIELDS OCCURS 20.
INCLUDE STRUCTURE HELP_VALUE.
DATA: END OF IHELP_FIELDS.
DATA: BEGIN OF HELPTAB OCCURS 100,
FELD(50),
END OF HELPTAB.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LDCTY matchcode object ZSDOTC_VOYAGE.
REFRESH IHELP_FIELDS.
MOVE 'VBAK' TO IHELP_FIELDS-TABNAME.
MOVE 'ZZLOADCTY1' TO IHELP_FIELDS-FIELDNAME.
MOVE 'X' TO IHELP_FIELDS-SELECTFLAG.
APPEND IHELP_FIELDS.
REFRESH HELPTAB.
SELECT *
FROM ZPORT
ORDER BY ZZCNTRY INTO IHELP_FIELDS.
MOVE ZPORT-ZZCNTRY TO HELPTAB.
APPEND HELPTAB.
ENDSELECT.
CALL FUNCTION 'HELP_VALUES_GET_WITH_TABLE'
EXPORTING
DISPLAY = ' '
FIELDNAME = 'ZZCNTRY'
TABNAME = 'ZPORT'
IMPORTING
SELECT_VALUE = SELECTED_VALUE
TABLES
FIELDS = IHELP_FIELDS
VALUETAB = HELPTAB
EXCEPTIONS
FIELD_NOT_IN_DDIC = 01
MORE_THEN_ONE_SELECTFIELD = 02
NO_SELECTFIELD = 03.
IF SELECTED_VALUE <> SPACE.
P_LDCTY = SELECTED_VALUE.
ENDIF.
pls help mein this issue.
points will be awarded for right answer,
thanks and regards
suneethaHi suneetha,
1. we have to juse like this.
2. a) use FM F4IF_INT_TABLE_VALUE_REQUEST
b) syntax is : AT SELECTION-SCREEN ON VALUE-REQUEST FOR MYFIELD.
3. just copy paste in new program.
4.
Hi prakash,
1. sample code (just copy paste)
2.
REPORT ABC.
DATA : BEGIN OF ITAB OCCURS 0,
UNAME LIKE USR01-BNAME,
END OF ITAB.
data : RETURN_TAB LIKE DDSHRETVAL occurs 0 .
data : RETURN_wa LIKE DDSHRETVAL .
PARAMETERS : A(12) TYPE C.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR A.
ITAB-UNAME = 'U01'. APPEND ITAB.
ITAB-UNAME = 'U02'. APPEND ITAB.
ITAB-UNAME = 'U03'. APPEND ITAB.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'ITAB-UNAME'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'A'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = ITAB
FIELD_TAB = FTAB
RETURN_TAB = return_tab
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3
break-point.
regards,
amit m. -
Problem in at selection-screen on value request
hi friends ,
i want to display f4 help for a field in a popup. this i can do, but this popup comes based on values
i entered in other screen fields . but these values are not updated to screen values when i trigger f4.Hi,
DATA: T_DYNPRO TYPE TABLE OF DYNPREAD,
WA_DYNPRO LIKE LINE OF T_DYNPRO,
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PARAM.
WA_DYNPRO-FIELDNAME = 'Screen Field Name'.
APPEND WA_DYNPRO TO T_DYNPRO.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-REPID
DYNUMB = SY-DYNNR
TRANSLATE_TO_UPPER = 'X'
TABLES
DYNPFIELDS = T_DYNPRO
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE T_DYNPRO INTO WA_DYNPRO WITH KEY FIELDNAME = 'Screen Field Name'.
TEMP = WA_DYNPRO-FIELDVALUE.
" Select the values based on Temp and populate your internal table for F4 help using the Screen value Temp
"Call 'F4IF_INT_TABLE_VALUE_REQUEST' and display the pop up. -
Hallo,
I have the following problem:
I want to jump after a SelectionScreen On Value-Request Block to the SelectionScreen Output Block. But Abap doesn´t go there afterwards.
My "trigger" for the value Request is a normal edit field, so unfortunately I can´t give a User-Command with it.
My intended action is: If I get new information in the value request part, I´d like to set a checkbox initial (remove the check). I can implement this code in the value request block, but it doesn´t work. It only works in the Output Block.
Does somebody have an idea?
TIA and RegardsHi
The event AT SELECTION-SCREEN ON VALUE_REQUEST can update the field managed by the event, if you need to update other field in according to the selected value u need to use the fm DYNP_VALUES_UPDATE:
parameters: p_1,
p_2.
at selection-screen on value-request for p_1.
DATA: DYNAME LIKE D020S-PROG,
DYNUMB LIKE D020S-DNUM,
DYNPFIELDS TYPE TABLE OF DYNPREAD WITH HEADER LINE.
DYNAME = sy-repid.
DYNUMB = sy-dynnr.
DYNPFIELDS-FIELDNAME = 'P_2'.
DYNPFIELDS-FIELDVALUE = 'X'.
APPEND DYNPFIELDS.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
DYNAME = DYNAME
DYNUMB = DYNUMB
TABLES
DYNPFIELDS = DYNPFIELDS.
Max -
I want an example for event Process on Value-request in Module Pool
Hi,
I need to populate f4 values for a field in module pool program under POV event.
Can anyone send me the sample code.
Helpful answers will be rewarded .
Thanks and Regards
AdityaHi
For F4 Values on Screen:
PROCESS ON VALUE_REQUEST
using module call starting with FIELD i.e FIELD field MODULE module
There are number of function modules that can be used for the purpose, but these
can fullfill the task easily or combination of them.
DYNP_VALUE_READ
F4IF_FIELD_VALUE_REQUEST
F4IF_INT_TABLE_VALUE_REQUEST
POPUP_WITH_TABLE_DISPLAY
DYNP_VALUE_READ
This function module is used to read values in the screen fields. Use of this
FM causes forced transfer of data from screen fields to ABAP fields.
There are 3 exporting parameters
DYNAME = program name = SY-CPROG
DYNUMB = Screen number = SY-DYNNR
TRANSLATE_TO_UPPER = 'X'
and one importing TABLE parameter
DYNPFIELDS = Table of TYPE DYNPREAD
The DYNPFIELDS parameter is used to pass internal table of type DYNPREAD
to this FM and the values read from the screen will be stored in this table.This
table consists of two fields:
FIELDNAME : Used to pass the name of screen field for which the value is to
be read.
FIELDVALUE : Used to read the value of the field in the screen.
e.g.
DATA: SCREEN_VALUES TYPE TABLE OF DYNPREAD ,
SCREEN_VALUE LIKE LINE OF SCREEN_VALUES.
SCREEN_VALUE-FIELDNAME = 'KUNNR' . * Field to be read
APPEND SCREEN_VALUE TO SCREEN_VALUES. * Fill the table
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-CPROG
DYNUMB = SY-DYNNR
TRANSLATE_TO_UPPER = 'X'
TABLES
DYNPFIELDS = SCREEN_VALUES.
READ TABLE SCREEN_VALUES INDEX 1 INTO SCREEN_VALUE.Now the screen value for field KUNNR is in the SCREEN_VALUE-FIELDVALUE and can be used for further processing like using it to fill the internal table to be used as parameter in F4IF_INT_TABLE_VALUE_REQUEST ETC.
F4IF_FIELD_VALUE_REQUEST
This FM is used to display value help or input from ABAP dictionary.We have to pass the name of the structure or table(TABNAME) along with the field name(FIELDNAME) . The selection can be returned to the specified screen field if three
parameters DYNPNR,DYNPPROG,DYNPROFIELD are also specified or to a table if RETRN_TAB is specified.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = table/structure
FIELDNAME = 'field name'
DYNPPROG = SY-CPROG
DYNPNR = SY-DYNR
DYNPROFIELD = 'screen field'
IMPORTING
RETURN_TAB = table of type DYNPREAD
F4IF_INT_TABLE_VALUE_REQUEST
This FM is used to dsiplay values stored in an internal table as input
help.This FM is used to program our own custom help if no such input help
exists in ABAP dictionary for a particular field. The parameter VALUE_TAB is used to pass the internal table containing input values.The parameter RETFIELD
is used to specify the internal table field whose value will be returned to the screen field or RETURN_TAB.
If DYNPNR,DYNPPROG and DYNPROFIELD are specified than the user selection is passed to the screen field specified in the DYNPROFIELD. If RETURN_TAB is specified the selectionis returned in a table.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = field from int table whose value will be returned
DYNPPROG = SY-CPROG
DYNPNR = SY-DYNNR
DYNPROFIELD = 'screen field'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = internal table whose values will be shown.
RETURN_TAB = internal table of type DDSHRETVAL
EXCEPTIONS
parameter_error = 1
no_values_found = 2
others = 3.
POPUP_WITH_TABLE_DISPLAY
This FM is used to display the contents of an internal table in a popup window.The user can select a row and the index of that is returned in the CHOISE
parameter.The VALUETAB is used to pass the internal table.
A suitable title can be set using TITLETEXT parameter. The starting and end position of the popup can be specified by the parameters STARTPOS_COL / ROW and ENDPOS_ROW / COL .
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
ENDPOS_COL =
ENDPOS_ROW =
STARTPOS_COL =
STARTPOS_ROW =
TITLETEXT = 'title text'
IMPORTING
CHOISE =
TABLES
VALUETAB =
EXCEPTIONS
BREAK_OFF = 1
OTHERS = 2.
e.g.
DATA: w_choice TYPE SY-TABIX.
DATA: BEGIN OF i_values OCCURS 0 WITH HEADER LINE,
values TYPE I,
END OF i_values.
PARAMETRS : id TYPE I.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR id
i_values-values = '0001'.
APPEND i_values.
i_values-values = '0002'.
APPEND i_values.
i_values-values = '0003'.
APPEND i_values.
i_values-values = '0004'.
APPEND i_values.
CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
EXPORTING
ENDPOS_COL = 40
ENDPOS_ROW = 12
STARTPOS_COL = 20
STARTPOS_ROW = 5
TITLETEXT = 'Select an ID'
IMPORTING
CHOISE = w_choice
TABLES
VALUETAB = i_values
EXCEPTIONS
BREAK_OFF = 1
OTHERS = 2.
CHECK w_choice > 0.
READ TABLE i_values INDEX w_choice....now we can process the selection as it is contained
...in the structure i_values.
Other FM that may be used to provide input help is HELP_START .
Reward points if useful
Regards
Anji -
When I use On Value request for sel_op_fielda, I need to validate another field in my selection screen.... ( Sel_op_fieldb-low in case of this example)
It's... not working. When debbuging the Sel_opfieldb keeps comming initial.
Am I forgotting something?Header line and itab.... both Initial.
I debbuged a standard program and saw it using de Function Indicated by our friend here.
Function: DYNP_VALUES_READ
But still my CN_'s comming Initial.
Code Below:
Data: ti_campos like table of DYNPREAD WITH HEADER LINE,
l_repid like sy-repid.
l_repid = sy-repid.
ti_campos-FIELDNAME = 'CN_PROJN-LOW'.
append ti_campos.
ti_campos-FIELDNAME = 'CN_PROJN-HIGH'.
append ti_campos.
ti_campos-FIELDNAME = 'CN_NETNR-LOW'.
append ti_campos.
ti_campos-FIELDNAME = 'CN_NETNR-HIGH'.
append ti_campos.
ti_campos-FIELDNAME = 'CN_PSPNR-LOW'.
append ti_campos.
ti_campos-FIELDNAME = 'CN_PSPNR-HIGH'.
append ti_campos.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = l_repid
dynumb = sy-dynnr
TRANSLATE_TO_UPPER = ' '
REQUEST = ' '
PERFORM_CONVERSION_EXITS = ' '
PERFORM_INPUT_CONVERSION = ' '
DETERMINE_LOOP_INDEX = ' '
tables
dynpfields = ti_campos
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Message was edited by:
Jose Oliveira -
AT SELECTION-SCREEN ON VALUE-REQUEST FOR
Experts,
I have two selection parameters on Selection_Screen as subscreen, as below:
Custom Selection Screen 1010
selection-screen begin of screen 1010 as subscreen.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
SELECT-OPTIONS :
s_matnr FOR mara-matnr MODIF ID sc1, "Material
s_grid FOR mara-J_3APGNR MODIF ID sc6, "Grid values "pkb001
SELECTION-SCREEN END OF BLOCK b2.
selection-screen end of screen 1010.
Now i want to populate s_grid (Grid value) based on the values enterd for s_matnr (material ).
but when i want use:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_grid,
I'm not getting the values eneterd in s_matnr..
is the problem beacuse of subcreen?
Answers are highly appriciated.
Thanks.Yes that is correct, Once I hit enter key, then only the value for s_matnr populates, but it is not a good Idea to expect the user to hit the enter key. is there any way i can imitate/simulate "enter" key in the program?
also I'm using the FM:'DYNP_VALUES_READ' but that is also not getting me any value..
below is the code I'm using,
FORM sub_get_grid .
Refresh: t_mara.
data: lin type i.
data: l_dyname type standard table of dynpread,
w_dynpread type dynpread.
clear w_dynpread.
w_dynpread-fieldname = 'S_MATNR'.
append w_dynpread to l_dyname.
clear w_dynpread.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = l_dyname.
*Do not allow to select more than 1 material at a time.
SELECT
MARA~MATNR
INTO TABLE t_mara
FROM MARA
WHERE MARA~MATNR IN s_matnr.
describe table t_mara LINES lin.
If lin > 1.
Refresh: s_matnr.
MESSAGE i000 WITH text-033.
LEAVE LIST-PROCESSING.
* LEAVE TO SCREEN 100.
endif.
ENDFORM. -
On value request for file name
Hi,
when i press f4 in the 'filename' field in selection screen, it must open up a window from where i can select a file from my desktop.
wat should i do for this using 'on value request'?Hi
please find my code
on selection screen there are two radiobuttons 'P_PRES' and
'P_APPL'.
and one parameter where pop up will be displayed acc to the radiobutton selected.
please reward points
CLEAR wa_fieldvalues.
wa_fieldvalues-fieldname = 'P_PRES'.
APPEND wa_fieldvalues TO it_fieldvalues.
CLEAR wa_fieldvalues.
wa_fieldvalues-fieldname = 'P_APPL'.
APPEND wa_fieldvalues TO it_fieldvalues.
CLEAR wa_fieldvalues.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = it_fieldvalues
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.
READ TABLE it_fieldvalues INTO wa_fieldvalues WITH KEY fieldname = 'P_APPL'.
IF wa_fieldvalues-fieldvalue = 'X'.
CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
EXPORTING
i_location_flag = 'A'
IMPORTING
o_location_flag = server_type
o_path = p_outfil
EXCEPTIONS
rfc_error = 1
error_with_gui = 2
OTHERS = 3.
IF syst-subrc <> 0.
MESSAGE i006.
ENDIF.
ELSE.
CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
EXPORTING
i_location_flag = 'P'
IMPORTING
o_location_flag = server_type
o_path = p_outfil
EXCEPTIONS
rfc_error = 1
error_with_gui = 2
OTHERS = 3.
IF syst-subrc <> 0.
MESSAGE i006.
ENDIF.
ENDIF.
please reward points
Maybe you are looking for
-
Where can i find the Datewise stock for a particular material
Hello friends, In which table i can find the stock of a particular material on particular date?.MARD, MCHB these all tables gives the current stock of material.But i want to find the stock of material on particular date.In Report MB5B and MC.9 we can
-
Error "Balance in transaction currency" using T.code J1iex
Hello all, When i am capturing an excise invoice using T.code J1iex, the excise invoice is getting captured, but when we are trying to post the vendor using the same T.code j1iex,it is giving an error"Balance in transaction currency". Ple
-
Can't set the text color of a Spark Button
I'm pretty new to Flex and working on a project with a more senior developer - who's out for a few days. I hope this is a simple question! I've got a CTA button that I want red with white text. This is how I'm doing it: in fx:Style ... .startButton {
-
Installed Vista 64 however boot camp drivers dont work - Help
I have a Macbook Aluminum with 4 gb ram. I just installed vista 64 bit however - i can get Boot camp drivers to run. Please help someone.
-
Can you pls help me on this when the value in col is 765,It has to be splitted into three values 7,6 and 5 this is the below query written and seems it is not working.. begin select length(345) into vl from dual; FOR i in 1 .. vl LOOP