2006 Mar 06 10:12 AM
hi ,
what's wrong with this program? it is not displaying the values in value request. plz check it.
TYPES: BEGIN OF ztable,
numde(20),
kunnr(10).
TYPES: END OF ztable.
DATA: i_ztable TYPE ztable OCCURS 0 WITH HEADER LINE.
data:r_table type ztable occurs 0 with header line.
DATA: v_choice TYPE i.
PARAMETERS: p_kunnr LIKE kna1-kunnr DEFAULT '4290'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_kunnr.
i_ztable-numde = 'JOHN05001'.
i_ztable-kunnr = '1'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'PETE05001'.
i_ztable-kunnr = '2'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'JOHN05002'.
i_ztable-kunnr = '1'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'PETE05002'.
i_ztable-kunnr = '2'.
APPEND i_ztable.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
RETFIELD = 'p_kunnr'
PVALKEY = ' '
DYNPPROG = ' '
DYNPNR = ' '
DYNPROFIELD = ' '
STEPL = 0
WINDOW_TITLE =
VALUE = '*'
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
VALUE_TAB = i_ztable
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.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CLEAR i_ztable.
READ TABLE i_ztable INDEX v_choice.
MOVE i_ztable-kunnr TO p_kunnr.
ENDIF.
2006 Mar 06 10:17 AM
in the function module
change
RETFIELD = 'p_kunnr'
to
RETFIELD = 'P_KUNNR'
Regards
Raja
2006 Mar 06 10:18 AM
Hi,
I think no value in v_choice.
Move 1 to v_choice.
READ TABLE i_ztable INDEX v_choice.
MOVE i_ztable-kunnr TO p_kunnr.
or
READ TABLE i_ztable INDEX 1.
MOVE i_ztable-kunnr TO p_kunnr.
Laxman
2006 Mar 06 10:18 AM
Hi,
change this
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
<b>RETFIELD = 'P_KUNNR'</b>
* PVALKEY = ' '
* DYNPPROG = ' '
* DYNPNR = ' '
* DYNPROFIELD = ' '
* STEPL = 0
* WINDOW_TITLE =
* VALUE = '*'
VALUE_ORG = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
VALUE_TAB = i_ztable
* 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.
Regards
vijay
2006 Mar 06 10:21 AM
Hi prashanth,
1. Minor mistakes and little enhancement required.
The MAIN mistake was in definition of types.
*kunnr(10).
KUNNR LIKE KNA1-KUNNR.
2. just copy paste this.
REPORT abc.
TYPES: BEGIN OF ztable,
numde(20),
KUNNR LIKE KNA1-KUNNR.
TYPES: END OF ztable.
DATA: i_ztable TYPE ztable OCCURS 0 WITH HEADER LINE.
DATA:r_table TYPE ztable OCCURS 0 WITH HEADER LINE.
DATA: v_choice TYPE i.
PARAMETERS: p_kunnr LIKE kna1-kunnr .
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_kunnr.
i_ztable-numde = 'JOHN05001'.
i_ztable-kunnr = '1'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'PETE05001'.
i_ztable-kunnr = '2'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'JOHN05002'.
i_ztable-kunnr = '1'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'PETE05002'.
i_ztable-kunnr = '2'.
APPEND i_ztable.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'I_ZTABLE-KUNNR'
PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
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 = i_ztable
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.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CLEAR i_ztable.
READ TABLE i_ztable INDEX v_choice.
MOVE i_ztable-kunnr TO p_kunnr.
ENDIF.
regards,
amit m.
2006 Mar 06 10:30 AM
Hi Prashanth,
The problem is with the declaration of numde and Kunnr .
Declare these fields with reference to a DDIC field.
e.g numde type kna1-PSOO1,
Kunnr type kna1-kunnr.
Now it will work.
Thanks & Regards,
Nirupamaa.
2006 Mar 06 10:36 AM
TYPES: BEGIN OF ztable,
numde(20),
kunnr(10).
TYPES: END OF ztable.
instead of above declaration, try to refer those fields to some DDIC fields.
ex.
KUNNR TYPE KUNNR.
IT WILL SURELY WORK.
2006 Mar 06 10:41 AM
HI prashanth
TYPES: BEGIN OF ztable,
<b>numde(20) like kna1-psoo1,
kunnr(10) like kunnr-kunnr.</b>
TYPES: END OF ztable.
DATA: i_ztable TYPE ztable OCCURS 0 WITH HEADER LINE.
data:r_table type ztable occurs 0 with header line.
DATA: v_choice TYPE i.
PARAMETERS: p_kunnr LIKE kna1-kunnr DEFAULT '4290'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_kunnr.
i_ztable-numde = 'JOHN05001'.
i_ztable-kunnr = '1'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'PETE05001'.
i_ztable-kunnr = '2'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'JOHN05002'.
i_ztable-kunnr = '1'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'PETE05002'.
i_ztable-kunnr = '2'.
APPEND i_ztable.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
<b>RETFIELD = 'P_KUNNR'</b>
PVALKEY = ' '
DYNPPROG = ' '
DYNPNR = ' '
DYNPROFIELD = ' '
STEPL = 0
WINDOW_TITLE =
VALUE = '*'
VALUE_ORG = 'S'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
TABLES
VALUE_TAB = i_ztable
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.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CLEAR i_ztable.
READ TABLE i_ztable INDEX v_choice.
MOVE i_ztable-kunnr TO p_kunnr.
ENDIF.
now it will work
regards
kishore
2006 Mar 06 10:59 AM
Hi,
for the function 'F4IF_INT_TABLE_VALUE_REQUEST'
you should provide the values as follows
retfield = 'KUNNR'
dynpprog = sy-repid
dynpnr = '1000'
dynprofield = 'P_KUNNR'
window_title = 'Customer Numbers'
value_org = 'S'
Please try and let me know if it helps..
Regards,
Shashank
2006 Mar 06 11:18 AM
Hi Prashanth,
Your code is unable for follwoing:
1) Dispalying F4 help.
2) Returning the value selected by the user.
Just copy paste the following code to get the solution for above two problems.
TYPES: BEGIN OF ztable,
numde type NAME1_GP,
kunnr type kunnr,
END OF ztable.
DATA: i_ztable TYPE ztable OCCURS 0 WITH HEADER LINE.
data: i_f4ret like ddshretval occurs 1 with header line.
DATA: v_repid TYPE sy-repid,
v_dynnr TYPE sy-dynnr.
PARAMETERS: p_kunnr LIKE kna1-kunnr.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_kunnr.
i_ztable-numde = 'JOHN05001'.
i_ztable-kunnr = '1'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'PETE05001'.
i_ztable-kunnr = '2'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'JOHN05002'.
i_ztable-kunnr = '1'.
APPEND i_ztable.
CLEAR i_ztable.
i_ztable-numde = 'PETE05002'.
i_ztable-kunnr = '2'.
APPEND i_ztable.
CLEAR i_ztable.
MOVE sy-repid TO v_repid.
MOVE sy-dynnr TO v_dynnr.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'KUNNR'
dynpprog = v_repid
dynpnr = v_dynnr
dynprofield = 'P_KUNNR'
value_org = 'S'
TABLES
value_tab = i_ztable
return_tab = i_f4ret
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.
ELSE.
p_kunnr = i_f4ret-fieldval.
ENDIF.
Hope it helps.
Regards,
Neeraj Gupta