Application Development and Automation 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: 
Read only

AT SELECTION-SCREEN ON VALUE-REQUEST needed

Former Member
0 Likes
1,398

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

suneetha

*

6 REPLIES 6
Read only

Former Member
0 Likes
939

Hi 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.

Read only

Former Member
0 Likes
939

Hi,

Check the sample code..

REPORT  ZTEST_F4HELP                              .

*---Report with selection screen and to display the list of
* possible entries for field 'B' as per the value in field 'A'.


parameters: p_vbeln type vbak-vbeln,
            p_posnr type vbap-posnr.

at selection-screen on value-request for p_posnr.


  data: begin of help_item occurs 0,
          posnr type vbap-posnr,
          matnr type vbap-matnr,
          arktx type vbap-arktx,
        end of help_item.

  data: dynfields type table of dynpread with header line.


  dynfields-fieldname = 'P_VBELN'.
  append dynfields.

  call function 'DYNP_VALUES_READ'
       exporting
            dyname               = sy-cprog
            dynumb               = sy-dynnr
            translate_to_upper   = 'X'
       tables
            dynpfields           = 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.


  read table dynfields with key fieldname = 'P_VBELN'.

  p_vbeln = dynfields-fieldvalue.


  call function 'CONVERSION_EXIT_ALPHA_INPUT'
       exporting
            input  = p_vbeln
       importing
            output = p_vbeln.

  select posnr matnr arktx into table help_item
                 from vbap
                      where vbeln = p_vbeln.



  call function 'F4IF_INT_TABLE_VALUE_REQUEST'
       exporting
            retfield    = 'POSNR'
            dynprofield = 'P_POSNR'
            dynpprog    = sy-cprog
            dynpnr      = sy-dynnr
            value_org   = 'S'
       tables
            value_tab   = help_item.

Regards

vijay

Read only

Former Member
0 Likes
939

Hello ,

They have declared a parameter called P_LDCTY

for that field they are providing F4 help on the selection screen.

Reward if it helps.

you can also refer transaction ABAPDOCU for F4 helps example.

Thanks,

Krishna

Message was edited by: Krishnakumar

Read only

Former Member
0 Likes
939

Hi Suneetha,

Made a few changes to the code.

Please check out the code below :-



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 'ZPORT' TO ihelp_fields-tabname.
*  MOVE 'ZZLOADCTY1' TO ihelp_fields-fieldname.
  MOVE 'ZZCNTRY' 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
    EXPORTING
      retfield = 'ZZCNTRY'
      dynpprog = sy-repid
      dynpnr =   sy-dynnr
   TABLES
*      fields                    = ihelp_fields
      field_tab = 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.
 

Hope this helps you.

Cheers,

Anirban.

Read only

Laxmana_Appana_
Active Contributor
0 Likes
939

Hi,

Make below changes in your code , it will work.

parameters: P_LDCTY(2) with

<b>

parameters: P_LDCTY(2) matchcode object ZSDOTC_VOYAGE.</b>

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LDCTY matchcode object ZSDOTC_VOYAGE.

change your code like below:

<b>AT SELECTION-SCREEN ON HELP-REQUEST FOR P_LDCTY .</b>

and change SELECTED_VALUE with <b>HELPTAB</b>

Regards

Appana

Read only

Former Member
0 Likes
939

Hai Suneetha

Instead of using the F.M 'HELP_VALUES_GET_WITH_TABLE'

use 'F4IF_INT_TABLE_VALUE_REQUEST'

check the following Code

TABLES : MARD.

DATA: BEGIN OF IT_MARD OCCURS 0,

WERKS LIKE MARD-WERKS,

END OF IT_MARD.

DATA : T_RETURN TYPE STANDARD TABLE OF DDSHRETVAL WITH HEADER LINE.

parameters : P_WERKS LIKE MARD-WERKS.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_WERKS.

SELECT WERKS FROM MARD UP TO 10 ROWS INTO table IT_MARD.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

RETFIELD = 'WERKS'

DYNPPROG = SY-REPID

DYNPNR = '1000'

DYNPROFIELD = 'P_WERKS'

VALUE_ORG = 'S'

TABLES

VALUE_TAB = IT_MARD

RETURN_TAB = T_RETURN

EXCEPTIONS

PARAMETER_ERROR = 1

NO_VALUES_FOUND = 2

OTHERS = 3.

if sy-subrc = 0.

read table it_mard index 1. "transporting werks.

move it_mard-lgort to p_lgort.

endif.

Thanks & regards

Sreenivasulu P