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: 

Validation in DropDown List box

Former Member
0 Kudos

Dear Experts,

I am having problem in validating a dropdown boxes on the selection screen.

I have 2 dropdown boxes for choosing values from a database table

<b>Drobdown List1</b> - to choose profile name from database table from z_profile.

<b>Drobdown List2</b> - to choose source name from database table from z_source <b>based on profile selected in the Drobdown List1.</b>

<u><b>My problem is</b></u>

<b>How can I choose only those "source names" depending on the "profile names" that I have chosen in droplist 1 only.</b>

<i>Also find the database tables and their values that need to be there to populate in Listbox 1 and 2</i>.

<b>Table - ZPROFILES</b>

MANDT PROFILE_NAME PROFILE_DESC

324   LOCATION     LOCATION MASTER
324   MATERIAL     MATERIAL MASTER
324   VENDOR       VENDOR MASTER

<b>Table - ZSOURCES</b>

MANDT PROFILE_NAME DBTABLE_NAME SOURCE_NAME

324   LOCATION     T001         PLANTS/BRANCHES
324   LOCATION     T001W        COMPANY CODES
324   MATERIAL     MAKT         MATERIAL DESCRIPTIONS
324   MATERIAL     MARA         GENERAL MATERIAL DATA

.. Please see the code that i have written.


REPORT ZTEST1 .

* Display Options for parameters
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE T01.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK 3 WITH FRAME TITLE T03.


PARAMETERS: I_PRO LIKE ZPROFILES-PROFILE_NAME
AS LISTBOX VISIBLE LENGTH 15 DEFAULT '' OBLIGATORY..


PARAMETERS: I_SRC LIKE ZSOURCES-SOURCE_NAME
AS LISTBOX VISIBLE LENGTH 15 DEFAULT '' OBLIGATORY.


SELECTION-SCREEN END OF BLOCK 3.
SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN END OF BLOCK 1.
*-----------------------------------------------



*-- Fill the dropdown list boxes before displaying them
AT SELECTION-SCREEN OUTPUT.
  PERFORM FILL_DROPDOWN_LIST USING 'I_PRO'.

  PERFORM FILL_DROPDOWN_LIST_SRC USING 'I_SRC'.


INITIALIZATION.
  T01 = 'Update DB Tables'.
  T03 = 'Browse Profile and Data Source'.

START-OF-SELECTION.

END-OF-SELECTION.


*---------------------------------------------------------------------*
*       FORM fill_dropdown_list                   *
*---------------------------------------------------------------------*
FORM FILL_DROPDOWN_LIST USING VALUE(F_PARAMETER).
  TYPE-POOLS: VRM. " For parameter drop down lists
*-- Definitions for parameter drop down lists
  DATA:
    NAME  TYPE VRM_ID,
    LIST  TYPE VRM_VALUES,
    VALUE LIKE LINE OF LIST.

  DATA : IT_PROFILES LIKE ZPROFILES OCCURS 0 WITH HEADER LINE.


  NAME = F_PARAMETER.
  CASE F_PARAMETER.
    WHEN 'I_PRO'.

      VALUE-KEY = 'TEST_PROFI'.
      VALUE-TEXT = 'TEST_PROFILE'.
      APPEND VALUE TO LIST.


      CLEAR : IT_PROFILES,
              IT_PROFILES[].

      SELECT * FROM ZPROFILES CLIENT SPECIFIED
      INTO TABLE IT_PROFILES
      WHERE MANDT = SY-MANDT .
      IF SY-SUBRC = 0.
        SORT IT_PROFILES BY PROFILE_NAME.

        CLEAR : IT_PROFILES.
        LOOP AT IT_PROFILES.
          VALUE-KEY = IT_PROFILES-PROFILE_NAME.
          VALUE-TEXT = IT_PROFILES-PROFILE_NAME.
          APPEND VALUE TO LIST.
        ENDLOOP.
      ENDIF.

    WHEN OTHERS.
  ENDCASE.
  CALL FUNCTION 'VRM_SET_VALUES'
       EXPORTING
            ID     = NAME
            VALUES = LIST.

ENDFORM." fill_dropdown_list


*&---------------------------------------------------------------------*
*&      Form  FILL_DROPDOWN_LIST_SRC
*&---------------------------------------------------------------------*
FORM FILL_DROPDOWN_LIST_SRC USING   VALUE(F_PARAMETER).

  TYPE-POOLS: VRM. " For parameter drop down lists
*-- Definitions for parameter drop down lists
  DATA:
    NAME  TYPE VRM_ID,
    LIST  TYPE VRM_VALUES,
    VALUE LIKE LINE OF LIST.

  DATA : IT_SOURCES LIKE ZSOURCES OCCURS 0 WITH HEADER LINE.


  NAME = F_PARAMETER.
  CASE F_PARAMETER.
    WHEN 'I_SRC'.

      CLEAR : IT_SOURCES,
              IT_SOURCES[].

      SELECT * FROM ZSOURCES CLIENT SPECIFIED
      INTO TABLE IT_SOURCES
      WHERE MANDT = SY-MANDT.

      IF SY-SUBRC = 0.
        SORT IT_SOURCES BY PROFILE_NAME SOURCE_NAME.

        CLEAR : IT_SOURCES.
        LOOP AT IT_SOURCES.
          VALUE-KEY  = IT_SOURCES-PROFILE_NAME.
          VALUE-TEXT = IT_SOURCES-SOURCE_NAME.
          APPEND VALUE TO LIST.
        ENDLOOP.
      ENDIF.

    WHEN OTHERS.
  ENDCASE.
  CALL FUNCTION 'VRM_SET_VALUES'
       EXPORTING
            ID     = NAME
            VALUES = LIST.

ENDFORM.                    " FILL_DROPDOWN_LIST_SRC

Please help.

Thanks

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi RMR,

I guess you can try using

In the PAI event of the selection screen, the event

AT SELECTION-SCREEN ON <field>.

In your case, you can use the event

AT SELECTION-SCREEN ON I_PRO .

Here you can select the values from the the ZSource Table based on the I_PRO value and populate the second List.

This event is triggered when the contents of each individual input field are passed from the selection screen to the ABAP program.

Regards,

Tanveer.

Please reward helpful answers.

17 REPLIES 17

Former Member
0 Kudos

Hi,

In the listboxes have the USER COMMAND field and process them to load values in your listbox.

See a sample code:

TYPE-POOLS: VRM.
TABLES SPFLI.
TABLES SSCRFIELDS.
DATA flag.

DATA: NAME TYPE VRM_ID,
      LIST TYPE VRM_VALUES,
      VALUE LIKE LINE OF LIST.

PARAMETERS PS_PARM LIKE SPFLI-CARRID  AS LISTBOX VISIBLE LENGTH 10
USER-COMMAND
fcodex.

data: i_spfli type spfli occurs 0 with header line.


PARAMETERS PQ_PARAM LIKE SPFLI-connid AS LISTBOX VISIBLE LENGTH 15
USER-COMMAND
fcodey.
*DS AS CHECKBOX USER-COMMAND FLAG.

INITIALIZATION.

  NAME = 'PS_PARM'.
  DATA T TYPE I VALUE 0.
 SELECT DISTINCT carrid into corresponding fields of table i_spfli FROM
SPFLI.
  loop at i_spfli.
    VALUE-KEY = i_spfli-CARRID.
    VALUE-TEXT = i_spfli-CARRID.
    APPEND VALUE TO LIST.
  endloop.

  CALL FUNCTION 'VRM_SET_VALUES'
    EXPORTING
      ID     = NAME
      VALUES = LIST.


AT SELECTION-SCREEN.
  if sy-ucomm eq 'FCODEX'.
    REFRESH LIST.
    CLEAR LIST.
    PQ_PARAM = ' '.
    NAME = 'PQ_PARAM'.
    SELECT  * FROM SPFLI WHERE CARRID = PS_PARM.
      VALUE-KEY = SPFLI-connid.
      VALUE-TEXT = SPFLI-connid.
      APPEND VALUE TO LIST.
    ENDSELECT.
  endif.



AT SELECTION-SCREEN OUTPUT.

  LOOP AT SCREEN.
    IF SY-UCOMM NE 'FCODEX' OR SY-UCOMM NE 'FCODEY'.
      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          ID     = NAME
          VALUES = LIST.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

START-OF-SELECTION.
  clear i_spfli.
  refresh i_spfli.
select * into table i_spfli from spfli where carrid = ps_parm and connid
 = pq_param.

  loop at i_spfli.
    WRITE: / 'CITY FROM:', I_SPFLI-CITYFROM, 'CITY TO :',I_SPFLI-CITYTO,
   'DEPARTURE TIME :', I_SPFLI-DEPTIME.
  ENDLOOP.

Ps: Reward helpful posts.

Regards,

Wenceslaus.

0 Kudos

Thank you sir,

I will try your code and will respond to you shortly.

Cheers

0 Kudos

Dear Wenceslaus,

I tried your code and i got this message as ERROR .

<b>The additions "AS LISTBOX" and "USER-COMMAND" cannot be used together.		
</b>

I am using SAP 4.6c..

Please Help

0 Kudos

Dear Wenceslaus,

Sir Any breakthrough. I am using SAP 4.6c.

REGARDS

Former Member
0 Kudos

Hi RMR,

I guess you can try using

In the PAI event of the selection screen, the event

AT SELECTION-SCREEN ON <field>.

In your case, you can use the event

AT SELECTION-SCREEN ON I_PRO .

Here you can select the values from the the ZSource Table based on the I_PRO value and populate the second List.

This event is triggered when the contents of each individual input field are passed from the selection screen to the ABAP program.

Regards,

Tanveer.

Please reward helpful answers.

0 Kudos

Dear Tanveer,

Thank you for suggesting me. I tried your logic, but it does not seem to display the "Source list" in the 2nd dropdown.

I have attached the code for your reference, The Changes are BOLDLY highlighted ?

Can you please look into it.

Thanks .

<b>PS - Points have been rewarded.</b>



REPORT ZTEST1 .

* Display Options for parameters
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE T01.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK 3 WITH FRAME TITLE T03.


PARAMETERS: I_PRO LIKE ZPROFILES-PROFILE_NAME
AS LISTBOX VISIBLE LENGTH 15 DEFAULT '' OBLIGATORY..


PARAMETERS: I_SRC LIKE ZSOURCES-SOURCE_NAME
AS LISTBOX VISIBLE LENGTH 15 . 


SELECTION-SCREEN END OF BLOCK 3.
SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN END OF BLOCK 1.
*-----------------------------------------------

*-- Fill the dropdown list boxes before displaying them
AT SELECTION-SCREEN OUTPUT.
  PERFORM FILL_DROPDOWN_LIST USING 'I_PRO'.


<b>AT SELECTION-SCREEN ON I_PRO.
  PERFORM FILL_DROPDOWN_LIST_SRC USING 'I_SRC'.</b>


INITIALIZATION.
  T01 = 'Update DB Tables'.
  T03 = 'Browse Profile and Data Source'.

START-OF-SELECTION.

END-OF-SELECTION.


*---------------------------------------------------------------------*
*       FORM fill_dropdown_list                   *
*---------------------------------------------------------------------*
FORM FILL_DROPDOWN_LIST USING VALUE(F_PARAMETER).
  TYPE-POOLS: VRM. " For parameter drop down lists
*-- Definitions for parameter drop down lists
  DATA:
    NAME  TYPE VRM_ID,
    LIST  TYPE VRM_VALUES,
    VALUE LIKE LINE OF LIST.

  DATA : IT_PROFILES LIKE ZPROFILES OCCURS 0 WITH HEADER LINE.


  NAME = F_PARAMETER.
  CASE F_PARAMETER.
    WHEN 'I_PRO'.

      VALUE-KEY = 'TEST_PROFI'.
      VALUE-TEXT = 'TEST_PROFILE'.
      APPEND VALUE TO LIST.


      CLEAR : IT_PROFILES,
              IT_PROFILES[].

      SELECT * FROM ZPROFILES CLIENT SPECIFIED
      INTO TABLE IT_PROFILES
      WHERE MANDT = SY-MANDT .
      IF SY-SUBRC = 0.
        SORT IT_PROFILES BY PROFILE_NAME.

        CLEAR : IT_PROFILES.
        LOOP AT IT_PROFILES.
          VALUE-KEY = IT_PROFILES-PROFILE_NAME.
          VALUE-TEXT = IT_PROFILES-PROFILE_NAME.
          APPEND VALUE TO LIST.
        ENDLOOP.
      ENDIF.

    WHEN OTHERS.
  ENDCASE.
  CALL FUNCTION 'VRM_SET_VALUES'
       EXPORTING
            ID     = NAME
            VALUES = LIST.

ENDFORM." fill_dropdown_list


*&---------------------------------------------------------------------

*&      Form  FILL_DROPDOWN_LIST_SRC
*&---------------------------------------------------------------------

FORM FILL_DROPDOWN_LIST_SRC USING   VALUE(F_PARAMETER).

  TYPE-POOLS: VRM. " For parameter drop down lists
*-- Definitions for parameter drop down lists
  DATA:
    NAME  TYPE VRM_ID,
    LIST  TYPE VRM_VALUES,
    VALUE LIKE LINE OF LIST.

  DATA : IT_SOURCES LIKE ZSOURCES OCCURS 0 WITH HEADER LINE.


  NAME = F_PARAMETER.
  CASE F_PARAMETER.
    WHEN 'I_SRC'.

      CLEAR : IT_SOURCES,
              IT_SOURCES[].

<b>      SELECT * FROM ZSOURCES CLIENT SPECIFIED
      INTO TABLE IT_SOURCES
      WHERE MANDT = SY-MANDT AND
            PROFILE_NAME = I_PRO.</b>
      IF SY-SUBRC = 0.
        SORT IT_SOURCES BY PROFILE_NAME SOURCE_NAME.

        CLEAR : IT_SOURCES.
        LOOP AT IT_SOURCES.
          VALUE-KEY  = IT_SOURCES-PROFILE_NAME.
          VALUE-TEXT = IT_SOURCES-SOURCE_NAME.
          APPEND VALUE TO LIST.
        ENDLOOP.
      ENDIF.

    WHEN OTHERS.
  ENDCASE.


  CALL FUNCTION 'VRM_SET_VALUES'
       EXPORTING
            ID     = NAME
            VALUES = LIST.

ENDFORM.                    " FILL_DROPDOWN_LIST_SRC

0 Kudos

Hi ,

I have done a program having similar requirement. You can make the required modifications to satisfy your requirements.

The tables that I have used are SPFLI and SFLIGHT.From the first listbox, I select a CARRID value(from table SPFLI) and when I press F4 in the second listbox , a corresponding FLDATE Value (from SFLIGHT) is to be shown.

This is the code:

REPORT ZSHAIL_LIST1.

TABLES: sflight,spfli.

DATA: ret_tab LIKE TABLE OF ddshretval WITH HEADER LINE.

DATA: value_sel(20).

DATA: BEGIN OF values1,

carrid TYPE spfli-carrid,

fldate TYPE sflight-fldate,

END OF values1.

*

DATA: dynpro_values TYPE dynpread OCCURS 1 WITH HEADER LINE,

field_value LIKE LINE OF dynpro_values.

DATA: values LIKE TABLE OF values1 WITH HEADER LINE.

*

PARAMETERS: p_id TYPE spfli-carrid,

p_age TYPE sflight-fldate.

DATA: progname TYPE sy-repid,

dynnum TYPE sy-dynnr.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_id.

CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'

EXPORTING

tabname = 'SPFLI'

fieldname = 'CARRID'

  • SEARCHHELP = ' '

  • SHLPPARAM = ' '

dynpprog = progname

dynpnr = dynnum

dynprofield = 'P_ID'

  • STEPL = 0

  • VALUE = ' '

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • SUPPRESS_RECORDLIST = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

return_tab = ret_tab

EXCEPTIONS

field_not_found = 1

no_help_for_field = 2

inconsistent_help = 3

no_values_found = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

*

*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_age.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = progname

dynumb = dynnum

  • TRANSLATE_TO_UPPER = ' '

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

TABLES

dynpfields = dynpro_values

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.

*

SELECT pcarrid qfldate INTO

*CORRESPONDING FIELDS OF

TABLE values

FROM ( spfli AS p INNER JOIN sflight AS q ON pcarrid = qcarrid AND

pconnid = qconnid )

WHERE p~carrid = dynpro_values-fieldvalue.

*

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

  • DDIC_STRUCTURE = ''

retfield = 'FLDATE'

  • PVALKEY = ' '

dynpprog = progname

dynpnr = dynnum

dynprofield = 'P_AGE'

  • STEPL = 0

  • WINDOW_TITLE =

  • VALUE = ' '

value_org = 'S'

  • MULTIPLE_CHOICE = ' '

  • DISPLAY = ' '

  • CALLBACK_PROGRAM = ' '

  • CALLBACK_FORM = ' '

TABLES

value_tab = values

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

*

AT SELECTION-SCREEN OUTPUT.

progname = sy-repid.

dynnum = sy-dynnr.

field_value-fieldname = 'P_ID'.

APPEND field_value TO dynpro_values.

Regards,

SP.

0 Kudos

Dear SP,

Thanks , i tried your code sir, but was not able to do so in the list box. Can you please help in List box.

Thanks

0 Kudos

Hi RMR,

Can you tell me where actually is the error coming?

Regards,

SP.

0 Kudos

Sir,

I Dont <b>know how to create a Parameter ID,</b> Mine is "Z" table and I have to create a <b>"Parameter ID"</b> for the

field PROFILE_NAME in ZPROFILES table and similarly for DBTABLE_NAME in ZSOURCES table.

<b>In your example in the table

SPLFI - for the field S_CARR_ID , a parameter ID is defined as "CAR" and in Table SLFIGHT for Field FLDATE , a parameter ID "DAY"

is defined.</b>

I dont know how to create and also link it to the List Box.

Please help me in this regard to ListBox.

Thanks Sir

0 Kudos

Hi RMR,

Can you tell us what the elements and their types of the two tables ZPROFILES and ZSOURCES are????

Regards,

SP.

0 Kudos

Dear Sir,

Here is the detailed attributes of these tables.

For Table ZPROFILES.
<b>Field Name    Dataelement        Domain</b>
MANDT	     |MANDT             |CLNT | 3
PROFILE_NAME |ZPROFILE_NAME |CHAR |	10
PROFILE_DESC |ZPROFILE_DESC |CHAR |	50

For Table ZSOURCES
<b>Field Name    Dataelement        Domain</b>
MANDT        |MANDT             |CLNT |	3
PROFILE_NAME |ZPROFILE_NAME |CHAR |	10
DBTABLE_NAME |ZDBTABLE_NAME |CHAR |	10
SOURCE_NAME  |ZSOURCE_NAME  |CHAR |	30

Thank you so much,

0 Kudos

Dear Tanveer ,

I tried your code sir, and I mentioned the problem. Can you please help as i am unable to crack this problem.

Thanks sir.

0 Kudos

Hi RMR,

From the input that you have given regarding the elements of the two tables, I have made a code in which there are two dropdown boxes. When you select a particular PROFILE NAME from the first listbox and PRESS ENTER ( you can't otherwise trigger an event ). the corresponding SOURCE NAME from the table ZSOURCES will be populated in the second dropdown box.

Just check this code.

REPORT ZSHAIL_LISTBOX1 .

DATA: DYNPRO_VALUES TYPE DYNPREAD OCCURS 1 WITH HEADER LINE.

data: field_value like line of dynpro_values.

data: progname type sy-repid,

dynnum type sy-dynnr.

type-pools: vrm.

data: it_val type vrm_values,

w_line like line of it_val.

parameters: PRO_NAME like ZPROFILES-PROFILE_NAME as listbox visible

length 25 obligatory,

SOU_NAME LIKE ZSOURCES-SOURCE_NAME AS LISTBOX VISIBLE LENGTH 25.

initialization.

SELECT PROFILE_NAME FROM ZPROFILES INTO W_LINE-KEY.

append w_line to it_val.

endselect.

call function 'VRM_SET_VALUES'

exporting

id = 'PRO_NAME'

values = it_val.

at selection-screen output.

progname = sy-repid.

dynnum = sy-dynnr.

field_value-fieldname = 'PRO_NAME'.

APPEND field_value TO dynpro_values.

AT SELECTION-SCREEN.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = progname

dynumb = dynnum

  • TRANSLATE_TO_UPPER = ' '

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

tables

dynpfields = dynpro_values

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.

SELECT PPROFILE_NAME QSOURCE_NAME INTO TABLE IT_VAL FROM

( ZPROFILES AS P INNER JOIN ZSOURCES AS Q ON P~PROFILE_NAME =

QPROFILE_NAME ) WHERE PPROFILE_NAME = DYNPRO_VALUES-FIELDVALUE.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'SOU_NAME'

values = IT_VAL

EXCEPTIONS

ID_ILLEGAL_NAME = 1

OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

I hope your query is solved.

Regards,

SP.

0 Kudos

Hi ,

The previous source code had some bugs. I have modified that . Just check this error-free code.

tables: zprofiles, zsources.

type-pools : vrm.

data: begin of itab occurs 0,

PRO_NAME LIKE ZPROFILES-PROFILE_NAME,

SOU_NAME LIKE ZSOURCES-SOURCE_NAME,

end of itab.

DATA: DYNPRO_VALUES TYPE DYNPREAD OCCURS 1 WITH HEADER LINE.

data: field_value like line of dynpro_values.

data: progname type sy-repid,

dynnum type sy-dynnr.

data: it_val type vrm_values,

w_line like line of it_val.

parameters : PRO_NAME like zprofiles-profile_name as listbox visible

length 35 ,

SOU_NAME like zsources-source_name as listbox visible

length 35 .

initialization.

CLEAR it_val[].

CLEAR ITAB[].

SELECT PROFILE_NAME FROM ZPROFILES INTO TABLE ITAB.

LOOP AT ITAB.

W_LINE-TEXT = ITAB-PRO_NAME.

W_LINE-KEY = ITAB-PRO_NAME.

append w_line to it_val.

ENDLOOP.

progname = sy-repid.

dynnum = sy-dynnr.

field_value-fieldname = 'PRO_NAME'.

APPEND field_value TO dynpro_values.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'PRO_NAME'

values = it_val

EXCEPTIONS

ID_ILLEGAL_NAME = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

at selection-screen.

clear itab[].

clear it_val[].

SOU_NAME = ''.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING

dyname = progname

dynumb = dynnum

  • TRANSLATE_TO_UPPER = ' '

  • REQUEST = ' '

  • PERFORM_CONVERSION_EXITS = ' '

  • PERFORM_INPUT_CONVERSION = ' '

  • DETERMINE_LOOP_INDEX = ' '

tables

dynpfields = dynpro_values

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.

SELECT PPROFILE_NAME QSOURCE_NAME INTO TABLE ITAB FROM

( ZPROFILES AS P INNER JOIN ZSOURCES AS Q ON P~PROFILE_NAME =

QPROFILE_NAME ) WHERE PPROFILE_NAME = DYNPRO_VALUES-FIELDVALUE.

LOOP AT ITAB.

W_LINE-KEY = ITAB-SOU_NAME.

W_LINE-TEXT = ITAB-SOU_NAME.

APPEND W_LINE TO IT_VAL.

ENDLOOP.

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

id = 'SOU_NAME'

values = it_val

EXCEPTIONS

ID_ILLEGAL_NAME = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CLEAR IT_VAL[].

CLEAR ITAB[].

Regards,

SP.

0 Kudos

<b>Dear Sylendra Prasad ,</b>

<b>Thank you</b> so much for helping me and getting this one solved completely. <u><b>Your code was perfect.</b></u>

I deeply Appreciate your help and say thank you once again.

Besides want to thank <b>Mr.Tanveer , Mr.Wenceslaus</b> for their Inputs.

Thanks

Former Member
0 Kudos

Thanks for Sylendra Prasad help!!!

Solved!!!