ALV repots
Hi,
what exactly we need to do inorder to generate ALV interactive report using usercommand? What I know is
use:
it_events type slis_t_events,
it_layout type slis_layout,
it_fieldcatalog type slis_t_fieldcatalog ( optional),
we have to populate the it_events table ,
from this table we have to extract user command form routine using 'slis_ev_usercommand' name.
we have to set pf status
and then we have to use user command.
are these steps right?
will be better if anyone explain with one example?
hi,
please go through this code.
REPORT ZSTEST_037 .
TABLES VBAK.
TYPE-POOLS SLIS.
*--ALV
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA I_KNA1 LIKE KNA1 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
ERNAM LIKE VBAK-ERNAM,
KUNNR LIKE VBAK-KUNNR,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
NETWR LIKE VBAP-NETWR,
END OF ITAB1.
SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.
START-OF-SELECTION.
SELECT VBELN
ERDAT
ERNAM
KUNNR FROM VBAK INTO TABLE ITAB WHERE VBELN IN S_VBELN.
END-OF-SELECTION.
*--1
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-SELTEXT_L = 'Sal doc no'.
WA_FIELDCAT-KEY = 'X'.
WA_FIELDCAT-HOTSPOT = 'X'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
*--2
WA_FIELDCAT-FIELDNAME = 'ERDAT'.
WA_FIELDCAT-SELTEXT_L = 'Date'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
*--3
WA_FIELDCAT-FIELDNAME = 'ERNAM'.
WA_FIELDCAT-SELTEXT_L = 'Name'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
*--4
WA_FIELDCAT-FIELDNAME = 'KUNNR'.
WA_FIELDCAT-SELTEXT_L = 'Customer'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
*--LAYOUT
I_LAYOUT-ZEBRA = 'X'.
I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = I_LAYOUT
IT_FIELDCAT = I_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB
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.
FORM USER_COMMAND USING L_UCOMM LIKE SY-UCOMM
L_SELTEXT TYPE SLIS_SELFIELD.
DATA L_VALUE(10) TYPE N.
IF L_UCOMM EQ '&IC1' or L_UCOMM EQ 'VBAP'.
CASE L_SELTEXT-FIELDNAME.
WHEN 'VBELN' .
L_VALUE = L_SELTEXT-VALUE.
SELECT VBELN
POSNR
MATNR
NETWR FROM VBAP INTO TABLE ITAB1
WHERE VBELN EQ L_VALUE.
REFRESH I_FIELDCAT.
*--1
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-SELTEXT_L = 'Sal doc no'.
WA_FIELDCAT-KEY = 'X'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
*--2
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-SELTEXT_L = 'Item no'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
*--3
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_L = 'material no'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
*--4
WA_FIELDCAT-FIELDNAME = 'NETWR'.
WA_FIELDCAT-SELTEXT_L = 'Amount'.
WA_FIELDCAT-DO_SUM = 'X'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB1
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.
WHEN 'KUNNR'.
L_VALUE = L_SELTEXT-VALUE.
SELECT * FROM KNA1 INTO TABLE I_KNA1
WHERE KUNNR EQ L_VALUE.
REFRESH I_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME =
I_INTERNAL_TABNAME = 'I_KNA1'
I_STRUCTURE_NAME = 'KNA1'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
CT_FIELDCAT = I_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = I_KNA1
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.
ENDCASE.
ENDIF.
ENDFORM. "USER_COMMAND
*& Form PF_STATUS
text
-->SLIS_T_EXTAtext
FORM PF_STATUS USING SLIS_T_EXTAB.
SET PF-STATUS 'SSS'.
ENDFORM. "PF_STATUS
Similar Messages
-
How place an company logo in alv repots in webdynpro abap
in webdynpro how to place a image in alv reports at particular corner .
Hi,
Check out this link -
http://help.sap.com/saphelp_nw70ehp1/helpdata/en/86/641b88c9034eebacb26ba7fbb17981/frameset.htm
Get the ALV header using the model(cl_salv_wd_config_table) object.
using this header object use the method to set the image SET_IMAGE_SOURCE.
Regards,
Lekha. -
Hi Expets,
My requirment is i have to check the duplicate records like if there are two materials with the same material description yet different material number.
But this should check other system (also SAP),
My question is can i use
CALL FUNCTION 'functionname' DESTINATION name will work?
please share the above or any other alternative is there.
Thanks in advance
Rams
Message was edited by:
ramesh
Message was edited by:
rameshHi Rams,
can you explain a bit more what you want to do?
My understanding is, that you want to call a function module in another SAP system using CALL FUNCTION 'functionname' DESTINATION. From this function module you receive a table that you later want to display in an ALV grid, is this correct?
I don't see a problem why it shouldn't work like this.
kind regards,
Timo -
I would like to get the facility code in my ALV repot for a customer statment report .
Its been asked to populate that field using the logic as follows.
The logic for the customer facility code should be something like this.
Find the business location partner of the ship-to. If the business location has a partner u2018ZFACu2019 use the ZFAC if there is no partner ZFAC display u2018AMBCu2019. If there is no business location partnered to the u2018ship tou2019 leave blank.
Could anyone please guide me how to go through to get the facility code and fill with ABMC when its partnered and facility code is blank and to leave blank if its not partnered.
Thanks.
-
Hi
I need help in interactive ALV Repot. When i executed the report, it is displaying the material Doc number ,material etc in grid layout.
my requirement is , when i double click on material Document number , it has to show the sales order number, salesorder item and Delivery number. Same thing is required for when i click on material also.
please help me in this.
regards,
RamHi
see the sample code for one field double clicking
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: index TYPE i,
w_disp_head LIKE LINE OF t_disp_head,
w_door LIKE likp-lgtor.
CASE r_ucomm.
WHEN 'PICK'. " Double click line
IF ( rs_selfield-fieldname = 'MBLNR' or
rs_selfield-fieldname = 'MATNR' ).
Read data table, using index of row user clicked on
Read the internal table in which these fields are there.
take that records corresponding EBELn and EBELP fields for that MATNR or MBLNR fields
READ TABLE t_disp_tab INTO wa_item_tab INDEX
rs_selfield-tabindex.
fetch the sales order no and item data from EKKN table by passing the PO no and PO item
<wa_item_tab-ebeln and wa_item_tab-ebelp>
display the data using an internal table or in another ALV.
endcase.
endform..
Reward points if useful
Regards
Anji -
Data missing in background job
Hi All,
I have cretaed an ALV repot with dunamic field catalog. When I am executing the report in foreground it's working fine but when I am executing it in Background except one or fields data are not being displayed in SM37 or SP01. Can anybody tell what exactly the problem is? Thanks in advanceHi,
When u have most number of fields in the output when u scheduled in background after execution u need to use one button to display all the fields . When u press that u will get all fields and all the pages . Check the button i can give the button position now.
Regards,
Srinivas -
Sort Icon/option in ALV tree repot using classes and methods
Hi all,
I have done an alv tree report using the class cl_gui_alv_tree
and i need to let users re-sort the report by using a sort icon(as visible in a normal alv report).Is there any possibility to create an icon and set the functionality such that the entire tree structure gets resorted depending upon the sort criteria?Please give me an example of doing so if there is an option.if u want without classes then i can give an example of Sort Icon/option.
example:-
DATA: wa_sortinfo TYPE slis_sortinfo_alv.
i_sortcat TYPE slis_t_sortinfo_alv.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = report_id
i_grid_title = ws_title
i_callback_top_of_page = 'TOP-OF-PAGE'
is_layout = wa_layout
it_fieldcat = i_fieldcat[]
it_sort = i_sortcat
i_save = 'A'
it_events = i_events
TABLES
t_outtab = i_reportdata1
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.
PERFORM sortcat_init CHANGING i_sortcat.
FORM sortcat_init CHANGING i_sortcat TYPE slis_t_sortinfo_alv.
CLEAR wa_sortinfo.
wa_sortinfo-fieldname = 'EBELN'. (sales order)
wa_sortinfo-tabname = 'I_REPORTDATA1'.
wa_sortinfo-spos = 1. " First sort by this field.
wa_sortinfo-up = 'X'. " Ascending
wa_sortinfo-subtot = 'X'. " Subtotal at Name1
APPEND wa_sortinfo TO i_sortcat.
CLEAR wa_sortinfo.
wa_sortinfo-fieldname = 'EBELP'.
wa_sortinfo-tabname = 'I_REPORTDATA1'.
wa_sortinfo-spos = 2. " Sec sort by this field.
wa_sortinfo-up = 'X'. " Ascending
wa_sortinfo-subtot = 'X'. " Subtotal at Name1
APPEND wa_sortinfo TO i_sortcat.
ENDFORM. " sortcat_init -
Any standar alv prog for copying PF-STATUS.
Hi all,
I am developing ALV drill down report. Plz provide any standard ALV prog for copying status.
>Help me on how to handle Event in interactive alv lis. Provide me code for event handling and alv drill down repot.
Regads.Hello,
1) While creating your alv report,
after setting the pf-status , double click on it.
You will be taken to the screen where we set our gui status.
To get the standard alv status you have to go to Extras->then click on adjust template
In this select list viewer.
With this when you check your application toolbar there,
all the standard function codes of alv will appear.
2) To handle events in your alv,
you have to call one function module-> Reuse_alv_Events_get
In this you have to give one internal table name whose structure is like slis_t_events ,
also create its work area of type slis_alv_events.
With this in your internal table given in that function module all the events of alv get listed,
you can see that while debugging.
After that you have to read that internal table to work area for that required event like if i want the event
End-Of-List from that list then i will write:
READ TABLE itab_events INTO wa_events WITH KEY name = 'END_OF_LIST'.
wa_events-form = 'END'.
MODIFY itab_events FROM wa_events INDEX sy-tabix.
CLEAR wa_events.
The mentioned in codes that is 'End',
you will have to create one subroutine for it.
that will be like,
FORM end.
REFRESH it_end.
wa_end-typ = 'S'.
wa_end-key = text-004.
wa_end-info = sy-datum.
APPEND wa_end TO it_end.
CLEAR wa_end.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_end
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM. "END
The message written in the text element will get printed in the end of the list as we selected end-of-list event from the internal table passed in the function module Reuse_alv_Events_Get.
Hope this solves your problem.
Thanks -
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 -
Not displaying documents in alv mode
Hi Experts,
I had developed service tax report for particular gl while excecuting the report , when i run report on alv display 4 doucment 1100001408, 1100001409 , 1100001410, 1100001412 , these documents are not displayed in ALV mode,for fiscal year 2010 and 2011
for both the fiscal year only these documents are not dislpayed, when i debugged it ,its coming to final internal table i.e it_final[]
still it is not displaying in repot if it is ALV mode . But these same document is displaying in normal view mode.
Thanks in Advance,
AshishHi,
are you sure in the final internal table your getting the records? check the filter option.
For that ALV output they use any filter option and save into one layout variant. Please check any filter option they did or not?
Regards,
Dhina.. -
Hi gurus,
can anyone send me sample code to develop a repot using classes with all possibilities i.e, using events and interactive, pop-up.
Best answers wil be rewarded.
Regards,
alsonREPORT zex35 MESSAGE-ID zsmg NO STANDARD PAGE HEADING.
INCLUDE <icon>.
CLASS myclass DEFINITION DEFERRED.
TABLES: vbak,kna1.
TYPE-POOLS: slis,sdydo.
DATA: BEGIN OF jtab OCCURS 0,
ch(1),
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
kunnr LIKE vbak-kunnr,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
knumv LIKE vbak-knumv,
bstnk LIKE vbak-bstnk,
ktext LIKE vbak-ktext,
styletable TYPE lvc_t_styl,
rowcolor(4),
cellcolor TYPE lvc_t_scol,
ptype_dd_hndl TYPE int4 ,
END OF jtab.
DATA : ejtab LIKE jtab OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF vjtab OCCURS 0,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
kunnr LIKE vbak-kunnr,
ernam LIKE vbak-ernam,
netwr LIKE vbak-netwr,
knumv LIKE vbak-knumv,
bstnk LIKE vbak-bstnk,
ktext LIKE vbak-ktext,
END OF vjtab.
DATA: alv TYPE scrfname VALUE 'ALV',
obj_c_container_alv TYPE REF TO cl_gui_custom_container,
obj_grid TYPE REF TO cl_gui_alv_grid,
obj_myclass TYPE REF TO myclass,
i_fieldcat TYPE lvc_t_fcat,
wa_fieldcat LIKE LINE OF i_fieldcat,
ei_fieldcat TYPE lvc_t_fcat,
ewa_fieldcat LIKE LINE OF i_fieldcat,
gs_layout TYPE lvc_s_layo.
DATA: l_rows TYPE lvc_t_row.
DATA : modi TYPE lvc_s_modi ,
rowid TYPE i,
ind TYPE i,
wjtab LIKE jtab,
it_exclude TYPE ui_functions,
it_sort TYPE lvc_t_sort,
it_filt TYPE lvc_t_filt,
gi_index_rows TYPE lvc_t_row,
g_selected_row LIKE lvc_s_row.
DATA: ls_edit TYPE lvc_s_styl,
lt_edit TYPE lvc_t_styl.
DATA: ls_outtab LIKE LINE OF jtab.
CALL SCREEN 100.
CLASS MYCLASS DEFINITION
CLASS myclass DEFINITION.
PUBLIC SECTION.
METHODS:
toolbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING e_object
e_interactive,
user_command FOR EVENT user_command OF cl_gui_alv_grid IMPORTING
e_ucomm.
after_user_command FOR EVENT BEFORE_user_command OF cl_gui_alv_grid
IMPORTING
e_ucomm,
handle_change_click
FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING
er_data_changed.
handle_change_click
FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING
er_data_changed.
ENDCLASS.
CLASS MYCLASS IMPLEMENTATION
CLASS myclass IMPLEMENTATION.
METHOD toolbar.
DATA: ls_toolbar TYPE stb_button.
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'BACK' TO ls_toolbar-function.
MOVE icon_previous_object TO ls_toolbar-icon.
MOVE 'BACK' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'CLEA' TO ls_toolbar-function.
MOVE icon_refresh TO ls_toolbar-icon.
MOVE 'CLEAR' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'TEXT' TO ls_toolbar-function.
MOVE icon_display TO ls_toolbar-icon.
MOVE 'READ' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'INSERT' TO ls_toolbar-function.
MOVE icon_display TO ls_toolbar-icon.
MOVE 'INSERT' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR ls_toolbar.
MOVE 'FCAT' TO ls_toolbar-function.
MOVE icon_display TO ls_toolbar-icon.
MOVE 'FCAT' TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD.
METHOD after_user_command.
CASE e_ucomm.
WHEN '&LOCAL&INSERT_ROW'.
PERFORM insert_data.
ENDCASE.
ENDMETHOD.
METHOD user_command.
CASE e_ucomm.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'INSERT'.
PERFORM insert_data.
WHEN 'FCAT'.
PERFORM fcat_change.
ENDCASE.
ENDMETHOD.
METHOD handle_change_click.
LOOP AT er_data_changed->mt_mod_cells INTO modi.
rowid = modi-row_id.
READ TABLE jtab INTO wjtab INDEX rowid.
WJTAB-VBELN = MODI-VALUE.
MODIFY jtab FROM wjtab INDEX rowid.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
*& Module STATUS_0100 OUTPUT
MODULE status_0100 OUTPUT.
CASE sy-ucomm.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'DISPLAY'.
SELECT vbeln erdat kunnr ernam netwr knumv bstnk ktext
FROM vbak INTO CORRESPONDING FIELDS OF TABLE vjtab
WHERE vbeln LT '0000000500'.
PERFORM display1.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " STATUS_0100 OUTPUT
*& Form display1
FORM display1.
CREATE OBJECT obj_c_container_alv
EXPORTING
container_name = alv.
IF obj_grid IS INITIAL.
CREATE OBJECT obj_grid
EXPORTING
i_parent = obj_c_container_alv.
CREATE OBJECT obj_myclass.
SET HANDLER obj_myclass->toolbar FOR obj_grid.
SET HANDLER obj_myclass->user_command FOR obj_grid.
SET HANDLER obj_myclass->handle_change_click FOR obj_grid.
gs_layout-sel_mode = 'C'.
gs_layout-cwidth_opt = 'X'.
gs_layout-smalltitle = 'X'.
gs_layout-grid_title = 'ALV TITLE'.
gs_layout-no_headers = 'X'.
gs_layout-stylefname = 'STYLETABLE'.
gs_layout-no_hgridln = 'X'.
gs_layout-no_vgridln = 'X'.
gs_layout-NO_ROWMARK = 'X'.
gs_layout-no_toolbar = 'X'.
gs_layout-info_fname = 'ROWCOLOR'.
gs_layout-ctab_fname = 'CELLCOLOR'.
LOOP AT vjtab.
jtab-vbeln = vjtab-vbeln.
jtab-erdat = vjtab-erdat.
jtab-kunnr = vjtab-kunnr.
jtab-ernam = vjtab-ernam.
jtab-netwr = vjtab-netwr.
jtab-knumv = vjtab-knumv.
jtab-bstnk = vjtab-bstnk.
jtab-ktext = vjtab-ktext.
APPEND jtab.
CLEAR jtab.
ENDLOOP.
PERFORM build_fieldcat.
PERFORM exclude_toolbaricons CHANGING it_exclude.
PERFORM sort_table CHANGING it_sort.
PERFORM filter_table CHANGING it_filt.
PERFORM rowcolor.
PERFORM colcolor.
PERFORM drilldown_values.
CALL METHOD obj_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'JTAB'
is_layout = gs_layout
it_toolbar_excluding = it_exclude
CHANGING
it_outtab = jtab[]
it_sort = it_sort
it_filter = it_filt
it_fieldcatalog = i_fieldcat.
ELSE .
CALL METHOD obj_grid->refresh_table_display.
ENDIF.
ENDFORM. " display1
*& Form SAVE_DATA
FORM save_data.
ENDFORM. " SAVE_DATA
*& Form INSERT_DATA
FORM insert_data.
DATA:l_lines TYPE i.
REFRESH gi_index_rows.
CLEAR g_selected_row.
DATA ls_listrow LIKE LINE OF jtab .
CALL METHOD obj_grid->get_selected_rows
IMPORTING
et_index_rows = gi_index_rows.
READ TABLE gi_index_rows INTO g_selected_row INDEX 1.
ind = g_selected_row-index + 1.
INSERT INITIAL LINE INTO jtab INDEX ind.
READ TABLE jtab INDEX ind.
CLEAR ls_edit.
ls_edit-fieldname = 'VBELN'.
ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'ERDAT'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'KUNNR'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'ERNAM'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'NETWR'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'KNUMV'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'BSTNK'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR ls_edit.
ls_edit-fieldname = 'KTEXT'.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR : ls_outtab.
INSERT LINES OF lt_edit INTO TABLE ls_outtab-styletable.
MODIFY jtab INDEX ind FROM ls_outtab TRANSPORTING
styletable .
CALL METHOD obj_grid->refresh_table_display.
GS_LAYOUT-STYLEFNAME = 'STYLETABLE'.
REFRESH : lt_edit.
ENDFORM. " INSERT_DATA
*& Form FCAT_CHANGE
FORM fcat_change.
DATA ls_fcat TYPE lvc_s_fcat .
DATA lt_fcat TYPE lvc_t_fcat .
DATA ls_layout TYPE lvc_s_layo .
CALL METHOD obj_grid->get_frontend_fieldcatalog
IMPORTING
et_fieldcatalog = lt_fcat[] .
LOOP AT lt_fcat INTO ls_fcat .
IF ls_fcat-fieldname = 'ERNAM' .
ls_fcat-coltext = 'MYNAME'.
ls_fcat-no_out = 'X'.
MODIFY lt_fcat FROM ls_fcat .
ENDIF .
ENDLOOP .
CALL METHOD obj_grid->set_frontend_fieldcatalog
EXPORTING
it_fieldcatalog = lt_fcat[] .
CALL METHOD obj_grid->get_frontend_layout
IMPORTING
es_layout = ls_layout .
ls_layout-grid_title = 'Changed ALV Grid Title' .
ls_layout-zebra = 'X' .
CALL METHOD obj_grid->set_frontend_layout
EXPORTING
is_layout = ls_layout .
LOOP AT jtab.
IF jtab-netwr > '400.00'.
CLEAR ls_edit.
ls_edit-fieldname = 'ERDAT'.
ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_edit INTO TABLE lt_edit.
CLEAR : ls_outtab.
INSERT LINES OF lt_edit INTO TABLE ls_outtab-styletable.
MODIFY jtab INDEX sy-tabix FROM ls_outtab TRANSPORTING
styletable .
ENDIF.
ENDLOOP.
LOOP AT jtab.
IF jtab-netwr LE '400.00'.
ejtab-vbeln = jtab-vbeln.
ejtab-erdat = jtab-erdat.
ejtab-kunnr = jtab-kunnr.
ejtab-ernam = jtab-ernam.
ejtab-netwr = jtab-netwr.
ejtab-knumv = jtab-knumv.
ejtab-bstnk = jtab-bstnk.
ejtab-ktext = jtab-ktext.
APPEND ejtab.
CLEAR ejtab.
ENDIF.
ENDLOOP.
PERFORM ebuild_fieldcat.
CALL METHOD obj_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'EJTAB'
is_layout = gs_layout
it_toolbar_excluding = it_exclude
CHANGING
it_outtab = ejtab[]
it_sort = it_sort
it_filter = it_filt
it_fieldcatalog = ei_fieldcat.
ENDFORM. " FCAT_CHANGE
*& Form exclude_toolbaricons
FORM exclude_toolbaricons CHANGING pt_exclude TYPE ui_functions.
DATA ls_exclude TYPE ui_func.
ls_exclude = cl_gui_alv_grid=>mc_fc_maximum .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_minimum .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_subtot .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_find .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_sum .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_average .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_sum .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_subtot.
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_delete_row .
APPEND ls_exclude TO pt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row .
APPEND ls_exclude TO pt_exclude.
ENDFORM. " exclude_toolbaricons
*& Form sort_table
FORM sort_table CHANGING pt_sort TYPE lvc_t_sort.
DATA ls_sort TYPE lvc_s_sort .
ls_sort-spos = '1' .
ls_sort-fieldname = 'VBELN' .
ls_sort-up = 'X' .
ls_sort-down = space .
APPEND ls_sort TO pt_sort .
ls_sort-spos = '2' .
ls_sort-fieldname = 'KUNNR' .
ls_sort-up = space .
ls_sort-down = 'X' .
APPEND ls_sort TO pt_sort .
ENDFORM. " sort_table
*& Form filter_table
FORM filter_table CHANGING pt_filt TYPE lvc_t_filt.
DATA ls_filt TYPE lvc_s_filt .
ls_filt-fieldname = 'VBELN' .
ls_filt-sign = 'E' .
ls_filt-option = 'BT' .
ls_filt-low = '0000000010' .
ls_filt-high = '0000000100' .
APPEND ls_filt TO pt_filt .
ENDFORM. " filter_table
*& Form ROWCOLOR
FORM rowcolor.
CLEAR wjtab.
LOOP AT jtab INTO wjtab.
IF wjtab-netwr LE '400.00'.
wjtab-rowcolor = 'C611'.
ENDIF.
MODIFY jtab FROM wjtab.
ENDLOOP.
ENDFORM. " ROWCOLOR
*& Form colcolor
FORM colcolor.
DATA ls_cellcolor TYPE lvc_s_scol .
CLEAR ls_cellcolor.
READ TABLE jtab INDEX 8 .
ls_cellcolor-fname = 'KUNNR' .
ls_cellcolor-color-col = '0' .
ls_cellcolor-color-int = '0' .
APPEND ls_cellcolor TO jtab-cellcolor .
MODIFY jtab INDEX 8 .
CLEAR ls_cellcolor.
READ TABLE jtab INDEX 13 .
ls_cellcolor-fname = 'NETWR' .
ls_cellcolor-color-col = '5' .
ls_cellcolor-color-int = '1' .
APPEND ls_cellcolor TO jtab-cellcolor .
MODIFY jtab INDEX 13 .
ENDFORM. " colcolor
*& Form DRILLDOWN_VALUES
FORM drilldown_values.
DATA lt_ddval TYPE lvc_t_drop .
DATA ls_ddval TYPE lvc_s_drop .
ls_ddval-handle = '1' .
ls_ddval-value = 'JFK-12' .
APPEND ls_ddval TO lt_ddval .
ls_ddval-handle = '1' .
ls_ddval-value = 'JSF-44' .
APPEND ls_ddval TO lt_ddval .
ls_ddval-handle = '1' .
ls_ddval-value = 'KMDA-53' .
APPEND ls_ddval TO lt_ddval .
ls_ddval-handle = '1' .
ls_ddval-value = 'SS3O/N' .
APPEND ls_ddval TO lt_ddval .
CALL METHOD obj_grid->set_drop_down_table
EXPORTING
it_drop_down = lt_ddval .
ENDFORM. " DRILLDOWN_VALUES
*& Form BUILD_FIELDCAT
text
--> p1 text
<-- p2 text
FORM build_fieldcat.
CLEAR i_fieldcat[].
*CLEAR wa_fieldcat.
*wa_fieldcat-col_pos = 1.
*wa_fieldcat-fieldname = 'CH'.
**wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '2'.
**wa_fieldcat-coltext = 'CHECKBOX'.
*wa_fieldcat-checkbox = 'X'.
*wa_fieldcat-edit = 'X'.
*APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 2.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '10'.
wa_fieldcat-coltext = 'SALES ORDER'.
*wa_fieldcat-CHECKBOX = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 4.
wa_fieldcat-fieldname = 'KUNNR'.
wa_fieldcat-tabname = 'JTAB'.
wa_fieldcat-outputlen = '20'.
wa_fieldcat-coltext = 'CUSTOMER NO'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 3.
wa_fieldcat-fieldname = 'ERDAT'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '8'.
wa_fieldcat-coltext = 'DATE'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 5.
wa_fieldcat-fieldname = 'ERNAM'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '12'.
wa_fieldcat-coltext = 'NAME'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 6.
wa_fieldcat-fieldname = 'NETWR'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '15'.
wa_fieldcat-coltext = 'NET WEIGHT'.
wa_fieldcat-edit = 'X'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 7.
wa_fieldcat-fieldname = 'KNUMV'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '10'.
wa_fieldcat-coltext = 'DOC COND'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 8.
wa_fieldcat-fieldname = 'BSTNK'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '20'.
wa_fieldcat-coltext = 'CUST PO'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos = 9.
wa_fieldcat-fieldname = 'KTEXT'.
wa_fieldcat-tabname = 'JTAB'.
*wa_fieldcat-outputlen = '40'.
wa_fieldcat-coltext = 'SEARCH TERM FOR PRODUCT PROPOSAL'.
wa_fieldcat-edit = 'X'.
wa_fieldcat-drdn_field = 'PTYP_DD_HNDL'.
APPEND wa_fieldcat TO i_fieldcat.
ENDFORM. " BUILD_FIELDCAT
*& Form ebuild_fieldcat
text
--> p1 text
<-- p2 text
FORM ebuild_fieldcat.
CLEAR ei_fieldcat[].
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 1.
ewa_fieldcat-fieldname = 'CH'.
*ewa_fieldcat-tabname = 'JTAB'.
ewa_fieldcat-outputlen = '2'.
*ewa_fieldcat-coltext = 'CHECKBOX'.
ewa_fieldcat-checkbox = 'X'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 2.
ewa_fieldcat-fieldname = 'VBELN'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '10'.
ewa_fieldcat-coltext = 'SALES ORDER'.
*ewa_fieldcat-CHECKBOX = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 4.
ewa_fieldcat-fieldname = 'KUNNR'.
ewa_fieldcat-tabname = 'JTAB'.
ewa_fieldcat-outputlen = '20'.
ewa_fieldcat-coltext = 'CUSTOMER NO'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 3.
ewa_fieldcat-fieldname = 'ERDAT'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '8'.
ewa_fieldcat-coltext = 'DATE'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 5.
ewa_fieldcat-fieldname = 'ERNAM'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '12'.
ewa_fieldcat-coltext = 'NAME'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 6.
ewa_fieldcat-fieldname = 'NETWR'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '15'.
ewa_fieldcat-coltext = 'NET WEIGHT'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 7.
ewa_fieldcat-fieldname = 'KNUMV'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '10'.
ewa_fieldcat-coltext = 'DOC COND'.
ewa_fieldcat-edit = 'X'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 8.
ewa_fieldcat-fieldname = 'BSTNK'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '20'.
ewa_fieldcat-coltext = 'CUST PO'.
APPEND ewa_fieldcat TO ei_fieldcat.
CLEAR ewa_fieldcat.
ewa_fieldcat-col_pos = 9.
ewa_fieldcat-fieldname = 'KTEXT'.
ewa_fieldcat-tabname = 'JTAB'.
*ewa_fieldcat-outputlen = '40'.
ewa_fieldcat-coltext = 'SEARCH TERM FOR PRODUCT PROPOSAL'.
ewa_fieldcat-edit = 'X'.
ewa_fieldcat-drdn_field = 'PTYP_DD_HNDL'.
APPEND ewa_fieldcat TO ei_fieldcat.
ENDFORM. " ebuild_fieldcat -
Hi all,
i have to develop a ALV report.
In that report i have to put a open quantity column , so that the user can enter values in that, and that value should get updated in the database.
So please suggest me how to develop such report with open field.
Thanks in advance,
Regards,
PawanHi,
Try executing the below code
REPORT YMS_EDITBLOCKALV.
TABLES : rmmg1,MCHB, mkpf.
DATA: BEGIN OF t_mseg OCCURS 0,
zeile LIKE mseg-zeile,
menge LIKE mseg-menge,
meins LIKE mseg-meins,
matnr LIKE mseg-matnr,
werks LIKE mseg-werks,
charg LIKE mseg-charg,
bwart LIKE mseg-bwart,
END OF t_mseg.
DATA:BEGIN OF t_mchb OCCURS 0.
INCLUDE STRUCTURE mchb.
data flag type c.
matnr LIKE mchb-matnr,
charg LIKE mchb-charg,
werks LIKE mchb-werks,
clabs LIKE mchb-clabs,
DATA END OF t_mchb.
TYPE-POOLS slis.
data: progname like sy-repid,
fieldcattab TYPE slis_t_fieldcat_alv WITH HEADER LINE.
data tabindex type i.
data wa_matnr LIKE mchb-matnr.
progname = sy-repid.
SELECTION-SCREEN BEGIN OF BLOCK b_b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS s_docno FOR mkpf-mblnr. " OBLIGATORY.
PARAMETERS p_docyr LIKE mkpf-mjahr. " OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b_b1.
START-OF-SELECTION.
SELECT zeile
menge
meins
matnr
werks
charg
bwart
FROM mseg
INTO TABLE t_mseg
WHERE mblnr IN s_docno AND mjahr = p_docyr.
CLEAR fieldcattab.
fieldcattab-col_pos = 1.
fieldcattab-fieldname = 'ZEILE'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-fix_column = 'X'.
fieldcattab-seltext_l = 'Item'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 2.
fieldcattab-fieldname = 'MENGE'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Quantity'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 3.
fieldcattab-fieldname = 'MEINS'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Unit'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 4.
fieldcattab-fieldname = 'MATNR'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Material'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 5.
fieldcattab-fieldname = 'WERKS'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Plant'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 6.
fieldcattab-fieldname = 'CHARG'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Batch No'.
APPEND fieldcattab.
CLEAR fieldcattab.
fieldcattab-col_pos = 7.
fieldcattab-fieldname = 'BWART'.
fieldcattab-tabname = 'T_MSEG'.
fieldcattab-seltext_l = 'Inventory'.
fieldcattab-hotspot = 'X'.
APPEND fieldcattab.
end-of-selection.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = PROGNAME
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USERCOMMAND1'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = fieldcattab[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT = fieldcattab
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_mseg
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.
FORM usercommand1 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE
slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
tabindex = rs_selfield-tabindex.
read table t_mseg INDEX tabindex.
select * from mchb into table t_mchb where matnr = t_mseg-matnr.
clear fieldcattab.
CLEAR fieldcattab[].
fieldcattab-col_pos = 1.
fieldcattab-fieldname = 'FLAG'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-fix_column = 'X'.
fieldcattab-seltext_l = 'Check Box'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
fieldcattab-checkbox = 'X'.
APPEND fieldcattab.
clear fieldcattab.
fieldcattab-col_pos = 2.
fieldcattab-fieldname = 'MATNR'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-fix_column = 'X'.
fieldcattab-seltext_l = 'Material'.
fieldcattab-emphasize = 'C1'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
fieldcattab-checkbox = 'X'.
APPEND fieldcattab.
clear fieldcattab.
fieldcattab-col_pos = 3.
fieldcattab-fieldname = 'CHARG'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-seltext_l = 'Batch No'.
fieldcattab-emphasize = 'C2'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
APPEND fieldcattab.
clear fieldcattab.
fieldcattab-col_pos = 4.
fieldcattab-fieldname = 'WERKS'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-seltext_l = 'Plant'.
fieldcattab-emphasize = 'C30'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
APPEND fieldcattab.
clear fieldcattab.
fieldcattab-col_pos = 5.
fieldcattab-fieldname = 'CLABS'.
fieldcattab-tabname = 'T_MCHB'.
fieldcattab-seltext_l = 'Stock'.
fieldcattab-emphasize = 'C601'.
fieldcattab-input = 'X'.
fieldcattab-edit = 'X'.
APPEND fieldcattab.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = PROGNAME
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USERCOMMAND2'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = FIELDCATTAB[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_mchb
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.
endcase.
endform.
FORM usercommand2 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE
slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
IF rs_selfield-sel_tab_field = 'T_MCHB-MATNR'.
CALL FUNCTION 'ZALV2'
EXPORTING
CTU = 'X'
MODE = 'E'
UPDATE = 'A'
GROUP =
USER =
KEEP =
HOLDDATE =
NODATA = '/'
MATNR_001 = '200-200'
KZSEL_01_002 = 'X'
IMPORTING
SUBRC =
TABLES
MESSTAB =
SET PARAMETER ID 'RID' FIELD RMMG1-MATNR.
CALL TRANSACTION 'MM03' and skip first screen.
ENDIF.
ENDCASE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = progname
i_callback_user_command = 'USERCOMMAND3'
it_fieldcat = fieldcattab[]
TABLES
t_outtab = t_mchb
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.
endcase.
ENDFORM.
Regards,
chandru -
Unable to capture data in an editable dynamic ALV.
Hi ,
I have created a dynamic editable ALV whose displayed structure can be changed at runtime based on the selection in a drop down list value selector.
Im trying to capture the values entered in the ALV into an internal table before the user changes the structure of the ALV to a different structure.
In the ON_SELECT event handler of the drop down list box , im rasing a data_check event to capture the ALV data.
The problem is that the control is not entering the event handler for the data_check event.
If i raise the data_check event in my save event handler or any other event handler , it works fine.
Can someone please suggest a solution.
Regards,
Newton.Hi ,
I have figured out that the problem is local to my machine , because the code works fine on other machines.
I guess my internet explorer has some bug.
Regards,
Newton. -
Total is not getting displayed in the ALV output.
Hi,
Total is not getting displayed in the ALV output.
I m using :REUSE_ALV_BLOCK_LIST_APPEND & REUSE_ALV_BLOCK_LIST_DISPLAY
Are there any issues with it as the same settings are working fine with REUSE_ALV_LIST_DISPLAY
source code:
DATA: layout TYPE slis_layout_alv,
IT_eventS TYPE slis_t_event,
fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
rec_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
TYPES: BEGIN OF ty_tab,
belnr TYPE dberchz-belnr,
belzart TYPE dberchz-belzart,
net TYPE dberchz-nettobtr,
END OF ty_tab.
DATA: lt_tab TYPE STANDARD TABLE OF ty_tab.
SELECT belnr belzart nettobtr
FROM dberchz
INTO TABLE lt_tab[]
WHERE belnr eq '000000000001'.
if sy-subrc ne 0.
ENDIF.
* defining layout
layout-colwidth_optimize = 'X'.
layout-def_status = 'X'.
*defning event
*event
*defining field catalog
fcat-col_pos = 1.
fcat-fieldname = 'BELNR'.
fcat-tabname = 'LT_TAB'.
APPEND fcat.
fcat-col_pos = 2.
fcat-fieldname = 'BELZART'.
fcat-tabname = 'LT_TAB'.
APPEND fcat.
fcat-col_pos = 3.
fcat-fieldname = 'NET'.
fcat-tabname = 'LT_TAB'.
fcat-do_sum = 'X'.
APPEND fcat.
*calling alv
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'YZ_PLR'
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* IT_EXCLUDING =
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = layout
it_fieldcat = fcat[]
i_tabname = 'LT_TAB'
it_events = IT_EVENTS[]
* IT_SORT =
* I_TEXT = ' '
tables
t_outtab = lt_tab[]
* EXCEPTIONS
* PROGRAM_ERROR = 1
* MAXIMUM_OF_APPENDS_REACHED = 2
* OTHERS = 3
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
Thanks,
GauravHi
No I don't think, this is my code (based on your code) and it works fine:
TYPE-POOLS SLIS.
DATA: BEGIN OF LT_TAB OCCURS 0,
BELNR LIKE BSEG-BELNR,
GJAHR LIKE BSEG-GJAHR,
WRBTR LIKE BSEG-WRBTR,
WAERS LIKE BKPF-WAERS,
END OF LT_TAB.
DATA: LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
REC_FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
START-OF-SELECTION.
FCAT-COL_POS = 1.
FCAT-FIELDNAME = 'BELNR'.
FCAT-TABNAME = 'LT_TAB'.
FCAT-REF_FIELDNAME = 'BELNR'.
FCAT-REF_TABNAME = 'BSEG'.
APPEND FCAT.
FCAT-COL_POS = 2.
FCAT-FIELDNAME = 'GJAHR'.
FCAT-TABNAME = 'LT_TAB'.
FCAT-REF_FIELDNAME = 'GJAHR'.
FCAT-REF_TABNAME = 'BSEG'.
APPEND FCAT.
FCAT-COL_POS = 3.
FCAT-FIELDNAME = 'WRBTR'.
FCAT-TABNAME = 'LT_TAB'.
FCAT-CFIELDNAME = 'WAERS'.
FCAT-REF_FIELDNAME = 'WRBTR'.
FCAT-REF_TABNAME = 'BSEG'.
FCAT-DO_SUM = 'X'.
APPEND FCAT.
FCAT-COL_POS = 4.
FCAT-FIELDNAME = 'WAERS'.
FCAT-TABNAME = 'LT_TAB'.
FCAT-REF_FIELDNAME = 'WAERS'.
FCAT-REF_TABNAME = 'BKPF'.
FCAT-DO_SUM = SPACE.
APPEND FCAT.
SELECT * FROM BSEG INTO CORRESPONDING FIELDS OF TABLE LT_TAB
WHERE BUKRS = 'MAAB'
AND BELNR = '0000000001'.
LT_TAB-WAERS = 'EUR'.
MODIFY LT_TAB FROM LT_TAB TRANSPORTING WAERS WHERE WAERS = SPACE.
*CALLING ALV
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = 'ZPROVAMAX5'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FCAT[]
I_TABNAME = 'LT_TAB'
IT_EVENTS = IT_EVENTS[]
TABLES
T_OUTTAB = LT_TAB[].
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
I've also inserted a currency field
Max -
'@' not getting displayed in the ALV report
Hello,
I am facing a strange issue in the ALV report display. A string starting with '@' is not getting displayed and says "default icon " on the report. and this is varying from system to system for the same user.
can anyone please help me in resolving the issue.
Thanks in advance.
Thanks and Regards,
Santhosh Guptha N.@ is a default value as per ALV internal process. This is used in icons .
I think this is causing the confusion.
Check in the fieldcat if there is any adjsutment to be made to handle this.
Br,
Vijay
Maybe you are looking for
-
Hi All, I am facing a problem in Printing a Label in SAPScript. Kindly find the following code snippet. Request to give the explaination of the below code. FO40,37A0N,30,35FRFDSHIP FROM:^FS FO40,87A0N,30,35FRFD&SHIP_POINT-LINE1&^FS FO40,137A0N,30,35F
-
Quicktime 10 "Save For Web", spaces in file names?
Maybe I'm overlooking something here, but: When using Quicktime 10's "Save for Web" function, it exports movie source files that all have spaces in the filenames (i.e. "Movie - iPhone.m4v" etc) Now correct me if I'm wrong, but most web servers DO NOT
-
The internet sharing is not working on my iPhone.
The internet sharing, from my iMac, is not working on my iPhone. It is connected at the beginning, but after a while (to be exact, 2 minutes!), the connection is lost. Can anyone helps me? Thanks.
-
Printer Profile- Custom Paper not installing
I've been having an issue from prior to switching to the iPrint appliance where when I make a Printer Profile and add a custom paper size, that the custom paper does not get installed with the printer. I'm using the HP Universal Print Driver PCL6, v5
-
I'm having issues installing CS 5.5 on windows 8.1
I've tried installing off the CD as well as downloads from the web. I've tried with my s/n and as a trial. I get the same error cannot install FC. The errors continue to say OS requirements not met.