‎2008 Jun 23 1:00 PM
hi,
i need to get F4 HELP for select option zlsch.
i have written following code.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ZLSCH-LOW.
SELECT ZBUKR
ZLSCH
FROM T042E
INTO TABLE GT_T042E
WHERE ZBUKR EQ '0010'.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield ='ZLSCH'
DYNPPROG = sy-cprog
DYNPNR = sy-dynnr
dynprofield = 'S_ZLSCH'
VALUE = '*'
VALUE_ORG = 'S'
tables
value_tab = GT_T042E
RETURN_TAB = return_tab
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.
here i have hardcoded bukrs =0010 in select query, but i need whatever i will give in select option i need to get that.
please help what to do next.
please help if any one has code.
thank you.
‎2008 Jun 23 1:01 PM
Use the function module DYNP_VALUES_READ to get the values on the selection-screen and pass to your select statement.
Regards,
Ravi
‎2008 Jun 23 1:04 PM
HI RAVI,
could you please explain with code.
i mean what values we need to pass.
‎2008 Jun 23 1:06 PM
Sample usage for the FM:
Sample usage:
at selecetion-screen on value request for.....
PLV_DYNP_VAL-FIELDNAME = 'P_MATNR'.
APPEND PLV_DYNP_VAL.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = sy-repid
DYNUMB = sy-DYNNR
TABLES
DYNPFIELDS = PLV_DYNP_VAL
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC EQ 0.
READ TABLE PLV_DYNP_VAL INDEX 1.
IF SY-SUBRC EQ 0 AND PLV_DYNP_VAL-FIELDVALUE NE SPACE.
VALUE = PLV_DYNP_VAL-FIELDVALUE.
ENDIF.
ENDIF.Use the value VALUE in your select
‎2008 Jun 23 1:08 PM
&----
*& Form sub_search_help_sbgrp
&----
Search Help for Credit Rep. Group based on company code value
----
FORM sub_search_help_sbgrp .
DATA: lv_bukrs LIKE LINE OF s_bukrs.
CLEAR gs_dynfields.
Assigning the company code value to the table (DYNPREAD) Fields of the current screen (with values)
gs_dynfields-fieldname = 'S_BUKRS-LOW'.
APPEND gs_dynfields TO gt_dynfields.
gs_dynfields-fieldname = 'S_BUKRS-HIGH'.
APPEND gs_dynfields TO gt_dynfields.
Call this function module to get the values of selection screen for company code
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
translate_to_upper = 'X'
TABLES
dynpfields = gt_dynfields
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.
Get the values obtained for company code into select options s_bukrs
CLEAR gs_dynfields.
FREE: lv_bukrs, s_bukrs.
READ TABLE gt_dynfields INTO gs_dynfields WITH KEY fieldname = 'S_BUKRS-LOW'.
IF sy-subrc = 0.
s_bukrs-low = gs_dynfields-fieldvalue.
ENDIF.
CLEAR gs_dynfields.
READ TABLE gt_dynfields INTO gs_dynfields WITH KEY fieldname = 'S_BUKRS-HIGH'.
IF sy-subrc = 0.
s_bukrs-high = gs_dynfields-fieldvalue.
ENDIF.
lv_bukrs-low = s_bukrs-low.
lv_bukrs-high = s_bukrs-high.
IF lv_bukrs-high IS NOT INITIAL.
lv_bukrs-option = 'BT'.
ELSE.
lv_bukrs-option = 'EQ'.
ENDIF.
lv_bukrs-sign = 'I'.
APPEND lv_bukrs TO s_bukrs .
IF s_bukrs IS NOT INITIAL.
Get the data from Credit management: Credit representative groups (t024b) into internal table
SELECT kkber sbgrp stext
FROM t024b
INTO CORRESPONDING FIELDS OF TABLE gt_t024b
WHERE kkber IN s_bukrs.
IF sy-subrc EQ 0.
SORT gt_t024b BY kkber sbgrp.
ENDIF.
Passing the data of internal table gt_t691b to get the search help for credit group
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'sbgrp'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 's_bukrs-low'
value_org = 'S'
TABLES
value_tab = gt_t024b
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.
ENDIF.
ENDFORM. " sub_search_help_sbgrp
‎2008 Jun 23 1:08 PM
hi
do this to ur code
let ur select-option is z_option
now do the following modification
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ZLSCH-LOW.
SELECT ZBUKR
ZLSCH
FROM T042E
INTO TABLE GT_T042E
WHERE ZBUKR IN Z_OPTION
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield ='ZLSCH'
DYNPPROG = sy-cprog
DYNPNR = sy-dynnr
dynprofield = 'S_ZLSCH'
VALUE = '*'
VALUE_ORG = 'S'
tables
value_tab = GT_T042E
RETURN_TAB = return_tab
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.
Cheers
Snehi
‎2008 Jun 23 1:09 PM
Hi,
Check the below Standard program in se38.
demo_selection_screen_f4
Regards,
Raj.
‎2008 Jun 23 1:14 PM
Hi,
There are also two function modules DYNP_VALUES_READ and DYNP_VALUES_UPDATE that can read the values of screen fields and return values to them during the POV(process on value) event.
Example:
TYPES: BEGIN OF VALUES,
CARRID TYPE SPFLI-CARRID,
CONNID TYPE SPFLI-CONNID,
END OF VALUES.
DATA: CARRIER(3) TYPE C,
CONNECTION(4) TYPE C.
DATA: PROGNAME LIKE SY-REPID,
DYNNUM LIKE SY-DYNNR,
DYNPRO_VALUES TYPE TABLE OF DYNPREAD,
FIELD_VALUE LIKE LINE OF DYNPRO_VALUES,
VALUES_TAB TYPE TABLE OF VALUES.
CALL SCREEN 100.
MODULE INIT OUTPUT.
PROGNAME = SY-REPID.
DYNNUM = SY-DYNNR.
CLEAR: FIELD_VALUE, DYNPRO_VALUES.
FIELD_VALUE-FIELDNAME = 'CARRIER'.
APPEND FIELD_VALUE TO DYNPRO_VALUES.
ENDMODULE.
MODULE CANCEL INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE VALUE_CARRIER INPUT.
CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = 'DEMOF4HELP'
FIELDNAME = 'CARRIER1'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'CARRIER'.
ENDMODULE.
MODULE VALUE_CONNECTION 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 CARRID CONNID
FROM SPFLI
INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB
WHERE CARRID = FIELD_VALUE-FIELDVALUE.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'CONNID'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'CONNECTION'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = VALUES_TAB.
ENDMODULE.In your case :
SELECT-OPTIONS: S_ZBUKR. FOR T042E-ZBUKR.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_ZLSCH-LOW.
SELECT ZBUKR
ZLSCH
FROM T042E
INTO TABLE GT_T042E
WHERE ZBUKR IN S_ZBUKR.
Hope this solves your problem.
Plz reward if useful.
Thanks,
Dhanashri.
Edited by: Dhanashri Pawar on Jun 23, 2008 2:16 PM
‎2008 Jun 23 1:15 PM
Hi Kiran,
why dont u use parameters and check ,
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETER : p_ZBUKR TYPE 'data element of ZBUKR'.
SELECTION-SCREEN END OF BLOCK bl1.
SELECT ZBUKR
ZLSCH
FROM T042E
INTO TABLE GT_T042E
WHERE ZBUKR EQ p_ZBUKR.
**Reward if helpful*
Regards,
Ruby.