2008 May 20 2:08 PM
PARAMETER : cntlarea LIKE CSKS-KOKRS OBLIGATORY.
my requirement is this : when the user click on F4, all the CSKS-KOKRS values should be displayed.
for this i used the following code:
SELECT KOKRS FROM CSKS INTO TABLE ITAB.
AT Selection-screen on value-request for cntlarea.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KOKRS'
DYNPPROG = sy-repid
DYNPNR = sy-dynnr
DYNPROFIELD = 'CNTRLAREA'
WINDOW_TITLE = 'SELECT'
tables
value_tab = ITAB
The o/p is : No values found.
Please help me out.
2008 May 20 2:30 PM
Hi Chirsty,
Please check the following,
Check for the internal table declaration, as in the select statement you are fetching KOKRS only. Instead use corresponding fields or declare ITAB with only 1 field.
Also in the the FM pass VALUE_ORG = 'S'.
PARAMETER : cntlarea LIKE CSKS-KOKRS OBLIGATORY.
AT Selection-screen on value-request for cntlarea.
SELECT KOKRS FROM CSKS INTO corresponding fields of TABLE ITAB.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KOKRS'
DYNPPROG = sy-repid
DYNPNR = sy-dynnr
DYNPROFIELD = 'CNTRLAREA'
WINDOW_TITLE = 'SELECT'
VALUE_ORG = 'S'
tables
value_tab = ITAB.
Thanks
Lakshman
Edited by: Lakshman Tandra on May 20, 2008 3:30 PM
Hi,
Try with this code
&----
*& Report YF4 *
*& *
&----
*& *
*& *
&----
REPORT yf4 .
TABLES:VBAK.
PARAMETERS:P_VBELN TYPE VBELN_VA,P_VKORG TYPE VKORG.
SELECT-OPTIONS:P_KUNNR FOR VBAK-KUNNR.
*PARAMETERS:P_KUNNR TYPE KUNNR.
TYPES: BEGIN OF ty_VBAK,
VBELN TYPE VBELN_VA,
VKORG TYPE VKORG,
KUNNR TYPE KUNNR,
END OF TY_VBAK.
DATA: T_VBAK TYPE TABLE OF TY_VBAK INITIAL SIZE 0.
DATA: BEGIN OF T_KUNNR OCCURS 0,
KUNNR TYPE KUNNR,
END OF T_KUNNR.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VBELN.
PERFORM SUB_F4_VBELN.
FORM SUB_F4_VBELN.
select vbeln VKORG KUNNR from vbak into table t_vbak up to 20 rows.
*SELECT KUNNR FROM VBAK INTO TABLE T_KUNNR UP TO 20 ROWS.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'VBELN'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_VBELN'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
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.
ENDFORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VKORG.
PERFORM SUB_F4_VKORG.
FORM SUB_F4_VKORG.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'VKORG'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_VKORG'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
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.
ENDFORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_KUNNR-LOW.
PERFORM SUB_F4_KUNNR.
FORM SUB_F4_KUNNR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'KUNNR'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_KUNNR'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
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.
ENDFORM.
2008 May 20 2:11 PM
Hi,
Try with this code
&----
*& Report YF4 *
*& *
&----
*& *
*& *
&----
REPORT yf4 .
TABLES:VBAK.
PARAMETERS:P_VBELN TYPE VBELN_VA,P_VKORG TYPE VKORG.
SELECT-OPTIONS:P_KUNNR FOR VBAK-KUNNR.
*PARAMETERS:P_KUNNR TYPE KUNNR.
TYPES: BEGIN OF ty_VBAK,
VBELN TYPE VBELN_VA,
VKORG TYPE VKORG,
KUNNR TYPE KUNNR,
END OF TY_VBAK.
DATA: T_VBAK TYPE TABLE OF TY_VBAK INITIAL SIZE 0.
DATA: BEGIN OF T_KUNNR OCCURS 0,
KUNNR TYPE KUNNR,
END OF T_KUNNR.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VBELN.
PERFORM SUB_F4_VBELN.
FORM SUB_F4_VBELN.
select vbeln VKORG KUNNR from vbak into table t_vbak up to 20 rows.
*SELECT KUNNR FROM VBAK INTO TABLE T_KUNNR UP TO 20 ROWS.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'VBELN'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_VBELN'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
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.
ENDFORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VKORG.
PERFORM SUB_F4_VKORG.
FORM SUB_F4_VKORG.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'VKORG'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_VKORG'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
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.
ENDFORM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_KUNNR-LOW.
PERFORM SUB_F4_KUNNR.
FORM SUB_F4_KUNNR.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'KUNNR'
PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR "'1000'
DYNPROFIELD = 'P_KUNNR'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = T_VBAK
FIELD_TAB =
RETURN_TAB =
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.
ENDFORM.
2008 May 20 2:11 PM
This should help
AT Selection-screen on value-request for cntlarea.
clear: itab, itab[].
SELECT KOKRS FROM CSKS INTO TABLE ITAB.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KOKRS'
DYNPPROG = sy-repid
DYNPNR = sy-dynnr
DYNPROFIELD = 'CNTRLAREA'
WINDOW_TITLE = 'SELECT'
tables
value_tab = ITAB
2008 May 20 2:14 PM
Hi,
YOu just need this code:
PARAMETER : cntlarea LIKE CSKS-KOKRS OBLIGATORY.
OR
PARAMETER : cntlarea LIKE TKA01-KOKRS OBLIGATORY.
Cheers.
...Reward if useful.
2008 May 20 2:25 PM
Hi,
Make sure that the transparent table CSKS has entries in it so that ITAB filled after you select from the table.
However KOKRS being a standard data ditionary field you dont need to call that function or do any sort of extra coding as you will get the f4 help automatically.
regards,
Advait.
2008 May 20 2:30 PM
Hi Chirsty,
Please check the following,
Check for the internal table declaration, as in the select statement you are fetching KOKRS only. Instead use corresponding fields or declare ITAB with only 1 field.
Also in the the FM pass VALUE_ORG = 'S'.
PARAMETER : cntlarea LIKE CSKS-KOKRS OBLIGATORY.
AT Selection-screen on value-request for cntlarea.
SELECT KOKRS FROM CSKS INTO corresponding fields of TABLE ITAB.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KOKRS'
DYNPPROG = sy-repid
DYNPNR = sy-dynnr
DYNPROFIELD = 'CNTRLAREA'
WINDOW_TITLE = 'SELECT'
VALUE_ORG = 'S'
tables
value_tab = ITAB.
Thanks
Lakshman
Edited by: Lakshman Tandra on May 20, 2008 3:30 PM
2008 May 21 6:53 AM
hi Lakshman,
i tried again. my itab declarartion is this:
data : begin of itab occurs 0,
cntlarea LIKE CSKS-KOKRS,
end of itab.
which event i have to use to trigger F4 help on cntlarea.
2008 May 21 7:27 AM
Hi
Do in this way.
DATA : BEGIN OF itab OCCURS 0,
cntlarea LIKE csks-kokrs,
END OF itab.
PARAMETER : cntlarea LIKE csks-kokrs OBLIGATORY.
INITIALIZATION.
SELECT kokrs FROM csks INTO TABLE itab.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR cntlarea.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CNTLAREA'
dynpprog = sy-repid
dynpnr = sy-dynnr
value_org = 'S'
dynprofield = 'CNTLAREA'
window_title = 'SELECT'
TABLES
value_tab = itab.
2008 May 20 2:32 PM
Hi I think below lines of code will help youu2026
FORM sapfz_01_gi_kunnr_f4 .
SORT gi_kunnr.
DELETE ADJACENT DUPLICATES FROM gi_kunnr.
DELETE gi_kunnr WHERE kunnr = space.
Fetching the corresponding Description for the Customer.
SELECT kunnr
name1
ort01
FROM kna1
INTO TABLE gi_kunnr_f4
FOR ALL ENTRIES IN gi_kunnr
WHERE kunnr = gi_kunnr-kunnr
AND spras = sy-langu.
IF NOT gi_kunnr_f4 IS INITIAL.
SORT gi_kunnr_f4.
DELETE ADJACENT DUPLICATES FROM gi_kunnr_f4.
DELETE gi_kunnr_f4 WHERE kunnr = space.
Call the below function module to "F4 help - returning the value
to be displayed"
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = gc_kunnr
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = gc_dynpro_kunnr
value_org = gc_s
TABLES
value_tab = gi_kunnr_f4.
ENDIF. " IF NOT gi_kunnr_f4 IS INITIAL.
ENDFORM. " sapfz_01_gi_kunnr_f4
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |