About Variants in ALV grid
Hi all,
I am displaying 4grids on a TAB Strip in ALV
i have created one variant for each grid(report)
But when i run the prog and press on F4 help for variant parameter, i am getting variants of all the grids
Is there any way to get only those variants related to a particular grid.
thanks in advance
Hi,
Specify different variant handles for each of the four grids. Some thing like the following,
<b>ls_variant-report = <your program name>.</b>
****Set following handler different for each grid ****reference
****something like 'GRD1', 'GRD2' and so on..
<b>ls_variant-handle = <your grid handle 4 characters>.</b>
CALL METHOD ref_grid->set_table_for_first_display
EXPORTING
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
<b> is_variant = ls_variant</b>
i_save = 'A'
I_DEFAULT = 'X'
is_layout = ls_layout
IS_PRINT =
IT_SPECIAL_GROUPS =
it_toolbar_excluding =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
CHANGING
it_outtab = lt_data
it_fieldcatalog = lt_fcat
IT_SORT =
IT_FILTER =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
Hope this helps..
Sri
Message was edited by: Srikanth Pinnamaneni
Similar Messages
-
About filter in alv grid display
Hi,
I am practicing on REUSE_ALV_GRID_DISPLAY in that i want to know about how to use some fields like
*ITFILTER*_
IT_ALV_GRAPHICS
IT_HYPERLINK
IT_ADD_FIELDCAT
IT_EXCEPT_QINFOHi Rock.
I would like to suggest you a couple of references which quite relate to your case,
REUSE_ALV_GRID_DISPLAY - Output of a simple list (single-line)
[SDN - Reference for Using REUSE_ALV_GRID_DISPLAY - Basic Program|alv prog;
[SDN - Reference for Use of IT_FILTER in REUSE_ALV_GRID_DISPLAY |Doubts in ALV?;
[SDN - Reference for use of IT_FILTER with CODE in REUSE_ALV_GRID_DISPLAY|ALV Report;
[SDN - Refernce for Using IT_ALV_GRAPHICS in REUSE_ALV_GRID_DISPLAY|OOPs : SAVE and ALV Display Variant;
[SDN - Reference for Editing a graph in ALV (IT_ALV_GRAPHICS) using REUSE_ALV_GRID_DISPLAY|Edit Graph display ALV list display;
[SDN - Reference for use of IT_HYPERLINK in REUSE_ALV_GRID_DISPLAY|editable fields on ALV grid;
[SDN - Reference including example of IT_ADD_FIELDCAT in REUSE_ALV_GRID_DISPLAY|building top of page in ALV list;
[SDN - Reference for scenario for use of IT_EXCEPT_QINFO in REUSE_ALV_GRID_DISPLAY|Background ID in ALV Grid;
[SDN - Reference for application example of IT_EXCEPT_QINFO in REUSE_ALV_GRID_DISPLAY|PF Status in ALV list.;
Hope That's Usefull.
Good Luck & Regards.
Harsh Dave -
How to set variant for ALV grid from ABAP
Hello,
I have a program which displays some data with ALV grid. Then after some operation I would like to set different layout for the grid, but not by choosing it manually but by the program. I thought that it would be enough to use the method SET_VARIANT, so I'm setting DISVARIANT structure properly, using SET_VARIANT method and after that I'm calling REFRESH_TABLE_DISPLAY but layout is not changed. What else should I do? Is that possible?
Best regards,
MarcinHi,
Check this
* While declaring select-options
parameters: p_vari like ltdx-variant. " Layout
* then add the following code in
at selection-screen on value-request for p_vari.
perform f_variant_f4 using p_vari.
* Code for f_variant_f4
form f_variant_f4 using p_vari.
* private variables
data : v_exit type c.
clear gs_variantt.
v_variant_save = 'U'.
call function 'LVC_VARIANT_F4'
exporting
is_variant = gs_variant
i_save = v_variant_save
importing
e_exit = v_exit
es_variant = gs_variantt
exceptions
not_found = 1
program_error = 2
others = 3.
if sy-subrc ne c_0.
message i999(yscc) with text-064. " No Layout Available for F4
endif.
if v_exit is initial.
gs_variant-variant = gs_variantt-variant.
p_vari = gs_variantt-variant.
endif.
endform. " F_variant_f4
* In PBO
call method grid1->set_table_for_first_display
exporting
is_layout = gs_layout
is_variant = gs_variant
i_save = 'A'
it_toolbar_excluding = i_exclude[]
changing
it_outtab = i_output[]
it_fieldcatalog = i_fieldcat[]
exceptions
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4.
a® -
Hi folks,
Im using the variant function of the ALV Grid. The screen you get by creating or saving a variant contains the following tabstrips: Sort Order, Filter, View and Display. My aim is to hide all tabstrips except the Sort Order one. Is there any way to do this?
thanks in advanceCheck this code that I got from Rich Heilman when I had the same problem. If you find out which you have by using
RS_CUA_GET_STATUS_FUNCTIONS and then exclude the ones you don't want.
Sure...check out the following code.
Its the IT_TOOLBAR_EXCLUDING parameter of the interface of method SET_TABLE_FOR_FIRST_DISPLAY.
look a the form EXCLUDE_TB_FUNCTIONS.
REPORT ZRICH_0001.
TABLES: MARA.
DATA: BEGIN OF I_ALV OCCURS 0,
MATNR TYPE MARA-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF I_ALV.
DATA: ALV_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA: LAYOUT TYPE LVC_S_LAYO.
DATA: FIELDCAT TYPE LVC_T_FCAT.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001 .
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION.
PERFORM GET_DATA.
CALL SCREEN 100.
Module status_0100 OUTPUT
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '0100'.
SET TITLEBAR '0100'.
DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.
DATA: VARIANT TYPE DISVARIANT.
VARIANT-REPORT = SY-REPID.
VARIANT-USERNAME = SY-UNAME.
Create Controls
CREATE OBJECT ALV_CONTAINER
EXPORTING
CONTAINER_NAME = 'ALV_CONTAINER'.
CREATE OBJECT ALV_GRID
EXPORTING
I_PARENT = ALV_CONTAINER.
ALV Specific. Data selection.
Populate Field Catalog
PERFORM GET_FIELDCATALOG.
Exclude functions
PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.
CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_LAYOUT = LAYOUT
IS_VARIANT = VARIANT
I_SAVE = 'U'
I_STRUCTURE_NAME = 'I_ALV'
it_toolbar_excluding = lt_exclude
CHANGING
IT_OUTTAB = I_ALV[]
IT_FIELDCATALOG = FIELDCAT[].
ENDMODULE.
Module USER_COMMAND_0100 INPUT
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK' OR 'CANC'.
IF NOT ALV_CONTAINER IS INITIAL.
CALL METHOD ALV_CONTAINER->FREE.
CLEAR: ALV_CONTAINER.
FREE : ALV_CONTAINER.
ENDIF.
IF SY-SUBRC = 0.
SET SCREEN 0.
LEAVE SCREEN.
ELSE.
LEAVE PROGRAM.
ENDIF.
WHEN 'EXIT'.
IF NOT ALV_CONTAINER IS INITIAL.
CALL METHOD ALV_CONTAINER->FREE.
CLEAR: ALV_CONTAINER.
FREE : ALV_CONTAINER.
ENDIF.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
FORM GET_DATA
FORM GET_DATA.
SELECT * INTO CORRESPONDING FIELDS OF TABLE I_ALV
FROM MARA
INNER JOIN MAKT
ON MARAMATNR = MAKTMATNR
WHERE MARA~MATNR IN S_MATNR
AND MAKT~SPRAS = SY-LANGU.
SORT I_ALV ASCENDING BY MATNR.
ENDFORM.
Form Get_Fieldcatalog - Set Up Columns/Headers
FORM GET_FIELDCATALOG.
DATA: LS_FCAT TYPE LVC_S_FCAT.
REFRESH: FIELDCAT.
CLEAR: LS_FCAT.
LS_FCAT-REPTEXT = 'Material Number'.
LS_FCAT-COLTEXT = 'Material Number'.
LS_FCAT-FIELDNAME = 'MATNR'.
LS_FCAT-REF_TABLE = 'I_ALV'.
LS_FCAT-OUTPUTLEN = '18'.
LS_FCAT-COL_POS = 1.
APPEND LS_FCAT TO FIELDCAT.
CLEAR: LS_FCAT.
LS_FCAT-REPTEXT = 'Material Description'.
LS_FCAT-COLTEXT = 'Material Description'.
LS_FCAT-FIELDNAME = 'MAKTX'.
LS_FCAT-REF_TABLE = 'I_ALV'.
LS_FCAT-OUTPUTLEN = '40'.
LS_FCAT-COL_POS = 2.
APPEND LS_FCAT TO FIELDCAT.
ENDFORM.
Form EXCLUDE_TB_FUNCTIONS
FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.
DATA LS_EXCLUDE TYPE UI_FUNC.
Row manipulation
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
Sort buttons
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_SORT_ASC.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_SORT_DSC.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
This excludes all buttons
LS_EXCLUDE = '&EXCLALLFC'.
APPEND LS_EXCLUDE TO PT_EXCLUDE.
ENDFORM.
Best Regards Benita -
Hi ,
i have developed an interactive report in which form the first grid display i will move to the second grid display.
Problem:
For the first list there is an display variant. when i navigate to the second list it is using the same display variant form the first list ( this should not hapen ). so many of the fields are not be displayed in the second list.
Is there any way to differentiate the display variant from first and second list.
Please help me. sample code will be more helpful.
Patilhi santhosh
You can very well create 2 variants in your report for grid display...just restrict some fields n create 2 variants and while executing jus choose which variant you need to run..
REWARD IT IF USEFUl...!!!! -
Issues in Change layout Variant of ALV grid
Hi all,
I am using a ALV gird to display the data with some table column. I am able to save/ choose the Layout variant. I choose the existing layout varaint it works fine but when I change the column fields display from selected layout then it will immidiately looks fine, but if I perform some event, it goes to the initial stage of the choosed layout varaint.
I can solve this issue if I clear the Variant from the is_variant (of set_table_for_first_display method). So if I can find the fieldcatalog for layout Variant, then it will solved very easily.
Please suggest, if you have any idea on this.
Thanks,
Sanket SethiI got the solution. You can find the Variant field catalog by using Function module 'LVC_VARIANT_SELECT'. You can set the dialog box based on your requirements as well. So closing this thread. Thanks..
-
Change default variant in ALV grid on runtime
Hello colleagues,
where is the place in a code (CL_ALV_VARIANT, CL_GUI_ALV_GRID, ...) where I can change the deault layout. Customer require a modification which change default layout in ALV under specific circumstances.
Kind regards
Radim BenekIt depend when these "specific circumstances" are occurring?
Before displaying the ALV, then force the value of the variant used in set_table_for_first_display,
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
IS_VARIANT = GS_variant
I_SAVE = X_SAVE
CHANGING
IT_OUTTAB = GT_SFLIGHT.
If you want to simulate multiple "default variant" you should "mislead" the ALV by changing the report name used for storing variant (IS_VARIANT-REPORT) But in this case you will no longuer see every variant when in the ALV, only those of the "report name" passed when setting for first display.
Regards -
ALV Grid Dialog Program Variant Problem
Hi Gurus-
Please help!!! I got the following problem-
The ALV dialog screen will have fields with display options as well as a number of fields as input options (editable). Based on user inputs in the input fields and other displayed fields, the user selects "Process"/F8 and it calls the BAPI_MATERIAL_EDIT functions to update material.
The problem is, I want to use variants in the input fields (Maybe REUSE_ALV_VARIANT_F4) when I select a variant it loops through the selected rows and fills out the input fields with the values stored in the variant. I want to use sample ALV grid program such as BCALV*.
The question is, can I use variants in ALV grid dialog program and if yes, how do I define variants to loop through and fill out the values in the input/editable fields on the ALV grid?
Any help will be greatly appreciated! Rep points for sure!
Thanks!!!hi james ,
look at this link u will get an idea .
http://www.sapfans.com/forums/viewtopic.php?f=13&t=229912
http://sgstocks.tripod.com/alvgrid_control.htm
thanks,
Gaurav.
Edited by: gaurav.singh on Apr 20, 2010 7:53 AM -
Hi,
I am totally new to ALV Grids. Could you give a full example of creating a ALV Grid with 2 columns, thinking there is a internal table itab with itab-col1 & itab-col2. Please start from initialising variables and onwards.
Thanks,
KishanHi,
Simple example of how to implement an ALV grid
Note that this example uses table ZSFLIGHT. The table is equivalent to the table SFLIGHT.
Steps:
1. Create an executable program (Report)
2. Create a screen (100) and place a custom container named ALV_CONTAINER on the screen
3. Create a Pushbutton. Give it the text Exit and the functioncode EXIT
REPORT sapmz_hf_alv_grid .
TABLES: zsflight.
G L O B A L I N T E R N A L T A B L E S
DATA: gi_sflight TYPE STANDARD TABLE OF sflight.
G L O B A L D A T A
DATA: ok_code LIKE sy-ucomm,
g_wa_sflight LIKE sflight.
Declare reference variables to the ALV grid and the container
DATA:
go_grid TYPE REF TO cl_gui_alv_grid,
go_custom_container TYPE REF TO cl_gui_custom_container.
S T A R T - O F - S E L E C T I O N.
START-OF-SELECTION.
SET SCREEN '100'.
*& Module USER_COMMAND_0100 INPUT
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module STATUS_0100 OUTPUT
MODULE status_0100 OUTPUT.
Create objects
IF go_custom_container IS INITIAL.
CREATE OBJECT go_custom_container
EXPORTING container_name = 'ALV_CONTAINER'.
CREATE OBJECT go_grid
EXPORTING
i_parent = go_custom_container.
PERFORM load_data_into_grid.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& Form load_data_into_grid
FORM load_data_into_grid.
Read data from table SFLIGHT
SELECT *
FROM zsflight
INTO TABLE gi_sflight.
Load data into the grid and display them
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
CHANGING it_outtab = gi_sflight.
ENDFORM. " load_data_into_grid
Allow the user to save and reuse the layout
A button can be shown on the grid toolbar, allowing the user to save and reuse a layout. The button looks like this:
See also example in SAP standard program BCALV_GRID_09.
To do this use the parameters IS_VARIANT and I_SAVE of the set_table_for_first_display method. Note that the IS_VARIANT
parameter must have the structure DISVARIANT.
The I_SAVE "Options for saving layouts" parameter can have the following values:
· U Only user specific layouts can be saved
· X Only global layouts can be saved
· A Both user specific and global layouts can be saved
· Space Layouts can not be saved
Add the following code to the example:
FORM load_data_into_grid.
DATA:
For parameter IS_VARIANT
l_layout TYPE disvariant.
Code..........
Load data into the grid and display them
l_layout-report = sy-repid.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
is_variant = l_layout
i_save = 'A'
CHANGING it_outtab = gi_
Integrate user defined functions in the grid toolbar
Possibilities:
· Replace existing functions in the toolbar or context men with user defined functions
· Add new functions to the toolbar or context menu
Note that the whole toolbar can be removed using the IT_TOOLBAR_EXCLUDING parameter of the set_table_for_first_display
method.
See also example in SAP standard program BCALV_GRID_05
1) To get access to the icons insert the following statement in the top of the program:
TYPE-POOLS: icon.
2) To allow the declaration of o_event_receiver before the lcl_event_receiver class is defined, declare it as deferred in the start of
the program
To allow the declaration of o_event_receiver before the lcl_event_receiver class is defined, declare it as deferred in the
start of the program
CLASS lcl_event_receiver DEFINITION DEFERRED.
3) Declare reference to the event handler class
DATA:
o_event_receiver TYPE REF TO lcl_event_receiver.
4) Class for event receiver. This class adds the new button to the toolbar and handles the event when the button is pushed
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING
e_object e_interactive,
handle_user_command FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
ENDCLASS.
CLASS lcl_event_receiver IMPLEMENTATION
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_toolbar.
Event handler method for event toolbar.
CONSTANTS:
Constants for button type
c_button_normal TYPE i VALUE 0,
c_menu_and_default_button TYPE i VALUE 1,
c_menu TYPE i VALUE 2,
c_separator TYPE i VALUE 3,
c_radio_button TYPE i VALUE 4,
c_checkbox TYPE i VALUE 5,
c_menu_entry TYPE i VALUE 6.
DATA:
ls_toolbar TYPE stb_button.
Append seperator to the normal toolbar
CLEAR ls_toolbar.
MOVE c_separator TO ls_toolbar-butn_type..
APPEND ls_toolbar TO e_object->mt_toolbar.
Append a new button that to the toolbar. Use E_OBJECT of
event toolbar. E_OBJECT is of type CL_ALV_EVENT_TOOLBAR_SET.
This class has one attribute MT_TOOLBAR which is of table type
TTB_BUTTON. The structure is STB_BUTTON
CLEAR ls_toolbar.
MOVE 'CHANGE' TO ls_toolbar-function.
MOVE icon_change TO ls_toolbar-icon.
MOVE 'Change flight' TO ls_toolbar-quickinfo.
MOVE 'Change' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
METHOD handle_user_command.
Handle own functions defined in the toolbar
CASE e_ucomm.
WHEN 'CHANGE'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMETHOD.
ENDCLASS.
5) In the PBO module, crate object for event handler and set handler
CREATE OBJECT o_event_receiver.
SET HANDLER o_event_receiver->handle_user_command FOR go_grid.
SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.
6) In the PBO module after the CALL METHOD go_grid->set_table_for_first_display, raise event
toolbar to show the modified toolbar
CALL METHOD go_grid->set_toolbar_interactive.
Set focus to the grid
After CALL METHOD go_grid->set_table_for_first_display insert the following statement:
CALL METHOD cl_gui_control=>set_focus EXPORTING control = go_grid.
Set the title of the grid
Fill the grid_title field of structure lvc_s_layo.
Note that the structure lvc_s_layo can be used for to customize the grid appearance in many ways.
DATA:
ALV control: Layout structure
gs_layout TYPE lvc_s_layo.
Set grid title
gs_layout-grid_title = 'Flights'.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
is_layout = gs_layout
CHANGING it_outtab = gi_sflight.
Customize the appearence of the grid
The structure lvc_s_layo contains fields for setting graphical properties, displaying exceptions, calculating totals and enabling specific
interaction options.
Fill the apporpiate fields of structure lvc_s_layo and insert it as a parameter in the CALL METHOD
go_grid->set_table_for_first_display. See the example under Set the title of the grid.
If you want to change apperance after list output, use the methods get_frontend_layout and set_frontend_layout.
Examples of fields in structure lvc_s_layo:
GRID_TITLE Setting the title of the grid
SEL_MODE. Selection mode, determines how rows can be selected. Can have the following values:
· A Multiple columns, multiple rows with selection buttons.
· B Simple selection, listbox, Single row/column
· C Multiple rows without buttons
· D Multiple rows with buttons and select all ICON
Setting and getting selected rows (Columns) and read line contents
You can read which rows of the grid that has been selected, and dynamic select rows of the grid using methods get_selected_rows
and set_selected_rows. There are similar methods for columns.
Note that the grid table always has the rows in the same sequence as displayed in the grid, thus you can use the index of the selected
row(s) to read the information in the rows from the table. In the examples below the grid table is named gi_sflight.
Data declaration:
DATA:
Internal table for indexes of selected rows
gi_index_rows TYPE lvc_t_row,
Information about 1 row
g_selected_row LIKE lvc_s_row.
Example 1: Reading index of selected row(s) and using it to read the grid table
CALL METHOD go_grid->get_selected_rows
IMPORTING
et_index_rows = gi_index_rows.
DESCRIBE TABLE gi_index_rows LINES l_lines.
IF l_lines = 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'You must choose a valid line'.
EXIT.
ENDIF.
LOOP AT gi_index_rows INTO g_selected_row.
READ TABLE gi_sflight INDEX g_selected_row-index INTO g_wa_sflight.
ENDIF.
ENDLOOP.
Example 2: Set selected row(s).
DESCRIBE TABLE gi_index_rows LINES l_lines.
IF l_lines > 0.
CALL METHOD go_grid->set_selected_rows
exporting
it_index_rows = gi_index_rows.
ENDIF.
Make an Exception field ( = Traffic lights)
There can be defined a column in the grid for display of traffic lights. This field is of type Char 1, and can contain the following values:
· 1 Red
· 2 Yellow
· 3 Green
The name of the traffic light field is supplied inh the gs_layout-excp_fname used by method set_table_for_first_display.
Example
TYPES: BEGIN OF st_sflight.
INCLUDE STRUCTURE zsflight.
TYPES: traffic_light TYPE c.
TYPES: END OF st_sflight.
TYPES: tt_sflight TYPE STANDARD TABLE OF st_sflight.
DATA: gi_sflight TYPE tt_sflight.
Set the exception field of the table
LOOP AT gi_sflight INTO g_wa_sflight.
IF g_wa_sflight-paymentsum < 100000.
g_wa_sflight-traffic_light = '1'.
ELSEIF g_wa_sflight-paymentsum => 100000 AND
g_wa_sflight-paymentsum < 1000000.
g_wa_sflight-traffic_light = '2'.
ELSE.
g_wa_sflight-traffic_light = '3'.
ENDIF.
MODIFY gi_sflight FROM g_wa_sflight.
ENDLOOP.
Name of the exception field (Traffic light field)
gs_layout-excp_fname = 'TRAFFIC_LIGHT'.
Grid setup for first display
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
is_layout = gs_layout
CHANGING it_outtab = gi_sflight.
Color a line
The steps for coloring a line i the grid is much the same as making a traffic light.
To color a line the structure of the table must include a Char 4 field for color properties
TYPES: BEGIN OF st_sflight.
INCLUDE STRUCTURE zsflight.
Field for line color
types: line_color(4) type c.
TYPES: END OF st_sflight.
TYPES: tt_sflight TYPE STANDARD TABLE OF st_sflight.
DATA: gi_sflight TYPE tt_sflight.
Loop trough the table to set the color properties of each line. The color properties field is
Char 4 and the characters is set as follows:
Char 1 = C = This is a color property
Char 2 = 6 = Color code (1 - 7)
Char 3 = Intensified on/of = 1 = on
Char 4 = Inverse display = 0 = of
LOOP AT gi_sflight INTO g_wa_sflight.
IF g_wa_sflight-paymentsum < 100000.
g_wa_sflight-line_color = 'C610'.
ENDIF.
MODIFY gi_sflight FROM g_wa_sflight.
ENDLOOP.
Name of the color field
gs_layout-info_fname = 'LINE_COLOR'.
Grid setup for first display
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
is_layout = gs_layout
CHANGING it_outtab = gi_sflight.
Refresh grid display
Use the grid method REFRESH_TABLE_DISPLAY
Example:
CALL METHOD go_grid->refresh_table_display.
Complete code for the ALV grid example
This example shows and ALV grid with flights. After selecting a line a change button can be pushed to display a change screen. After
the changes have been saved, the ALV grid screen is displayed again, and the grid is updated with the changes.
The example shows:
· How to setup the ALV grid
· How to ste focus to the grid
· How to set the title of the grid
· How to allow a user to save and reuse a grid layout (Variant)
· How to customize the ALV grid toolbar
· Refresh the grid
· Set and get row selection and read line contents
· Make and exception field (Traffic light)
· Coloring a line
Steps:
· Create screen 100 with the ALV grid. Remember to include an exit button
· Add a change button to the ALV grid toolbar
· Create screen 200 the Change screen
The screens:
The code:
REPORT sapmz_hf_alv_grid .
Type pool for icons - used in the toolbar
TYPE-POOLS: icon.
TABLES: zsflight.
To allow the declaration of o_event_receiver before the
lcl_event_receiver class is defined, decale it as deferred in the
start of the program
CLASS lcl_event_receiver DEFINITION DEFERRED.
G L O B A L I N T E R N A L T A B L E S
*DATA: gi_sflight TYPE STANDARD TABLE OF sflight.
To include a traffic light and/or color a line the structure of the
table must include fields for the traffic light and/or the color
TYPES: BEGIN OF st_sflight.
INCLUDE STRUCTURE zsflight.
Field for traffic light
TYPES: traffic_light TYPE c.
Field for line color
types: line_color(4) type c.
TYPES: END OF st_sflight.
TYPES: tt_sflight TYPE STANDARD TABLE OF st_sflight.
DATA: gi_sflight TYPE tt_sflight.
G L O B A L D A T A
DATA: ok_code LIKE sy-ucomm,
Work area for internal table
g_wa_sflight TYPE st_sflight,
ALV control: Layout structure
gs_layout TYPE lvc_s_layo.
Declare reference variables to the ALV grid and the container
DATA:
go_grid TYPE REF TO cl_gui_alv_grid,
go_custom_container TYPE REF TO cl_gui_custom_container,
o_event_receiver TYPE REF TO lcl_event_receiver.
DATA:
Work area for screen 200
g_screen200 LIKE zsflight.
Data for storing information about selected rows in the grid
DATA:
Internal table
gi_index_rows TYPE lvc_t_row,
Information about 1 row
g_selected_row LIKE lvc_s_row.
C L A S S E S
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING
e_object e_interactive,
handle_user_command FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
ENDCLASS.
CLASS lcl_event_receiver IMPLEMENTATION
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_toolbar.
Event handler method for event toolbar.
CONSTANTS:
Constants for button type
c_button_normal TYPE i VALUE 0,
c_menu_and_default_button TYPE i VALUE 1,
c_menu TYPE i VALUE 2,
c_separator TYPE i VALUE 3,
c_radio_button TYPE i VALUE 4,
c_checkbox TYPE i VALUE 5,
c_menu_entry TYPE i VALUE 6.
DATA:
ls_toolbar TYPE stb_button.
Append seperator to the normal toolbar
CLEAR ls_toolbar.
MOVE c_separator TO ls_toolbar-butn_type..
APPEND ls_toolbar TO e_object->mt_toolbar.
Append a new button that to the toolbar. Use E_OBJECT of
event toolbar. E_OBJECT is of type CL_ALV_EVENT_TOOLBAR_SET.
This class has one attribute MT_TOOLBAR which is of table type
TTB_BUTTON. The structure is STB_BUTTON
CLEAR ls_toolbar.
MOVE 'CHANGE' TO ls_toolbar-function.
MOVE icon_change TO ls_toolbar-icon.
MOVE 'Change flight' TO ls_toolbar-quickinfo.
MOVE 'Change' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
METHOD handle_user_command.
Handle own functions defined in the toolbar
CASE e_ucomm.
WHEN 'CHANGE'.
PERFORM change_flight.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMETHOD.
ENDCLASS.
S T A R T - O F - S E L E C T I O N.
START-OF-SELECTION.
SET SCREEN '100'.
*& Module USER_COMMAND_0100 INPUT
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Module STATUS_0100 OUTPUT
MODULE status_0100 OUTPUT.
DATA:
For parameter IS_VARIANT that is sued to set up options for storing
the grid layout as a variant in method set_table_for_first_display
l_layout TYPE disvariant,
Utillity field
l_lines TYPE i.
After returning from screen 200 the line that was selected before
going to screen 200, should be selected again. The table gi_index_rows
was the output table from the GET_SELECTED_ROWS method in form
CHANGE_FLIGHT
DESCRIBE TABLE gi_index_rows LINES l_lines.
IF l_lines > 0.
CALL METHOD go_grid->set_selected_rows
EXPORTING
it_index_rows = gi_index_rows.
CALL METHOD cl_gui_cfw=>flush.
REFRESH gi_index_rows.
ENDIF.
Read data and create objects
IF go_custom_container IS INITIAL.
Read data from datbase table
PERFORM get_data.
Create objects for container and ALV grid
CREATE OBJECT go_custom_container
EXPORTING container_name = 'ALV_CONTAINER'.
CREATE OBJECT go_grid
EXPORTING
i_parent = go_custom_container.
Create object for event_receiver class
and set handlers
CREATE OBJECT o_event_receiver.
SET HANDLER o_event_receiver->handle_user_command FOR go_grid.
SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.
Layout (Variant) for ALV grid
l_layout-report = sy-repid. "Layout fo report
Setup the grid layout using a variable of structure lvc_s_layo
Set grid title
gs_layout-grid_title = 'Flights'.
Selection mode - Single row without buttons
(This is the default mode
gs_layout-sel_mode = 'B'.
Name of the exception field (Traffic light field) and the color
field + set the exception and color field of the table
gs_layout-excp_fname = 'TRAFFIC_LIGHT'.
gs_layout-info_fname = 'LINE_COLOR'.
LOOP AT gi_sflight INTO g_wa_sflight.
IF g_wa_sflight-paymentsum < 100000.
Value of traffic light field
g_wa_sflight-traffic_light = '1'.
Value of color field:
C = Color, 6=Color 1=Intesified on, 0: Inverse display off
g_wa_sflight-line_color = 'C610'.
ELSEIF g_wa_sflight-paymentsum => 100000 AND
g_wa_sflight-paymentsum < 1000000.
g_wa_sflight-traffic_light = '2'.
ELSE.
g_wa_sflight-traffic_light = '3'.
ENDIF.
MODIFY gi_sflight FROM g_wa_sflight.
ENDLOOP.
Grid setup for first display
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'SFLIGHT'
is_variant = l_layout
i_save = 'A'
is_layout = gs_layout
CHANGING it_outtab = gi_sflight.
*-- End of grid setup -
Raise event toolbar to show the modified toolbar
CALL METHOD go_grid->set_toolbar_interactive.
Set focus to the grid. This is not necessary in this
example as there is only one control on the screen
CALL METHOD cl_gui_control=>set_focus EXPORTING control = go_grid.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0200 INPUT
MODULE user_command_0200 INPUT.
CASE ok_code.
WHEN 'EXIT200'.
LEAVE TO SCREEN 100.
WHEN'SAVE'.
PERFORM save_changes.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
*& Form get_data
FORM get_data.
Read data from table SFLIGHT
SELECT *
FROM zsflight
INTO TABLE gi_sflight.
ENDFORM. " load_data_into_grid
*& Form change_flight
Reads the contents of the selected row in the grid, ans transfers
the data to screen 200, where it can be changed and saved.
FORM change_flight.
DATA:l_lines TYPE i.
REFRESH gi_index_rows.
CLEAR g_selected_row.
Read index of selected rows
CALL METHOD go_grid->get_selected_rows
IMPORTING
et_index_rows = gi_index_rows.
Check if any row are selected at all. If not
table gi_index_rows will be empty
DESCRIBE TABLE gi_index_rows LINES l_lines.
IF l_lines = 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'You must choose a line'.
EXIT.
ENDIF.
Read indexes of selected rows. In this example only one
row can be selected as we are using gs_layout-sel_mode = 'B',
so it is only ncessary to read the first entry in
table gi_index_rows
LOOP AT gi_index_rows INTO g_selected_row.
IF sy-tabix = 1.
READ TABLE gi_sflight INDEX g_selected_row-index INTO g_wa_sflight.
ENDIF.
ENDLOOP.
Transfer data from the selected row to screenm 200 and show
screen 200
CLEAR g_screen200.
MOVE-CORRESPONDING g_wa_sflight TO g_screen200.
LEAVE TO SCREEN '200'.
ENDFORM. " change_flight
*& Form save_changes
Changes made in screen 200 are written to the datbase table
zsflight, and to the grid table gi_sflight, and the grid is
updated with method refresh_table_display to display the changes
FORM save_changes.
DATA: l_traffic_light TYPE c.
Update traffic light field
Update database table
MODIFY zsflight FROM g_screen200.
Update grid table , traffic light field and color field.
Note that it is necessary to use structure g_wa_sflight
for the update, as the screen structure does not have a
traffic light field
MOVE-CORRESPONDING g_screen200 TO g_wa_sflight.
IF g_wa_sflight-paymentsum < 100000.
g_wa_sflight-traffic_light = '1'.
C = Color, 6=Color 1=Intesified on, 0: Inverse display off
g_wa_sflight-line_color = 'C610'.
ELSEIF g_wa_sflight-paymentsum => 100000 AND
g_wa_sflight-paymentsum < 1000000.
g_wa_sflight-traffic_light = '2'.
clear g_wa_sflight-line_color.
ELSE.
g_wa_sflight-traffic_light = '3'.
clear g_wa_sflight-line_color.
ENDIF.
MODIFY gi_sflight INDEX g_selected_row-index FROM g_wa_sflight.
Refresh grid
CALL METHOD go_grid->refresh_table_display.
CALL METHOD cl_gui_cfw=>flush.
LEAVE TO SCREEN '100'.
ENDFORM. " save_changes
rgds,
latheesh -
ALV GRID Using oo abap example
Hi Friends,
I am new to oo abap, Can any one give me a basic example how i can create alv grid in oo abap.
regards,
DVNSHI,
Programming for ALV grid display using the classes involves creation of a screen and calling it for display.
Since there has to be a linking between the program and the screen we have created , this comes in the form of a container. We use two important classes during the programming for displaying ALV grid, CL_GUI_ALV_GRID and CL_GUI_CUSTOM_CONTAINER.
Steps To Use ALV Grid in a Program
1. Declare reference variables for,
Container (class CL_GUI_CUSTOM_CONTAINER) and
Grid (class CL_GUI_ALV_GRID)
Example
DATA: grid TYPE REF TO cl_gui_alv_grid,
custom_container TYPE REF TO cl_gui_custom_container
2. Create Standard Screen and a container on that screen and give a name to that container ( Use custom control button from tool bar) . This name will be used to link the container we have created on the screen with the object reference of class CL_GUI_CUSTOM_CONTAINER, which we have declared in the first step
3. Call the screen which has been created
4. Instantiate the container control and the ALV Grid Control in PBO of the screen.
Example
IF custom_container IS INITIAL.
CREATE OBJECT custom_container
EXPORTING
CONTAINER_NAME = MY_CONTAINER'.
CREATE OBJECT grid
EXPORTING
I_PARENT = custom_container.
ENDIF
5. For displaying the data, call the method set_table_for_first_display of object reference of CL_GUI_ALV_GRID.
Example
CALL METHOD grid->set_table_for_first_display
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
IS_VARIANT =
I_SAVE =
I_DEFAULT =
IS_LAYOUT =
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
CHANGING
IT_OUTTAB =
IT_FIELDCATALOG =
IT_SORT =
IT_FILTER =
EXCEPTION
INVALID_PARAMETER_COMBINATION =
PROGRAM_ERROR =
TOO_MANY_LINES =
others =
EXPLANATION OF SOME IMPORTANT PARAMETERS.
I_BYPASSING_BUFFER & I_BUFFER_ACTIVE :
When the program is run for the first time, the fields present in the output table and their positions are stored in a buffer. So the buffer is taken as reference for the successive executions. In order to bypass this buffer the above parameter values should be X and (space) respectively. If these values are not passed to the function module, the changes made in the structure of the internal table will not be reflected in the output.
I_STRUCTURE_NAME:
If the structure of your output table corresponds to a structure stored in the Data Dictionary (DDIC), the ALV Grid Control can use this information to generate the field catalog automatically. Pass the table structure as parameter. In this case, all fields of this DDIC structure are displayed in the list.
IS_VARIANT :
It allows the user to save and reuse the layout. It is a structure of type DISVARIANT and contain the display variant name. It facilitates pre-assignment for a layout, rather than displaying report and then choosing displaying variant.
I_SAVE:
This single character variable specifies whether the user specific display variants can be saved or not.
The I_SAVE "Options for saving layouts" parameter can have the following values:
U Only user specific layouts can be saved
X Only global layouts can be saved
A Both user specific and global layouts can be saved
Space Layouts can not be saved
IS_LAYOUT:
This structure of type LVC_S_LAYO
is used to control the layout of the ALV. Two important fields are:
GRID TITLE. : Title of grid
ZEBRA : Alternate lines in list are displayed in different colors.
IT_FIELDCATALOG:
This internal table of type LVC_T_FCAT
is used to specify the position of various fields in the report itab.
There are three ways we can fill the field catalog table
1. Automatically through data dictionary structure (DDIC). In this case we pass the table structure to I_STRUCTURE_NAME.
2. Manually in ABAP program. Filling the internal table of type LVC_T_FCAT
1. . With each row corresponding to each column of output table. Each row of this table will hold value like
i). TABNAME & FIELDNAME specifies the reference fields for F1 help
ii). CTABNAME & CFIELDNAME specifies the reference fields for currency formatting
iii). QTABNAME & QFIELDNAME specifies the reference fields for quantity formatting
iv). SELTEXT_L holds the long description of the field
v). SELTEXT_M holds the medium description of the field
vi). SELTEXT_S holds the small description of the field
vii). KEY specifies the Key field ( cannot be hidden )
viii). OUTPUTLEN species the output length of the field
ix). DO_SUM specifies that subtotal is required on this field
x). NO_OUT specifies a hidden field
3. Semi-Automatically by combining the above 2 procedures.
Call function Module REUSE_ALV_FIELDCATALOG_MERGE and pass DDIC
structure or the output table to generate the field catalog.
Add additional Rows or modify existing properties of the fields to be displayed.
METHODS OF IMPLEMENTING SOME EXTRA FEATURES
Set focus to the grid
After CALL METHODgrid->set_table_for_first_display insert the following stament:
CALL METHOD cl_gui_control=>set_focus EXPORTING control = grid
Refresh grid display
Use the grid method REFRESH_TABLE_DISPLAY
Example:
CALL METHOD grid->refresh_table_display.
Set the title of the grid
Fill the grid_title field of structure lvc_s_layo.
DATA:
gs_layout TYPE lvc_s_layo.
gs_layout-grid_title = 'TITLE'.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'structure name'
is_layout = gs_layout
CHANGING it_outtab = Output table.
The structure lvc_s_layo contains fields for setting graphical properties, displaying exceptions, calculating totals and enabling specific interaction options
Event Handling
We can handle the events triggered by
1. User defined Text Output
2. Mouse-controlled Actions
3. Self-defined and Standard Functions
Steps for Event Handling
1. Define a (local) class for event handling
2. Define a method for each event you need to handle
3. Implement your event handler methods.
4. Create Object of the above class
5. Link used events and event handler methods of the receiver object and the grid
object.
Example program : Handling Double Click Event
Step1.Define a class.
class lcl_my_event_receiver definition.
public section.
methods:
handle_double_click
for event double_click of cl_gui_alv_grid.
endclass.
Step 2. Implement the class
class lcl_my_event_receiver implementation.
method handle_double_click.
message i001(zz) with ' double click event - Triggerd '.
endmethod.
endclass.
Step 3. Declare and create Object for the local class defined and implemented in steps 1 and 2 respectively
o_receiver TYPE REF TO lcl_my_event_receiver (Declaration)
create object o_receiver. (Instantiation)
Step 4. Link the method for handling the event with the grid object in the PBO of screen after instantiating the grid object
set handler o_receiver->handle_double_click for grid.
EXAMPLE PROGRAM TO CHANGE A CLASSICAL REPORT OUTPUT TO A ALV GRID
This can be used as a template program to convert a classical report layout to a ALV grid.
Report<Report name>
Grid data Declarations----------------------------------------------*
INCLUDE ZVINALVD.
Internal table for ALV grid
TYPES: BEGIN OF T_ALV,
Field1 like table-field1,
Field2 like table-field2,
END OF T_ALV.
DATA: I_ALV TYPE TABLE OF T_ALV.
DATA: WA_ALV TYPE T_ALV.
-Class declarations----
INCLUDE ZVINALVE.
Add a checkbox in selection screen for ALV grid display. If it is unchecked
output will be of classical type.
SELECTION-SCREEN BEGIN OF BLOCK box01.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: COMMENT 4(30) To display repot output as a ALV grid.
PARAMETERS: p_alv AS CHECKBOX.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN END OF BLOCK box01.
START-OF-SELECTION.
Fill the ALV grid internal table
END-OF-SELECTION.
IF P_ALV = X.
PERFORM ALV_DISPLAY.
ELSE.
PERFORM CLASSICAL_DISPLAY.
ENDIF.
Alv Display
FORM ALV_DISPLAY.
CALL SCREEN 100.
ENDFORM.
Module STATUS_0100 OUTPUT
PBO for ALV Grid
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'GRID_DISPLAY'.
DATA:
For parameter IS_VARIANT that is used to set up options for storing
the grid layout as a variant in method set_table_for_first_display
l_layout TYPE disvariant.
GS_LAYOUT-SEL_MODE = 'B'.
Optimize column width
GS_LAYOUT-CWIDTH_OPT = 'X'.
Read data and create objects
IF go_custom_container IS INITIAL.
Create objects for container and ALV grid
CREATE OBJECT go_custom_container
EXPORTING container_name = 'ALV_CONTAINER'.
CREATE OBJECT go_grid
EXPORTING i_parent = go_custom_container.
Create object for event_receiver class
and set handlers
CREATE OBJECT o_event_receiver.
SET HANDLER o_event_receiver->handle_user_command FOR go_grid.
SET HANDLER o_event_receiver->handle_toolbar FOR go_grid.
Layout (Variant) for ALV grid
l_layout-report = sy-repid. "Layout to report
To built fieldcatalog
PERFORM alv_build_fieldcatalog.
Grid setup for first display
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
is_variant = l_layout
i_save = 'A'
is_layout = gs_layout
CHANGING it_outtab = I_ALV
it_fieldcatalog = fieldcat.
Raise event toolbar to show the modified toolbar
CALL METHOD go_grid->set_toolbar_interactive.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
Form ALV_BUILD_FIELDCATALOG.
Store contents of selected line in a internal table
FORM alv_build_fieldcatalog.
CLEAR afield.
afield-fieldname = 'FIELD1'.
afield-tabname = 'I_ALV'.
afield-coltext = Field Name 1.
afield-lzero = ' '.
afield-key = 'X'.
afield-outputlen = XX.
APPEND afield TO fieldcat.
CLEAR afield.
afield-fieldname = 'FIELD2'.
afield-tabname = 'I_ALV'.
afield-coltext = Field Name 2.
APPEND afield TO fieldcat.
ENDFORM. " alv_build_fieldcatalog
Module USER_COMMAND_0100 INPUT
PAI for ALV Grid
MODULE USER_COMMAND_0100 INPUT.
CASE OK_100.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
Form SELECT_LINE
Store contents of selected line in a internal table
FORM SELECT_LINE.
DATA:l_lines TYPE i.
REFRESH gi_index_rows.
CLEAR g_selected_row.
Read index of selected rows
CALL METHOD go_grid->get_selected_rows
IMPORTING et_index_rows = gi_index_rows.
Check if any row are selected at all. If not
table gi_index_rows will be empty
DESCRIBE TABLE gi_index_rows LINES l_lines.
IF l_lines = 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
textline1 = 'You must choose a line'.
EXIT.
ENDIF.
Read indexes of selected rows.
LOOP AT gi_index_rows INTO g_selected_row.
IF sy-tabix = 1.
READ TABLE I_ALV INDEX g_selected_row-index INTO
WA_ALV.
ENDIF.
ENDLOOP.
ENDFORM. " SELECT_LINE
Includes:
1. ZVINALVD for data declarations
INCLUDE ZVINALVD .
Type pool for icons - used in the toolbar
TYPE-POOLS: icon.
To allow the declaration of o_event_receiver before the
lcl_event_receiver class is defined, decale it as deferred in the
start of the program
CLASS lcl_event_receiver DEFINITION DEFERRED.
GLOBAL DATA FOR ALV GRID
DATA:
OK code for alv grid screen
OK_100(4) TYPE C,
ALV control: Layout structure
gs_layout TYPE lvc_s_layo,
Declare reference variables to the ALV grid and the container
go_grid TYPE REF TO cl_gui_alv_grid,
go_custom_container TYPE REF TO cl_gui_custom_container,
o_event_receiver TYPE REF TO lcl_event_receiver,
Data for storing information about selected rows in the grid
Internal table
gi_index_rows TYPE lvc_t_row,
Information about 1 row
g_selected_row LIKE lvc_s_row.
fieldcatalog
DATA: fieldcat TYPE LVC_T_FCAT,
afield TYPE LVC_S_FCAT.
2. ZVINALVE for Class/object declarations
INCLUDE ZVINALVE.
C L A S S E S
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive,
handle_user_command FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
ENDCLASS.
CLASS lcl_event_receiver IMPLEMENTATION
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_toolbar.
Event handler method for event toolbar.
CONSTANTS:
Constants for button type
c_button_normal TYPE i VALUE 0,
c_menu_and_default_button TYPE i VALUE 1,
c_menu TYPE i VALUE 2,
c_separator TYPE i VALUE 3,
c_radio_button TYPE i VALUE 4,
c_checkbox TYPE i VALUE 5,
c_menu_entry TYPE i VALUE 6.
DATA: ls_toolbar TYPE stb_button.
Append seperator to the normal toolbar
CLEAR ls_toolbar.
MOVE c_separator TO ls_toolbar-butn_type..
APPEND ls_toolbar TO e_object->mt_toolbar.
Append a new button that to the toolbar. Use E_OBJECT of
event toolbar. E_OBJECT is of type CL_ALV_EVENT_TOOLBAR_SET.
This class has one attribute MT_TOOLBAR which is of table type
TTB_BUTTON. The structure is STB_BUTTON
CLEAR ls_toolbar.
MOVE 'DISPLAY' TO ls_toolbar-function.
MOVE icon_DISPLAY TO ls_toolbar-icon.
MOVE 'Displaying customer' TO ls_toolbar-quickinfo.
MOVE 'Display' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
METHOD handle_user_command.
Handle own functions defined in the toolbar
CASE e_ucomm.
WHEN 'DISPLAY'.
PERFORM SELECT_LINE.
ENDCASE.
ENDMETHOD.
Reward if useful -
please let me know about variants in alv??
with details.
why we use variants at alvs??
please let me knowWe can change the display of the list by using the display variants. Basically the display variants decide the appearance of the list. We can save display variants of the list by going Settings  Display variant  Save of the ALV display.
We can ask the ALV to use a particular display variant for display. We have to pass the variant name to the display FM through the parameter IS_VARIANT (explained earlier). We can also provide a selection to the user in the selection screen to select a particular display variant. The FM used to obtain the F4 help for the selection of the layout or the variant is explained next.
F4 HELP FOR DISPLAY VARIANTS (REUSE_ALV_VARIANT_F4)
The function module REUSE_ALV_VARIANT_F4 gives a popup to the user to select the display variant from a list of variants, which have been already saved.
Some of the important parameters of the above function modules are:
1. IS_VARIANT (Like DISVARIANT) (Export Parameter)
Pass the program name in the field REPORT of this structure.
2. I_SAVE (Export Parameter)
Set this parameter as A if you want to give the user an option to save an output layout user specifically or as a standard variant.
Set this parameter as U if you want to give the user an option to save an output layout only user specifically
Set this parameter as X for standard save only
Leave it blank to provide no save option.
3. ES_VARIANT (Like DISVARIANT) (Import Parameter)
Pass the same variable as was passed for the first parameter. When we select a particular layout to be used, The FM returns the name of the variant in the field VARIANT of this structure.
Regards,
Vidya -
Hi ,
I am using CL_GUI_ALV_GRID and at runtime we are maintaining variants for this grid , so initially variant is loading properly,
but for one function we are setting some what different fieldcatalog by using SET_FRONTEND_FIELDCATALOG after this method execution variant is not working properly.
i want variant to be loaded after this method also. is there any way to do it.
Thanks and Regards,
shiva.If you are trying to modify how the column heading in the ALV grid looks(color, or any other attribute), it simply can not be done, not in the ALV Grid.
Regards,
Rich Heilman -
Multiple ALV Grid Controls per report - problem with default displ.variant
Hi,
I have a report with few screens called sequentialy. Each one of the screens has implemented own instance of ALV Grid Control within custom container, means:
- screen 100 has container Cont100 and grid control "grid100",
- screen 110 has container Cont110 and grid control "grid110"
- screen 120 has container Cont120 and grid control "grid120"
and so on...
Each one of the grid controls is initialized with own field catalog table, with own layout and variant structure definitions. My problem occurs when the user changes the display variant for some of the grid controls and save the layout variant using "default setting" checkbox. In this case next time the program is started all other grid controls behaves like they don't have their own variant definitions, but uses the default setting of the mentioned screen. This leads (usualy) to unsuable grid controls by default, because usualy different controls have no equal field-definition tables. I have the same behaviour even when there are more than 1 ALV grids on a single screen (for example - 2).
For now I don't provide variant variables at selection screen, but it seems there is no way to provide such variables for each one of the grid-controls.
Is anyone aware how to control this? Means no matter if there is default setting in use for some of the grid-controls, how to manipulate other grid-controls not to use this default setting?
Many thanks in advance.
Regards,
Ivaylo Mutafchievcheck this sample code which displays 4 grids in 4 different tabs and with 4 different handles
PROGRAM sapmzsdpp MESSAGE-ID z1.
Table Declarations *
TABLES:
vbpa, " Sales Document: Partner
kna1, " Customer Master
vbap. " Sales Document: Item Data
Tab Strip Declarations *
CONTROLS:
tabstrip_sdpp TYPE TABSTRIP. " Tabstrip
Constants declarations *
CONSTANTS:
c_rep_zm(2) TYPE c VALUE 'ZM', " Outside Sales Representative
c_rep_ve(2) TYPE c VALUE 'VE', " Inside Sales Representative
c_rep_zi(2) TYPE c VALUE 'ZI', " Sales Manager
c_abgru_08(2) TYPE c VALUE '08', " Reason for Rej: SO Not Closed
c_stock_ind_e TYPE c VALUE 'E', " Stock Idctr : Orders on hand
c_gauge(5) TYPE c VALUE 'GAUGE', " Characteristic Name - GAUGE
c_width(5) TYPE c VALUE 'WIDTH', " Characteristic Name - WIDTH
c_gauge_metric(12) " Character Name - GAUGE_METRIC
TYPE c VALUE 'GAUGE_METRIC',
c_width_metric(12) " Character Name - WIDTH_METRIC
TYPE c VALUE 'WIDTH_METRIC',
c_eng_metric(14) " Charac Value - ENGLISH_METRIC
TYPE c VALUE 'ENGLISH_METRIC',
c_coil(4) TYPE c VALUE 'COIL', " For Value COIL
c_spec_bf(7) TYPE c VALUE 'SPEC_BF'," Charac value SPEC_BF
c_wadat_ist(8) " Actual Goods Movement Date
TYPE c VALUE '00000000',
c_mcha(4) TYPE c VALUE 'MCHA', " Database Table 'MCHA'
c_classtype_022(3)
TYPE c VALUE '022', " Class Type : BATCH
c_pipe(2) TYPE c VALUE '06', " Material Pricing Group: Pipes
c_item_ctgry_ztam(4)
TYPE c VALUE 'ZTAM', " Item Cat:Certificate Mnfctr
c_lab_result(10) " Charac Value LAB_RESULT
TYPE n VALUE '0000001392',
c_none_reqd(10) " For Value NONE REQD
TYPE c VALUE 'NONE REQD.',
c_passed(6) TYPE c VALUE 'PASSED', " For Value PASSED
c_pending(12) TYPE c " For Value TEST PENDING
VALUE 'TEST PENDING',
c_bundling(13) " For Value TEST BUNDLING
TYPE c VALUE 'TEST BUNDLING',
c_normal(2) TYPE c VALUE '01'. " Priority: Normal
Internal Table Declarations *
DATA :
Internal table to hold common data for all reports
BEGIN OF t_common_data OCCURS 0,
kunnr LIKE vbak-kunnr, " Customer Number
vbeln LIKE vbap-vbeln, " Sales Document Number
posnr LIKE vbap-posnr, " Sales Document Item Number
ihrez_e LIKE vbkd-ihrez_e, " Mill Order Number
matnr LIKE vbap-matnr, " Material Number
pstyv LIKE vbap-pstyv, " Sales Document Item Category
kwmeng LIKE vbap-kwmeng, " Cumulative Order Quantity
lprio LIKE vbap-lprio, " Delivery Priority
werks LIKE vbap-werks, " Plant
kondm LIKE vbap-kondm, " Material Pricing Group
aedat LIKE vbap-aedat, " Date of Last Change
cuobj LIKE vbap-cuobj, " Configuration
saldata LIKE vbap-zzcust_req_avail,
" Required Availability Date
END OF t_common_data,
Internal table to hold Customer Number
BEGIN OF t_cust_temp OCCURS 0,
kunnr LIKE vbak-kunnr, " Customer Number
END OF t_cust_temp,
Internal table to hold stock details
BEGIN OF t_stock OCCURS 0,
vbeln LIKE mska-vbeln, " Sales Document Number
posnr LIKE mska-posnr, " Sales Document Item Number
matnr LIKE mska-matnr, " Material Number
werks LIKE mska-werks, " Plant
charg LIKE mska-charg, " Batch Number
kalab LIKE mska-kalab, " Valuated Stock
ersda LIKE mska-ersda,
END OF t_stock,
Internal table to hold deliveries
BEGIN OF t_delivery_data OCCURS 0,
vbeln LIKE lips-vbeln, " Delivery Document Number
vgbel LIKE lips-vgbel, " Document No of Ref Document
vgpos LIKE lips-vgpos, " Item No of Ref Item
END OF t_delivery_data,
Internal table to hold released tons & released days
BEGIN OF t_released_tons_days OCCURS 0,
vbeln LIKE likp-vbeln, " Delivery Document Number
btgew LIKE likp-btgew, " Total Weight
bldat LIKE likp-bldat, " Document Date in Document
END OF t_released_tons_days,
Internal table to hold Pre-Production-Pending Orders (Report-1)
BEGIN OF t_pre_prod_ord OCCURS 0,
sortl1 LIKE zcustcode-sortl, " Customer Search Term
ihrez_e1 LIKE vbkd-ihrez_e, " Mill Order Number
salord1(17) TYPE c, " Sales Order Document & Item
descri TYPE char70, " Specification of the Item
speci TYPE char30, " Description of the Item
days_entry LIKE zlgcyinfo-days_since_entry,
" Days Since Entry
dept LIKE zlgcyinfo-bklog, " Department
notes1 LIKE zcsimemo-text, " CSI File Memo Text
*/ Request No. DV2K904687
chng_date LIKE vbap-aedat, " Date of Last Change
END OF t_pre_prod_ord,
Internal table to hold Delinquent Orders (Report-2)
BEGIN OF t_delinquent_ord OCCURS 0,
sortl2 LIKE zcustcode-sortl, " Customer Search Term
ihrez_e2 LIKE vbkd-ihrez_e, " Mill Order Number
salord2(17) TYPE c, " Sales Order Document & Item
descri TYPE char70, " Specification of the Item
speci TYPE char30, " Description of the Item
saldata LIKE vbap-zzcust_req_avail,
schdate LIKE vbep-edatu, " Schedule Line Date
days_late LIKE zlgcyinfo-dayslate,
" Days Late
unit LIKE zlgcyinfo-unit, " Status of Consolidation Units
days_at_unit LIKE zlgcyinfo-daysatunit,
notes2 LIKE zcsimemo-text, " CSI File Memo Text
END OF t_delinquent_ord,
Internal table to hold Processed Material Orders (Report-3)
BEGIN OF t_processed_ord OCCURS 0,
sortl3 LIKE zcustcode-sortl, " Customer Search Term
ihrez_e3 LIKE vbkd-ihrez_e, " Mill Order Number
salord3(17) TYPE c, " Sales Order Document & Item
descri TYPE char70, " Specification of the Item
speci TYPE char30, " Description of the Item
order_tons LIKE vbap-kwmeng, " Cumulative Order Quantity
fin_tons LIKE mska-kalab, " Val.Stock With Unres Usage
fin_days TYPE i, " Finished Days
rel_tons LIKE likp-btgew, " Total Weight
rel_days TYPE i, " No.of.Days Order is Released
status(15) TYPE c, " Status Of Stock
tb_tons LIKE zlgcyinfo-tons, " Tons
notes3 LIKE zcsimemo-text, " CSI File Memo Text
END OF t_processed_ord,
Internal table to hold Flagged Orders (Report-4)
BEGIN OF t_flagged_ord OCCURS 0,
sortl4 LIKE zcustcode-sortl, " Customer Search Term
ihrez_e4 LIKE vbkd-ihrez_e, " Mill Order Number
salord4(17) TYPE c, " Sales Order Document & Item
descri TYPE char70, " Specification of the Item
speci TYPE char30, " Description of the Item
saldata LIKE vbap-zzcust_req_avail,
unit LIKE zlgcyinfo-unit, " Status of Consolidation Units
tons LIKE zlgcyinfo-tons, " Tons
priority LIKE vbap-lprio, " Delivery Priority
notes4 LIKE zcsimemo-text, " CSI File Memo Text
END OF t_flagged_ord,
Internal table to hold CSI memo file data
BEGIN OF t_csi_memo_data OCCURS 0,
vbeln LIKE zcsimemo-vbeln, " Sales Document Number
posnr LIKE zcsimemo-posnr, " Sales Order line item
text LIKE zcsimemo-text, " CSI File Memo Text
END OF t_csi_memo_data,
Internal table to hold Customer Codes
BEGIN OF t_customer_code OCCURS 0,
sortl LIKE zcustcode-sortl, " Sort Field
kunnr LIKE zcustcode-kunnr, " Customer Number
END OF t_customer_code,
Internal table to hold schedule line dates
BEGIN OF t_schedule_line_date OCCURS 0,
vbeln LIKE vbep-vbeln, " Sales Document Number
posnr LIKE vbep-posnr, " Sales Document Item Number
edatu LIKE vbep-edatu, " Schedule line date
END OF t_schedule_line_date,
Internal table to hold Characteristic values
t_configuration
TYPE TABLE OF conf_out
WITH HEADER LINE,
Internal tables to hold legacy data
t_lgcyinfo TYPE TABLE OF zlgcyinfo
WITH HEADER LINE.
Work variables declarations *
DATA:
gv_parvw LIKE kupav-parvw, " Partner function
gv_abgru LIKE vbap-abgru, " Reason to eject sales order
gv_gauge LIKE conf_out-atwtb, " Charac Value Description
gv_width LIKE conf_out-atwtb, " Charac Value Description
gv_ok_code LIKE sy-ucomm, " Usercommand
gv_okcode LIKE sy-ucomm, " User Command
gv_number LIKE sy-dynnr
VALUE '0101', " Initial Sub Screen Number
gv_vbeln LIKE vbak-vbeln, " Sales Order
gv_posnr LIKE vbup-posnr, " Sales Item
*/ Request No. DV2K904687
gv_del_prio LIKE vbap-lprio, " Delivery Priority
gv_obj_key LIKE inob-objek, " Object Key
gv_config LIKE inob-cuobj, " Configuration
gv_lab_result LIKE ausp-atwrt, " Lab Result Value
gv_pass_stock LIKE mska-kalab, " Finished Stock
gv_fail_stock LIKE mska-kalab, " Failed Stock
gv_tp_tons LIKE mska-kalab, " Test Pending Tons
gv_csi_stock LIKE mbew-lbkum, " CSI Stock On Hand
gv_val_stock LIKE mska-kalab, " Valuated Stock
gv_fin_tons LIKE mska-kalab, " Finished Tons
gv_fin_days TYPE i, " Finished Days
gv_rel_tons LIKE likp-btgew, " Released Tons
gv_rel_days TYPE i, " Released Days
gv_no_delivery " Number of Delivery Documents
TYPE i,
gv_bund_tons LIKE zlgcyinfo-tons, " Bundling Tons
gv_net_weight LIKE mara-ntgew, " Net Weight
gv_tb_tons LIKE zlgcyinfo-tons, " Test/Bundling Tons
gv_date LIKE mska-ersda, " Date
gv_tabix LIKE sy-tabix, " Table Index
gv_flg TYPE c, " Flag Variable
gv_exit TYPE c. " For Parameter Exit
Constant declarations for ALV Grid *
CONSTANTS:
c_cont_pre_prod_ord
TYPE scrfname VALUE 'CUST_PPP',
" Custom Container for Report-1
c_cont_delinquent_ord
TYPE scrfname VALUE 'CUST_DIP',
" Custom Container for Report-2
c_cont_processed_ord
TYPE scrfname VALUE 'CUST_PMS',
" Custom Container for Report-3
c_cont_flagged_ord
TYPE scrfname VALUE 'CUST_FLGORD',
" Custom Container for Report-4
c_handle1(3) TYPE c VALUE 'G_1', " Handle for PPP rpt Grid
c_handle2(3) TYPE c VALUE 'G_2', " Handle for DIP rpt Grid
c_handle3(3) TYPE c VALUE 'G_3', " Handle for PMS rpt Grid
c_handle4(3) TYPE c VALUE 'G_4', " Handle for FLGORD rpt Grid
c_true TYPE c VALUE 'X', " For value 'X'
c_save TYPE c VALUE 'A'. " User-Defd & Global Variants
Selection Screen *
SELECTION-SCREEN BEGIN OF SCREEN 500 AS WINDOW.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-014.
PARAMETERS :
p_osr RADIOBUTTON GROUP g1
DEFAULT 'X', " Outside Sales Representative
p_isr RADIOBUTTON GROUP g1, " Inside Sales Representative
p_s_mgr RADIOBUTTON GROUP g1. " Sales Manager
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-005.
SELECT-OPTIONS:
s_pernr FOR vbpa-pernr
OBLIGATORY, " Employee Number
s_kunnr FOR kna1-kunnr, " Customer Number
s_sortl FOR kna1-sortl, " Customer Search Term
s_kondm FOR vbap-kondm. " Material Pricing Group
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-006.
PARAMETERS:
p_open RADIOBUTTON GROUP g2
DEFAULT 'X', " Open Orders
p_closed RADIOBUTTON GROUP g2. " Closed Orders
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-007.
PARAMETERS:
p_var1 LIKE disvariant-variant, " Variant For Report-1
p_var2 LIKE disvariant-variant, " Variant For Report-2
p_var3 LIKE disvariant-variant, " Variant For Report-3
p_var4 LIKE disvariant-variant. " Varinat For Report-3
SELECTION-SCREEN END OF BLOCK b4.
SELECTION-SCREEN END OF SCREEN 500.
*/ Begin of Modification - Request No. DV2K904687
Selection Screen for Changing Sales Order Priority
SELECTION-SCREEN BEGIN OF SCREEN 1100 AS WINDOW.
SELECTION-SCREEN BEGIN OF BLOCK b5 WITH FRAME TITLE text-044.
PARAMETERS p_sonum LIKE vbap-vbeln." Sales Order Number
SELECT-OPTIONS s_item FOR vbap-posnr." Sales Order Item
PARAMETERS p_delpr LIKE vbap-lprio." Delivery Priority
SELECTION-SCREEN END OF BLOCK b5.
SELECTION-SCREEN END OF SCREEN 1100.
*/ End of Modification - Request No. DV2K904687
CLASS lcl_gv_event_receiveriver DEFINITION *
CLASS lcl_event_receiver DEFINITION DEFERRED.
ALV Grid - Work Variables Declarations *
DATA:
gv_cont_pre_prod_ord TYPE REF
TO cl_gui_custom_container,
" Custom Cont For Report-1
gv_cont_delinquent_ord TYPE REF
TO cl_gui_custom_container,
" Custom Cont For Report-2
gv_cont_processed_ord TYPE REF
TO cl_gui_custom_container,
" Custom Cont For Report-3
gv_cont_flagged_ord TYPE REF
TO cl_gui_custom_container,
" Custom Cont For Report-4
gv_grid_pre_prod_ord TYPE REF
TO cl_gui_alv_grid,
" Grid For Report-1
gv_grid_delinquent_ord TYPE REF
TO cl_gui_alv_grid,
" Grid For Report-2
gv_grid_processed_ord TYPE REF
TO cl_gui_alv_grid,
" Grid For Report-3
gv_grid_flagged_ord TYPE REF
TO cl_gui_alv_grid,
" Grid For Report-4
gv_event_receiver TYPE REF
TO lcl_event_receiver,
" Object For Local Class
gs_lay_pre_prod_ord TYPE lvc_s_layo,
" Work Area for Grid layout
gs_lay_delinquent_ord TYPE lvc_s_layo,
" Work Area for Grid layout
gs_lay_processed_ord TYPE lvc_s_layo,
" Work Area for Grid layout
gs_lay_flagged_ord TYPE lvc_s_layo,
" Work Area for Grid Layout
gs_var_pre_prod_ord TYPE disvariant,
" Layout Structure
gs_var_delinquent_ord TYPE disvariant,
" Layout Structure
gs_var_processed_ord TYPE disvariant,
" Layout Structure
gs_var_flagged_ord TYPE disvariant,
" Layout Structure
t_fcat_pre_prod_ord TYPE lvc_t_fcat
WITH HEADER LINE,
" Field Catalog For Report-1
t_fcat_delinquent_ord TYPE lvc_t_fcat
WITH HEADER LINE,
" Field Catalog For Report-2
t_fcat_processed_ord TYPE lvc_t_fcat
WITH HEADER LINE,
" Field Catalog For Report-3
t_fcat_flagged_ord TYPE lvc_t_fcat
WITH HEADER LINE,
" Field Catalog For Report-4
t_exclude TYPE ui_functions,
" Function Code Table
gs_exclude TYPE ui_func. " Function Code Structure
CLASS lcl_gv_event_receiver DEFINITION *
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_hotspot
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id es_row_no,
handle_top_of_page
FOR EVENT print_top_of_page OF cl_gui_alv_grid,
*/ Begin of Modification - Request No. DV2K904687
handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive,
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
*/ End of Modification - Request No. DV2K904687
ENDCLASS. " LCL_EVENT_RECEIVER DEFINITION
CLASS IMPLEMENTATION *
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_hotspot.
CASE e_column_id-fieldname.
WHEN 'SALORD1'.
CLEAR t_pre_prod_ord.
READ TABLE t_pre_prod_ord
INTO t_pre_prod_ord
INDEX e_row_id-index.
Call VA03 To View Sales Order Line Item Details
PERFORM call_va03 USING t_pre_prod_ord-salord1.
WHEN 'SALORD2'.
CLEAR t_delinquent_ord.
READ TABLE t_delinquent_ord
INTO t_delinquent_ord
INDEX e_row_id-index.
Call VA03 To View Sales Order Line Item Details
PERFORM call_va03 USING t_delinquent_ord-salord2.
WHEN 'SALORD3'.
CLEAR t_processed_ord.
READ TABLE t_processed_ord
INTO t_processed_ord
INDEX e_row_id-index.
Call VA03 To View Sales Order Line Item Details
PERFORM call_va03 USING t_processed_ord-salord3.
WHEN 'SALORD4'.
CLEAR t_flagged_ord.
READ TABLE t_flagged_ord
INTO t_flagged_ord
INDEX e_row_id-index.
Call VA03 To View Sales Order Line Item Details
PERFORM call_va03 USING t_flagged_ord-salord4.
WHEN 'SORTL1'.
CLEAR t_pre_prod_ord.
READ TABLE t_pre_prod_ord
INTO t_pre_prod_ord
INDEX e_row_id-index.
Call ZSD11 for Customer Search Term
PERFORM call_zsd11_cust_code USING t_pre_prod_ord-sortl1.
WHEN 'SORTL2'.
CLEAR t_delinquent_ord.
READ TABLE t_delinquent_ord
INTO t_delinquent_ord
INDEX e_row_id-index.
Call ZSD11 for Customer Search Term
PERFORM call_zsd11_cust_code USING t_delinquent_ord-sortl2.
WHEN 'SORTL3'.
CLEAR t_processed_ord.
READ TABLE t_processed_ord
INTO t_processed_ord
INDEX e_row_id-index.
Call ZSD11 for Customer Search Term
PERFORM call_zsd11_cust_code USING t_processed_ord-sortl3.
WHEN 'SORTL4'.
CLEAR t_flagged_ord.
READ TABLE t_flagged_ord
INTO t_flagged_ord
INDEX e_row_id-index.
Call ZSD11 for Customer Search Term
PERFORM call_zsd11_cust_code USING t_flagged_ord-sortl4.
WHEN 'IHREZ_E1'.
CLEAR t_pre_prod_ord.
READ TABLE t_pre_prod_ord
INTO t_pre_prod_ord
INDEX e_row_id-index.
Call ZSD11 for Mill Order
PERFORM call_zsd11_millorder USING t_pre_prod_ord-ihrez_e1.
WHEN 'IHREZ_E2'.
CLEAR t_delinquent_ord.
READ TABLE t_delinquent_ord
INTO t_delinquent_ord
INDEX e_row_id-index.
Call ZSD11 for Mill Order
PERFORM call_zsd11_millorder USING t_delinquent_ord-ihrez_e2.
WHEN 'IHREZ_E3'.
CLEAR t_processed_ord.
READ TABLE t_processed_ord
INTO t_processed_ord
INDEX e_row_id-index.
Call ZSD11 for Mill Order
PERFORM call_zsd11_millorder USING t_processed_ord-ihrez_e3.
WHEN 'IHREZ_E4'.
CLEAR t_flagged_ord.
READ TABLE t_flagged_ord
INTO t_flagged_ord
INDEX e_row_id-index.
Call ZSD11 for Mill Order
PERFORM call_zsd11_millorder USING t_flagged_ord-ihrez_e4.
WHEN 'NOTES1'.
CLEAR t_pre_prod_ord.
READ TABLE t_pre_prod_ord
INTO t_pre_prod_ord
INDEX e_row_id-index.
Call zsd00087 program to edit CSI Memo Text
PERFORM edit_notes USING t_pre_prod_ord-salord1.
WHEN 'NOTES2'.
CLEAR t_delinquent_ord.
READ TABLE t_delinquent_ord
INTO t_delinquent_ord
INDEX e_row_id-index.
Call zsd00087 program to edit CSI Memo Text
PERFORM edit_notes USING t_delinquent_ord-salord2.
WHEN 'NOTES3'.
CLEAR t_processed_ord.
READ TABLE t_processed_ord
INTO t_processed_ord
INDEX e_row_id-index.
Call zsd00087 program to CSI Memo Text
PERFORM edit_notes USING t_processed_ord-salord3.
WHEN 'NOTES4'.
CLEAR t_flagged_ord.
READ TABLE t_flagged_ord
INTO t_flagged_ord
INDEX e_row_id-index.
Call zsd00087 program to CSI Memo Text
PERFORM edit_notes USING t_flagged_ord-salord4.
ENDCASE. " CASE E_COLUMN_ID ...
ENDMETHOD. " HANDLE_HOTSPOT
METHOD handle_top_of_page.
PERFORM write_report_header.
ENDMETHOD. " METHOD HANDLE_TOP_OF_PAGE
*/ Begin of Modification - Request No. DV2K904687
METHOD handle_toolbar.
DATA: ls_toolbar TYPE stb_button.
append a separator to normal toolbar
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
append a button for Change Delivery Priority
MOVE 'CHNG_PRIO' TO ls_toolbar-function.
MOVE 'Change SO Delivery Priority'(048)
TO ls_toolbar-quickinfo.
MOVE 'Change SO Priority'(049) TO ls_toolbar-text.
MOVE 0 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD. " handle_toolbar
METHOD handle_user_command.
DATA: t_sel_row TYPE lvc_t_roid,
gs_sel_row TYPE lvc_s_roid,
gs_flagged_ord LIKE t_flagged_ord,
lv_lines TYPE i.
CASE e_ucomm.
WHEN 'CHNG_PRIO'.
REFRESH t_sel_row.
CLEAR e_ucomm.
CALL METHOD gv_grid_flagged_ord->get_selected_rows
IMPORTING
et_row_no = t_sel_row.
CLEAR: t_flagged_ord,
gv_vbeln,
gv_posnr,
gv_del_prio.
DESCRIBE TABLE t_sel_row LINES lv_lines.
IF lv_lines GT 1.
MESSAGE i001 WITH 'Select only one row'(043).
ELSEIF lv_lines EQ 1.
READ TABLE t_sel_row INTO gs_sel_row INDEX 1.
READ TABLE t_flagged_ord INTO gs_flagged_ord
INDEX gs_sel_row-row_id.
IF sy-subrc EQ 0.
SPLIT gs_flagged_ord-salord4 AT '-' INTO gv_vbeln gv_posnr.
gv_del_prio = gs_flagged_ord-priority.
CLEAR: s_item, s_item[].
p_sonum = gv_vbeln.
p_delpr = gv_del_prio.
s_item-low = gv_posnr.
APPEND s_item TO s_item.
CLEAR s_item.
ENDIF. " IF sy-subrc EQ 0
ENDIF. " IF lv_lines GT 1
IF lv_lines LE 1.
CALL SELECTION-SCREEN '1100' STARTING AT 30 2
ENDING AT 110 7.
LEAVE TO SCREEN 100.
ENDIF.
ENDCASE. " CASE e_ucomm
ENDMETHOD. " handle_user_command
*/ End of Modification - Request No. DV2K904687
ENDCLASS. " LCL_EVENT_RECEIVER
" IMPLEMENTATION
Form WRITE_REPORT_HEADER *
This subroutine displays Report Header which includes *
Report Name, Executed by, Execution date, Execution Time *
There are no parameters to be passed to this subroutine *
FORM write_report_header.
DATA lv_rep_tit(72) TYPE c.
FORMAT COLOR COL_KEY.
MOVE sy-title TO lv_rep_tit.
CONDENSE lv_rep_tit.
SKIP 1.
WRITE: /3 sy-repid,
25 'California Steel Industries, Inc.'(040),
75 'Page'(041),
80(4) sy-pagno.
WRITE: /3 sy-uzeit,
25 lv_rep_tit,
75 sy-datum.
FORMAT RESET.
ENDFORM. " WRITE_REPORT_HEADER
At selection-output *
AT SELECTION-SCREEN OUTPUT.
CLEAR sy-ucomm.
IF sy-dynnr EQ '0500'.
Initialize layout variant for report-1
CLEAR gs_var_pre_prod_ord.
gs_var_pre_prod_ord-report = sy-cprog.
gs_var_pre_prod_ord-handle = c_handle1.
PERFORM initialize_layoutvariant CHANGING gs_var_pre_prod_ord.
p_var1 = gs_var_pre_prod_ord-variant.
Initialize layout variant for report-2
CLEAR gs_var_delinquent_ord.
gs_var_delinquent_ord-report = sy-cprog.
gs_var_delinquent_ord-handle = c_handle2.
PERFORM initialize_layoutvariant CHANGING gs_var_delinquent_ord.
p_var2 = gs_var_delinquent_ord-variant.
Initialize layout variant for report-3
CLEAR gs_var_processed_ord.
gs_var_processed_ord-report = sy-cprog.
gs_var_processed_ord-handle = c_handle3.
PERFORM initialize_layoutvariant CHANGING gs_var_processed_ord.
p_var3 = gs_var_processed_ord-variant.
Initialize layout variant for report-4
CLEAR gs_var_flagged_ord.
gs_var_flagged_ord-report = sy-cprog.
gs_var_flagged_ord-handle = c_handle4.
PERFORM initialize_layoutvariant CHANGING gs_var_flagged_ord.
p_var4 = gs_var_flagged_ord-variant.
*/ Begin of Modification - Request No. DV2K904687
ELSEIF sy-dynnr EQ '1100'.
DATA t_exclude TYPE TABLE OF sy-ucomm.
SET PF-STATUS 'MENU_1100'.
To use your own GUI status for a selection screen
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
p_status = 'MENU_1100'
TABLES
p_exclude = t_exclude.
ENDIF. " IF sy-dynnr EQ '0500'
*/ End of Modification - Request No. DV2K904687
At Selection Screen *
AT SELECTION-SCREEN.
*/ Begin of Modification - Request No. DV2K904687
CASE sy-dynnr.
WHEN '1100'.
IF sy-ucomm IS INITIAL.
CLEAR sy-ucomm.
LEAVE TO SCREEN 1100.
ENDIF. " IF sy-ucomm IS INITIAL
CASE sy-ucomm.
WHEN 'SAVE'.
CLEAR sy-ucomm.
Change Delivery Priority using BAPI method
PERFORM change_del_priority.
CLEAR: sy-ucomm,
gv_vbeln,
gv_posnr,
gv_del_prio,
p_sonum,
s_item,
s_item[],
p_delpr.
LEAVE TO SCREEN 0.
WHEN 'CANCEL'.
CLEAR: sy-ucomm,
gv_vbeln,
gv_posnr,
gv_del_prio,
p_sonum,
s_item,
s_item[],
p_delpr.
LEAVE TO SCREEN 0.
ENDCASE. " CASE sy-ucomm
WHEN '0500'.
IF sy-ucomm EQ 'CRET'.
LEAVE TO SCREEN 100.
ELSEIF sy-ucomm IS INITIAL.
LEAVE TO SCREEN 500.
ENDIF. " IF SY-UCOMM EQ 'CRET'
ENDCASE. " CASE sy-dynnr
*/ End of Modification - Request No. DV2K904687
Selection Screen: Validations *
AT SELECTION-SCREEN ON s_pernr.
Validate Employee Number
PERFORM validate_employee_number.
AT SELECTION-SCREEN ON s_kunnr.
Validate Customer Number
IF NOT s_kunnr IS INITIAL.
PERFORM validate_customer_number.
ENDIF. " IF NOT S_KUNNR IS INITIAL
AT SELECTION-SCREEN ON s_sortl.
Validate Search Term
IF NOT s_sortl IS INITIAL.
PERFORM validate_search_term.
ENDIF. " IF NOT S_SORTL IS INITIAL
AT SELECTION-SCREEN ON s_kondm.
Validate Product
IF NOT s_kondm IS INITIAL.
PERFORM validate_product.
ENDIF. " IF NOT S_KONDM IS INITIAL
Validate p_var1
AT SELECTION-SCREEN ON p_var1.
CLEAR gs_var_pre_prod_ord.
gs_var_pre_prod_ord-report = sy-cprog.
gs_var_pre_prod_ord-handle = c_handle1.
gs_var_pre_prod_ord-variant = p_var1.
IF p_var1 IS NOT INITIAL.
PERFORM validate_variant CHANGING gs_var_pre_prod_ord.
ENDIF. " IF P_VAR1 IS NOT INITIAL
Validate p_var2
AT SELECTION-SCREEN ON p_var2.
CLEAR gs_var_delinquent_ord.
gs_var_delinquent_ord-report = sy-cprog.
gs_var_delinquent_ord-handle = c_handle2.
gs_var_delinquent_ord-variant = p_var2.
IF p_var2 IS NOT INITIAL.
PERFORM validate_variant CHANGING gs_var_delinquent_ord.
ENDIF. " IF P_VAR2 IS NOT INITIAL
Validate p_var3
AT SELECTION-SCREEN ON p_var3.
CLEAR gs_var_processed_ord.
gs_var_processed_ord-report = sy-cprog.
gs_var_processed_ord-handle = c_handle3.
gs_var_processed_ord-variant = p_var3.
IF p_var3 IS NOT INITIAL.
PERFORM validate_variant CHANGING gs_var_processed_ord.
ENDIF. " IF P_VAR3 IS NOT INITIAL
Validate p_var4
AT SELECTION-SCREEN ON p_var4.
CLEAR gs_var_flagged_ord.
gs_var_flagged_ord-report = sy-cprog.
gs_var_flagged_ord-handle = c_handle4.
gs_var_flagged_ord-variant = p_var4.
IF p_var4 IS NOT INITIAL.
PERFORM validate_variant CHANGING gs_var_flagged_ord.
ENDIF. " IF P_VAR4 IS NOT INITIAL
Selection Screen: Value Request for ALV GRID Variants *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var1.
CLEAR gs_var_pre_prod_ord.
gs_var_pre_prod_ord-report = sy-cprog.
gs_var_pre_prod_ord-handle = c_handle1.
PERFORM f4_variant CHANGING gs_var_pre_prod_ord
gv_exit.
IF gv_exit NE c_true.
p_var1 = gs_var_pre_prod_ord-variant.
ENDIF. " IF GV_EXIT NE c_true
F4 help for variant p_var2
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var2.
CLEAR:
gs_var_delinquent_ord,
gv_exit.
gs_var_delinquent_ord-report = sy-cprog.
gs_var_delinquent_ord-handle = c_handle2.
PERFORM f4_variant CHANGING gs_var_delinquent_ord
gv_exit.
IF gv_exit NE c_true.
p_var2 = gs_var_delinquent_ord-variant.
ENDIF. " IF GV_EXIT NE c_true
F4 help for variant p_var3
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var3.
CLEAR:
gs_var_processed_ord,
gv_exit.
gs_var_processed_ord-report = sy-cprog.
gs_var_processed_ord-handle = c_handle3.
PERFORM f4_variant CHANGING gs_var_processed_ord
gv_exit.
IF gv_exit NE c_true.
p_var3 = gs_var_processed_ord-variant.
ENDIF. " IF GV_EXIT NE c_true
F4 help for variant p_var4
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var4.
CLEAR:
gs_var_flagged_ord,
gv_exit.
gs_var_flagged_ord-report = sy-cprog.
gs_var_flagged_ord-handle = c_handle4.
PERFORM f4_variant CHANGING gs_var_flagged_ord
gv_exit.
IF gv_exit NE c_true.
p_var4 = gs_var_flagged_ord-variant.
ENDIF. " IF GV_EXIT NE c_true
Form validate_employee_number *
This subroutine validates Employee Number *
There are no parameters to need be passed to this subroutine *
FORM validate_employee_number.
DATA lv_pernr LIKE vbpa-pernr.
SELECT SINGLE pernr
INTO lv_pernr
FROM vbpa
WHERE pernr IN s_pernr.
IF sy-subrc NE 0.
MESSAGE e001 WITH text-010.
ENDIF. " IF SY-SUBRC NE 0
CLEAR lv_pernr.
ENDFORM. " VALIDATE_EMPLOYEE_NUMBER
Form validate_customer_number *
This subroutine validates Customer Number *
There are no parameters need to be passed to this subroutine *
FORM validate_customer_number.
SELECT SINGLE kunnr
INTO t_common_data-kunnr
FROM kna1
WHERE kunnr IN s_kunnr.
IF sy-subrc NE 0.
MESSAGE e001 WITH text-011.
ENDIF. " IF SY-SUBRC NE 0
CLEAR t_common_data-kunnr.
ENDFORM. " VALIDATE_CUSTOMER_NUMBER
Form validate_search_term *
This subroutine validates Search Term *
There are no parameters need to be passed to this subroutine *
FORM validate_search_term.
SELECT SINGLE sortl
INTO t_customer_code-sortl
FROM kna1
WHERE sortl IN s_sortl.
IF sy-subrc NE 0.
MESSAGE e001 WITH text-012.
ENDIF. " IF SY-SUBRC NE 0
CLEAR t_customer_code-sortl.
ENDFORM. " VALIDATE_SEARCH_TERM
Form validate_product *
This subroutine validates Product *
There are no parameters need to be passed to this subroutine *
FORM validate_product.
SELECT SINGLE kondm
INTO t_ -
Hi.
I have to following issue.
I have a program that through the use of additional buttons I added to my ALV grid can jump between different ALV grids.
The problem I'm having is that when you change the variant for ALV grid1 while viewing it and than change to grid 2, when you go back to grid1 the selected variant isn't used anymore.
So what I need is a way see check which variant is active when I get to the USER_COMMAND function of the ALV grid.
If someone has the answer to this I'd be very happy.
Regards,
ArthurA. Parisius,
Do the following step so that you cant loose variant u set when u come to primary alv from secondary ALV.
1.
When you export I_SAVE = 'X' or 'A' through REUSE_ALV_GEID_DISPLAY, you can save variant on ALV output.you can save different variants for one output.
2.
Define one parameter to select variant on selection-screen itself instead of selecting on Output.
parameters :p_layout like disvariant-variant.
3.
F4 help to get variants set for the report.
at selection-screen on value-request for p_layout.
perform get_variant.
subroutine code and define w_variant structure type disvariant.
*& Form get_variant
form get_variant.
data: lw_variant type disvariant,
l_exit type char1.
lw_variant-report = sy-repid.
call function 'REUSE_ALV_VARIANT_F4'
exporting
is_variant = lw_variant
i_save = 'A'
importing
e_exit = l_exit
es_variant = lw_variant
exceptions
not_found = 2.
if sy-subrc = 2.
message id sy-msgid type 'S' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
else.
if l_exit eq space.
p_layout = lw_variant-variant.
if not p_layout is initial.
perform get_w_variant.
endif.
endif.
endif.
endform. " get_variant
*& Form get_w_variant
form get_w_variant.
w_variant-report = sy-repid.
w_variant-handle = space.
w_variant-log_group = space.
w_variant-username = space.
w_variant-variant = p_layout.
w_variant-text = space.
w_variant-dependvars = space.
endform. " get_w_variant
4.
Pass w_variant structure through REUSE_ALV_GRID_DISPLAY FM .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = 'ZVENKAT_TEST1' "Program name
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = i_field
IT_SORT = i_sort
I_SAVE = 'X'
IS_VARIANT = w_variant "If you pass variant selected on selection-screen
"on F4 help,corresponding output is displayed
TABLES
T_OUTTAB = <i_tab>
EXCEPTIONS
PROGRAM_ERROR = 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.
5.
If you select variant and pass through FM it will be remained when u come back from secondary ALV..
I hope that it helps u .
Regards,
Venkat.O -
How to learn about ALV Grid?
Hi Experts,
I dont about ALV grid and how to implement it.So can anyone let me know how to implement the simple basic ALV grid with example?
Please explain me with set by step procedure.
Thanks a lot in Advance,
Regards,
Raghuhi,
Process to create ALV with OOPs:
Step 1:
Create a container. There are 2 type of containers: docking and custom.
Go to SE38.Create a program. Use Pattern button to create object for docking container. Click ABAP Object Pattern radio button. Click Create object radio button. Give Instance as o_docking and class as cl_gui_docking_contianer.
Step 2:
Create a grid inside the container.
Use Pattern button to create the same. Make the parent of grid as container.
Click ABAP Object Pattern radio button. Click Create object radio button. Give Instance as o_grid and class as cl_gui_alv_grid. Create object o_grid.
Step 3:
Call the function lvc_fieldcatalog_merge to get the field catalog.
Pass the structure name.
Step 4:
Call the method of grid set_table_for_first_display to display the output.
Click ABAP Object Pattern radio button. Click Call Method radio button. Give Instance as o_grid and Class/Interface as cl_gui_alv_grid and Method as set_table_for_first_display.
w_variant-report = sy-repid.
Call method o_grid->set_table_for_first_display
Step 5:
Fill the internal table itab with values by using logic.
select * from mara into table itab up to 100 rows.
call screen 9000.
Create a screen by double clicking 9000 in the above line. Fill the description for the screen. In the flow logic, uncomment the PBO and PAI module and create those in main program (for simplicity).
Step 6:
Create GUI status. Create GUI Title if required. That can be done by using display object List (CtrlShiftF5).Then in left side, right click the program and create GUI Status and Title.
Step 7:
Free the memory occupied once the BACK, EXIT or CANCEL button is clicked. Use Pattern button to call the method FREE of cl_gui_alv_grid and cl_gui_docking_container.
Click ABAP Object Pattern radio button. Click Call Method radio button. Give Instance as o_grid and Class/Interface as cl_gui_alv_grid and Method as Free.
Similarly Click Call Method radio button. Give Instance as o_docking and Class/Interface as cl_gui_docking_container and Method as Free.
Also follow these links.
1. Please give me general info on ALV.
http://www.sapfans.com/forums/viewtopic.php?t=58286
http://www.sapfans.com/forums/viewtopic.php?t=76490
http://www.sapfans.com/forums/viewtopic.php?t=20591
http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
2. How do I program double click in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
3. How do I add subtotals (I have problem to add them)...
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
4. How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
5. How to print page number / total number of pages X/XX in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
http://www.sapfans.com/forums/viewtopic.php?t=64320
http://www.sapfans.com/forums/viewtopic.php?t=44477
7. How can I set the cell color in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=52107
8. How do I print a logo/graphics in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=81149
http://www.sapfans.com/forums/viewtopic.php?t=35498
http://www.sapfans.com/forums/viewtopic.php?t=5013
9. How do I create and use input-enabled fields in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=84933
http://www.sapfans.com/forums/viewtopic.php?t=69878
10. How can I use ALV for reports that are going to be run in background?
http://www.sapfans.com/forums/viewtopic.php?t=83243
http://www.sapfans.com/forums/viewtopic.php?t=19224
11. How can I display an icon in ALV? (Common requirement is traffic light icon).
http://www.sapfans.com/forums/viewtopic.php?t=79424
http://www.sapfans.com/forums/viewtopic.php?t=24512
12. How can I display a checkbox in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919
Hope this helps, Do reward.
Maybe you are looking for
-
Macbook to Sony Bravia - Problems
Hey - So I'm trying to connect my Macbook (I got this back in like 2006-2007?) to my Sony Bravia TV. I have the current set-up: VGA Cable connected from the back of the TV to a Mini-DVI-to-VGA connector to the MacBook. When I plug it in, the Macbook
-
Problem with photos making book in iPhoto
I'm making a book on iPhoto and two of the pix indicate they have already been used, but they have not. Can't delete them (because there's a tick mark beside them) but can't use them either. Help?
-
I got a new iphone 4 today. I have updated my itunes to the latest update but my itunes won't sync with my iphone. Does anybody know why this might be?
-
How to delete System / System Connector in VIRSA CC ??
We have implemented VIRSA with 1 System Landscape. i.e for VIRSA we have only one system. Our VIRSA version is 5.1. Currently our VIRSA is configured with 2 DEV + 2 QTY + 2 PRD ABAP systems. i.e VIRSA is having now 6 ABAP Systems for analysis. As we
-
Hi Guys, We have recently purchased a Cisco ISR 2921, and on its docs it is writen that this product has a License for IOS IPS Signatrue File, but on the product Flash Memory there is no IOS IPS Sig-File. and while i try to download the sig-file