Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

selection-scren on value-request

Former Member
0 Kudos

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.

9 REPLIES 9

athavanraja
Active Contributor
0 Kudos

in the function module

change

RETFIELD = 'p_kunnr'

to

RETFIELD = 'P_KUNNR'

Regards

Raja

laxmanakumar_appana
Active Contributor
0 Kudos

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

former_member188685
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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.

Former Member
0 Kudos

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.

hymavathi_oruganti
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

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