Google Search - Blog...........

Showing posts with label fm VRM_SET_VALUES. Show all posts
Showing posts with label fm VRM_SET_VALUES. Show all posts

ABAP - Drop Down List Box In The Selection Screen.


This code sample gives the idea about providing drop down list box in the Selection Screen.

The code has been tested under SAP R/3 Enterprise Release 4.70, mySAP Technology Components Release 6.20. It may also work under earlier versions with minor modifications
REPORT Z_DDLB.


DEFINE LB_MACRO_KOART.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) &3.
PARAMETERS: &1 AS LISTBOX VISIBLE LENGTH &2 OBLIGATORY.
SELECTION-SCREEN END OF LINE.

END-OF-DEFINITION.


************************************************************************
* SELECTION-SCREEN *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK S1 WITH FRAME TITLE TEXT-001.
LB_MACRO_KOART MYLIST(1) 5 COMMENT.
SELECTION-SCREEN END OF BLOCK S1.


************************************************************************
* AT SELECTION - SCREEN
************************************************************************
AT SELECTION-SCREEN OUTPUT.

PERFORM ADD_VALUES_TO_KOART.
COMMENT = 'Account type'.



*&---------------------------------------------------------------------*
*& Form ADD_VALUES_TO_KOART
*&---------------------------------------------------------------------*
* Fill the values in dropdownlistbox
*----------------------------------------------------------------------*
FORM ADD_VALUES_TO_KOART .

TYPE-POOLS: VRM.

DATA: MY_LIST TYPE VRM_VALUES,
VALUE LIKE LINE OF MY_LIST.

DATA : BEGIN OF I_TAB OCCURS 0,
KOART TYPE C,
END OF I_TAB.

CLEAR I_TAB.
I_TAB-KOART = 'A'.
APPEND I_TAB.
CLEAR I_TAB.

I_TAB-KOART = 'D'.
APPEND I_TAB.
CLEAR I_TAB.

I_TAB-KOART = 'K'.
APPEND I_TAB.
CLEAR I_TAB.

I_TAB-KOART = 'M'.
APPEND I_TAB.
CLEAR I_TAB.

I_TAB-KOART = 'S'.
APPEND I_TAB.
CLEAR I_TAB.


*&---------------------------------------------------------------------*
*& Filling the list structure with values from MARA table
*&---------------------------------------------------------------------*

LOOP AT I_TAB.
VALUE-KEY = SY-TABIX.
VALUE-TEXT = I_TAB-KOART.
APPEND VALUE TO MY_LIST.
ENDLOOP.

*&---------------------------------------------------------------------*
*& Finally calling the function module to create the list box.
*&---------------------------------------------------------------------*

CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = 'MYLIST'
VALUES = MY_LIST.


ENDFORM. " ADD_VALUES_TO_KOART



ALSO READ:

- Creating Dynamic F4 (Value On Request) Help.

- Express Select-Options Values In SY-LANGU.

- F4 (Value On Request) For Files On Presentation Or Application Server.

- Sample Program On Use Of Selection Screen.

- Creating Tab-Strip Selection Screen tab-strip Without Using SE51.

ABAP - Creating The Listbox Using Macros.

Here is the simple for creating listbox with macros.

Please check it first and let me know if there is any thing needed .

REPORT Zmac_listbox.

TYPE-POOLS: VRM.

DEFINE LB_MACRO_KOART.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(31) &3.

PARAMETERS: &1 AS LISTBOX VISIBLE LENGTH &2 OBLIGATORY.

SELECTION-SCREEN END OF LINE.

END-OF-DEFINITION.

************************************************************************

* SELECTION-SCREEN *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK S1 WITH FRAME TITLE TEXT-001.

LB_MACRO_KOART MYLIST(1) 5 COMMENT.

SELECTION-SCREEN END OF BLOCK S1.

************************************************************************

* AT SELECTION - SCREEN

************************************************************************

AT SELECTION-SCREEN OUTPUT.


PERFORM ADD_VALUES_TO_KOART.

COMMENT = 'Account type'.

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

* Fill the values in dropdownlistbox

*----------------------------------------------------------------------*

FORM ADD_VALUES_TO_KOART .

DATA: MY_LIST TYPE VRM_VALUES,

VALUE LIKE LINE OF MY_LIST.


DATA : BEGIN OF I_TAB OCCURS 0,

KOART TYPE C,

END OF I_TAB.

CLEAR I_TAB.

I_TAB-KOART = 'A'.

APPEND I_TAB.

CLEAR I_TAB.

I_TAB-KOART = 'D'.

APPEND I_TAB.

CLEAR I_TAB.


I_TAB-KOART = 'K'.

APPEND I_TAB.

CLEAR I_TAB.


I_TAB-KOART = 'M'.

APPEND I_TAB.

CLEAR I_TAB.


I_TAB-KOART = 'S'.

APPEND I_TAB.

CLEAR I_TAB.

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

*& Filling the list structure with values from MARA table

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

LOOP AT I_TAB.

VALUE-KEY = SY-TABIX.

VALUE-TEXT = I_TAB-KOART.

APPEND VALUE TO MY_LIST.

ENDLOOP.

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

*& Finally calling the function module to create the list box.

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

CALL FUNCTION 'VRM_SET_VALUES'

EXPORTING

ID = 'MYLIST'

VALUES = MY_LIST.

ENDFORM. " ADD_VALUES_TO_KOART



ALSO READ:

- Restrict Values For The F4 (Value On Request) Help.

- Screen Field Validation Using Chain Endchain.

- Drop Down List Box In The Selection Screen.

- Creating Dynamic F4 (Value On Request) Help.

- Express Select-Options Values In SY-LANGU.

ABAP - Complex Selection Screen (Using Macros).

REPORT tabbed_sel_screen.

*-- Definitions to hold user command for subscreens
DATA: ucomm1 LIKE sy-ucomm,
ucomm2 LIKE sy-ucomm,
ucomm3 LIKE sy-ucomm.

*-- Macro to put checkbox on selection screen
*-- &1 - checbox parameter name
*-- &2 - text element (description)
*-- &3 - default value for checkbox

DEFINE make_checkbox.
selection-screen begin of line.
parameters: &1 as checkbox default &3.
selection-screen comment 3(60) &2.
selection-screen end of line.
END-OF-DEFINITION.

*-- Macro to put radiobutton on selection screen
*-- &1 - radiobutton parameter name
*-- &2 - text element (description)
*-- &3 - radiobutton group

DEFINE make_radiobutton.
selection-screen begin of line.
parameters: &1 radiobutton group &3.
selection-screen comment 3(60) &2.
selection-screen end of line.
END-OF-DEFINITION.

*-- Macro to put a parameter on selection screen
*-- &1 - parameter name
*-- &2 - text element (description)
*-- &3 - like data element
*-- &4 - default value

DEFINE make_parameter.
selection-screen begin of line.
selection-screen comment 1(30) &2.
selection-screen position pos_low.
parameters: &1 like &3 default &4.
selection-screen end of line.
END-OF-DEFINITION.

*-- Macro to put a dropdown listbox on selection screen
*-- &1 - parameter name
*-- &2 - length of listbox
*-- &3 - default value
*-- &4 - text element (description)

DEFINE make_dropdown.
selection-screen begin of line.
selection-screen comment 1(30) &4.
selection-screen position pos_low.
parameters: &1 as listbox visible length &2 default &3 obligatory.
selection-screen end of line.
END-OF-DEFINITION.

*-- Define subscreen for upload options
SELECTION-SCREEN BEGIN OF SCREEN 1100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK file_options WITH FRAME.
make_parameter p_filein fil_desc rlgrap-filename '/filename.txt'.
make_radiobutton rb_unix unx_desc src.
make_radiobutton rb_local dos_desc src.
make_parameter p_filety typ_desc rlgrap-filetype 'DAT'.
SELECTION-SCREEN END OF BLOCK file_options.
SELECTION-SCREEN END OF SCREEN 1100.

*-- Define subscreen for BDC/CT Processing Options
SELECTION-SCREEN BEGIN OF SCREEN 1200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK bdc_options WITH FRAME.
make_radiobutton rb_callt ctr_desc typ.
make_radiobutton rb_bdc bdc_desc typ.
make_dropdown p_mode(1) 30 'N' mod_desc.
make_dropdown p_uptyp(1) 30 'S' upd_desc.
SELECTION-SCREEN END OF BLOCK bdc_options.
SELECTION-SCREEN END OF SCREEN 1200.

*-- Define subscreen for Output Options
SELECTION-SCREEN BEGIN OF SCREEN 1300 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK output_opts WITH FRAME.
make_checkbox c_detail det_desc ' '.
make_checkbox c_error err_desc 'X'.
make_checkbox c_stats sta_desc 'X'.
SELECTION-SCREEN END OF BLOCK output_opts.
SELECTION-SCREEN END OF SCREEN 1300.

*-- Define Main Selection screen that will incorporate the subscreens
SELECTION-SCREEN BEGIN OF TABBED BLOCK tabs FOR 10 LINES.
SELECTION-SCREEN TAB (15) tabs1 USER-COMMAND ucomm1
DEFAULT SCREEN 1100.
SELECTION-SCREEN TAB (30) tabs2 USER-COMMAND ucomm2
DEFAULT SCREEN 1200.
SELECTION-SCREEN TAB (15) tabs3 USER-COMMAND ucomm3
DEFAULT SCREEN 1300.
SELECTION-SCREEN END OF BLOCK tabs.

*-- Fill the dropdown list boxes before displaying them
AT SELECTION-SCREEN OUTPUT.
PERFORM fill_dropdown_list USING 'P_MODE'.
PERFORM fill_dropdown_list USING 'P_UPTYP'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_filein.
PERFORM choose_filename USING p_filein
CHANGING p_filein.

INITIALIZATION.
tabs1 = 'Upload Options'.
tabs2 = 'BDC/Call Transaction Options'.
tabs3 = 'Output Options'.
*-- Setup descriptions for Selection Screen items
err_desc = 'Show Errors (Call Transaction Only)'.
det_desc = 'Show details on records being processed'.
sta_desc = 'Show statistics on what has been processed'.
unx_desc = 'File is on App Server (unix)'.
dos_desc = 'File is on Presentation Server (pc)'.
typ_desc = 'File Type'..
fil_desc = 'Name of File'.
ctr_desc = 'Process in Call Transaction Mode'.
bdc_desc = 'Process in BDC Mode'.
mod_desc = 'Transaction Processing Mode'.
upd_desc = 'Update Type'.

START-OF-SELECTION.

*-- Open input file or Read data from database tables
END-OF-SELECTION.

*-- Loop at data, and create BDC/Call Transactions
*---------------------------------------------------------------------*
* FORM fill_dropdown_list *
*---------------------------------------------------------------------*
* Populate the dropdown list for the parameter provided *
*---------------------------------------------------------------------*
* --> VALUE(F_PARAMETER) *
*---------------------------------------------------------------------*

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.
name = f_parameter.

CASE f_parameter.
WHEN 'P_MODE'.
value-key = 'N'. value-text = 'Do not display any screens'.
APPEND value TO list.
value-key = 'A'. value-text = 'Display ALL screens'.
APPEND value TO list.
value-key = 'E'. value-text = 'Only display screens in error'.
APPEND value TO list.
WHEN 'P_UPTYP'.
value-key = 'S'. value-text = 'Update in Synchronous Mode'.
APPEND value TO list.
value-key = 'A'. value-text = 'Update in Asynchronous Mode'.
APPEND value TO list.
WHEN OTHERS.
ENDCASE.

CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = name
values = list.
ENDFORM." fill_dropdown_list

*---------------------------------------------------------------------*
* FORM choose_filename *
*---------------------------------------------------------------------*
* Select a filename. Only provied if a local file is selected *
* as the source of the input file. A *
* custom function or routine could be *
* written to provide the same functionality *
* for unix. *
*---------------------------------------------------------------------*
FORM choose_filename USING f_filename_in
CHANGING f_filename_out.

DATA:
lc_fieldname LIKE dynpread-fieldname,
lc_fieldvalue LIKE dynpread-fieldvalue.

*-- Get the value of p_local
PERFORM read_value_from_screen USING sy-repid
sy-dynnr
'RB_LOCAL'
CHANGING lc_fieldname
lc_fieldvalue.
IF lc_fieldvalue = 'X'. " User chose a local file
PERFORM query_local_filename CHANGING f_filename_out.
ENDIF.

ENDFORM." get_filename

*---------------------------------------------------------------------*
* FORM READ_VALUE_FROM_SCREEN *
*---------------------------------------------------------------------*
FORM read_value_from_screen USING f_repid
f_dynnr
value(f_fieldname_in)
CHANGING f_fieldname_out
f_fieldvalue.

DATA: ltab_fields LIKE dynpread OCCURS 0 WITH HEADER LINE.
DATA: lc_dyname LIKE sy-repid.
DATA: lc_dynumb LIKE sy-dynnr.
DATA: lc_dummy(1) TYPE c.

*-- Read the screen to see if the user has entered a value for WERKS
ltab_fields-fieldname = f_fieldname_in.
APPEND ltab_fields.
lc_dyname = f_repid.
lc_dynumb = f_dynnr.

CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = lc_dyname
dynumb = lc_dynumb
TABLES
dynpfields = ltab_fields
EXCEPTIONS
OTHERS = 01.
READ TABLE ltab_fields INDEX 1.

*-- Return the value from the screen
IF sy-subrc EQ 0.
SPLIT ltab_fields-fieldname AT '-'
INTO lc_dummy
f_fieldname_out.
f_fieldvalue = ltab_fields-fieldvalue.
ENDIF.
ENDFORM. "read_value_from_screen

*---------------------------------------------------------------------*
* FORM query_filename *
*---------------------------------------------------------------------*
FORM query_local_filename CHANGING f_filename_out LIKE rlgrap-filename.

DATA: l_filename LIKE rlgrap-filename.
DATA: l_mask(80) TYPE c.

* Build Filter
l_mask =
',All Files (*.*),*.*.'.

CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = f_filename_out
def_path = 'c:\'
mask = l_mask
* mode = O or S
title = 'Choose input file'
IMPORTING
filename = l_filename
EXCEPTIONS
inv_winsys = 01
no_batch = 02
selection_cancel = 03
selection_error = 04.
IF sy-subrc = 0.
f_filename_out = l_filename.
ENDIF.
ENDFORM. "query_local_filename



ALSO READ:

- Printing Selection Screen Data On The Report Output.

- Creating The Listbox Using Macros.

- Restrict Values For The F4 (Value On Request) Help.

- Screen Field Validation Using Chain Endchain.

- Drop Down List Box In The Selection Screen.

ABAP - Selection Screen Listbox From Table Entries.

report ztest .

TYPE-POOLS : vrm.

TABLES:vbak,vbap.

DATA : v(80) TYPE c.

DATA: wa_vbak TYPE vbak,
it_vbak TYPE vbak OCCURS 0 WITH HEADER LINE,
wa_vbap TYPE vbap,
it_vbap TYPE vbap OCCURS 0 WITH HEADER LINE.

DATA: l_name TYPE vrm_id,
li_list TYPE vrm_values ,
v_count TYPE i,
l_value LIKE LINE OF li_list.

PARAMETERS: p_test(20) AS LISTBOX VISIBLE LENGTH 60 MODIF ID DAT.

INITIALIZATION.

AT SELECTION-SCREEN OUTPUT.

PERFORM get_data.

LOOP AT it_vbak.
l_value-key = it_vbak-vbeln .
l_value-text = it_vbak-vbeln .
APPEND l_value TO li_list.
ENDLOOP.

CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'P_TEST'
values = li_list
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.

AT SELECTION-SCREEN ON P_TEST.
clear : li_list , li_list[].
SELECT vbeln
matnr
meins
FROM vbap
INTO CORRESPONDING FIELDS OF TABLE it_vbap
WHERE vbeln = p_test.
START-OF-SELECTION.

SELECT vbeln
matnr
meins
FROM vbap
INTO CORRESPONDING FIELDS OF TABLE it_vbap
WHERE vbeln = p_test.

LOOP AT it_vbap.
WRITE :/ it_vbap-vbeln, it_vbap-matnr,it_vbap-meins.
ENDLOOP.

*&---------------------------------------------------------------------*
*& Form get_Data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------*

FORM get_data .

SELECT vbeln FROM vbak
INTO CORRESPONDING FIELDS OF TABLE it_vbak.
ENDFORM. " get_Data

ALSO READ:

ABAP - Sample Report Program Using ListBox Parameters.

report ztest .

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

PARAMETERS: PS_PARM(10) AS LISTBOX VISIBLE LENGTH 10.

AT SELECTION-SCREEN OUTPUT.

NAME = 'PS_PARM'.

VALUE-KEY = '1'.
VALUE-TEXT = 'LINE 1'.
APPEND VALUE TO LIST.

VALUE-KEY = '2'.
VALUE-TEXT = 'LINE 2'.
APPEND VALUE TO LIST.

CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = NAME
VALUES = LIST.
START-OF-SELECTION.
WRITE: / 'PARAMETER:', PS_PARM.