<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>All SAP ABAP</title><description>SAP,ABAP PROGRAMMING,Reports,Bdc,SAP Scripts,Smart Forms,Debugging,Internal table,interview Questions,FAQ'S,Series of Complete Course of all major topics of ABAP</description><managingEditor>noreply@blogger.com (SAP TECHNOLOGY)</managingEditor><pubDate>Fri, 20 Sep 2024 04:00:34 +0530</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">225</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://freesapabapnotes.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:keywords>SAP,ABAP,PROGRAMMING,Reports,Bdc,SAP,Scripts,Smart,Forms,Debugging,Internal,table,interview,Questions,FAQ,S,Series,of,Complete,Course,of,all,major,topics,of,ABAP</itunes:keywords><itunes:summary>SAP,ABAP PROGRAMMING,Reports,Bdc,SAP Scripts,Smart Forms,Debugging,Internal table,interview Questions,FAQ'S,Series of Complete Course of all major topics of ABAP</itunes:summary><itunes:subtitle>All SAP ABAP</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Software How-To"/></itunes:category><itunes:owner><itunes:email>allsap.sites@gmail.com</itunes:email></itunes:owner><xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><item><title>Vb codes (or VBA macro code) for access SAP, and run one RFC</title><link>http://freesapabapnotes.blogspot.com/2009/02/vb-codes-or-vba-macro-code-for-access.html</link><category>VB Codes</category><pubDate>Thu, 12 Feb 2009 17:25:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-769109174041643873</guid><description>&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I am looking for, Vb codes (or VBA macro code) for access SAP, and run one RFC .&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Does anyone have example VB to SAP code?&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;Hakan &lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I can give you some code, but not sure it will work for you. When you ( or the help desk ) installs the SAP GUI, you can also install the SAP RFC development kit, if you do this you will have in your c:\program files\SAP??? ( in my case C:\Program Files\SAP620 ) a folder with a .frm extension &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;( in my case C:\Program Files\SAP620 \SAPGUI\rfcsdk\ccsamp\RFCSamp.VB\RFCsamp.frm )&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;From there you can start then, because you also need the vbp file and the vbw file in order to really make it work. If you just need the code, then here you go :&lt;/span&gt; &lt;/p&gt;&lt;pre&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;'Dim Foo As RFCSampObj ' Due to an acknowledged problem in MTS&lt;br /&gt;Dim Foo As Object      ' we Dim Foo as Object instead of as RFCSampObj&lt;br /&gt;Dim searchterm As String&lt;br /&gt;Dim custlist As Recordset&lt;br /&gt;&lt;br /&gt;Set Foo = CreateObject("RFCSampObj.RFCSampObj.1")&lt;br /&gt;Foo.Destination = "IDES"&lt;br /&gt;'Foo.Client     = "800"&lt;br /&gt;'Foo.Language   = "E"&lt;br /&gt;'Foo.UserID     = "test"&lt;br /&gt;'Foo.Password   = "pw"&lt;br /&gt;&lt;br /&gt;If Not Foo Is Nothing Then&lt;br /&gt;  searchterm = Text1.Text&lt;br /&gt;  'Unfortunately RFC_CUSTOMER_GET does not convert&lt;br /&gt;  ' a SPACE selction into a * so we do it here....&lt;br /&gt;  If IsEmpty(searchterm) Then searchterm = "*"&lt;br /&gt;  &lt;br /&gt;  On Error Resume Next&lt;br /&gt;  Call Foo.GetCustList(searchterm, "", custlist)&lt;br /&gt;&lt;br /&gt;  If Err.Number = 0 Then&lt;br /&gt;      If Not custlist Is Nothing Then&lt;br /&gt;          custlist.MoveFirst&lt;br /&gt;          While Not custlist.EOF&lt;br /&gt;              Debug.Print "------------------"&lt;br /&gt;              Debug.Print "custlist.Fields(name1) " &amp;amp;&lt;br /&gt;custlist.Fields("NAME1")&lt;br /&gt;              Debug.Print "custlist.Fields(stras) " &amp;amp;&lt;br /&gt;custlist.Fields("STRAS")&lt;br /&gt;              Debug.Print "custlist.Fields(ort01) " &amp;amp;&lt;br /&gt;custlist.Fields("ORT01")&lt;br /&gt;              Debug.Print "custlist.Fields(pstlz) " &amp;amp;&lt;br /&gt;custlist.Fields("PSTLZ")&lt;br /&gt;              Debug.Print "custlist.Fields(telf1) " &amp;amp;&lt;br /&gt;custlist.Fields("TELF1")&lt;br /&gt;              Debug.Print "custlist.Fields(telfx) " &amp;amp;&lt;br /&gt;custlist.Fields("TELFX")&lt;br /&gt;              custlist.MoveNext&lt;br /&gt;          Wend&lt;br /&gt;      Else&lt;br /&gt;         Debug.Print "ERROR: custlist is Nothing"&lt;br /&gt;      End If&lt;br /&gt;   Else&lt;br /&gt;      Debug.Print "ERROR" &amp;amp; Err.Description&lt;br /&gt;      MsgBox Err.Description, vbCritical, "Error:"&lt;br /&gt;   &lt;br /&gt;   End If&lt;br /&gt;Else&lt;br /&gt;  Debug.Print "Foo is nothing"&lt;br /&gt;  MsgBox "Foo is nothing"&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Command2_Click()&lt;br /&gt;&lt;br /&gt;'Dim Foo As RFCSampObj ' Due to an acknowledged problem in MTS&lt;br /&gt;Dim Foo As Object      ' we Dim Foo as Object instead of as RFCSampObj&lt;br /&gt;&lt;br /&gt;Dim rs As Recordset&lt;br /&gt;Dim HeaderIn As Recordset&lt;br /&gt;Dim ItemsIn As Recordset&lt;br /&gt;Dim Partners As Recordset&lt;br /&gt;Dim OrderNumber As String&lt;br /&gt;Dim BapiReturn As Recordset&lt;br /&gt;Dim SoldTo As Recordset&lt;br /&gt;Dim ShipTo As Recordset&lt;br /&gt;Dim Payer  As Recordset&lt;br /&gt;Dim ItemsOut As Recordset&lt;br /&gt;&lt;br /&gt;'Input tables can be crafted in two different ways:&lt;br /&gt;' - either using the DimAsXXXX method which returns a fully&lt;br /&gt;'   described but empty Recordset.&lt;br /&gt;' - or using the AdvancedDataFactory to craft up a disconnected&lt;br /&gt;'   Recordset.&lt;br /&gt;' An example of the later is shown with the Partners Table&lt;br /&gt;' the remaining input tables are crafted with the dim as.&lt;br /&gt;Dim adf As Object&lt;br /&gt;' Describe the shape of a disconnected recordset&lt;br /&gt;&lt;br /&gt;Dim vrsShape(1)&lt;br /&gt;Dim vrsParvw(3)&lt;br /&gt;Dim vrsKunnr(3)&lt;br /&gt;&lt;br /&gt;vrsParvw(0) = "PARTN_ROLE"&lt;br /&gt;vrsParvw(1) = CInt(8)&lt;br /&gt;vrsParvw(2) = CInt(2)&lt;br /&gt;vrsParvw(3) = False&lt;br /&gt;&lt;br /&gt;vrsKunnr(0) = "PARTN_NUMB"&lt;br /&gt;vrsKunnr(1) = CInt(8)&lt;br /&gt;vrsKunnr(2) = CInt(10)&lt;br /&gt;vrsKunnr(3) = False&lt;br /&gt;&lt;br /&gt;vrsShape(0) = vrsParvw&lt;br /&gt;vrsShape(1) = vrsKunnr&lt;br /&gt;&lt;br /&gt;' Create a disconnected recordset to pass as an input&lt;br /&gt;&lt;br /&gt;Set adf = CreateObject("RDSServer.DataFactory")&lt;br /&gt;If adf Is Nothing Then&lt;br /&gt;  MsgBox "ADF == NOTGHING"&lt;br /&gt;End If&lt;br /&gt;Set Partners = adf.CreateRecordSet(vrsShape)&lt;br /&gt;&lt;br /&gt;Set Foo = CreateObject("RFCSampObj.RFCSampObj.1")&lt;br /&gt;If Not Foo Is Nothing Then&lt;br /&gt;&lt;br /&gt;  ' Get an empty recordset which will be used as input in&lt;br /&gt;CreateOrder call&lt;br /&gt;&lt;br /&gt;  Call Foo.DimHeader(HeaderIn)&lt;br /&gt;  HeaderIn.AddNew&lt;br /&gt;  HeaderIn.Fields("DOC_TYPE") = "TA"&lt;br /&gt;  HeaderIn.Fields("SALES_ORG") = "1000"&lt;br /&gt;  HeaderIn.Fields("DISTR_CHAN") = "10"&lt;br /&gt;  HeaderIn.Fields("DIVISION") = "00"&lt;br /&gt;  HeaderIn.Fields("PURCH_NO") = "SM-1177-3"&lt;br /&gt;  HeaderIn.Fields("INCOTERMS1") = "CPT"&lt;br /&gt;  HeaderIn.Fields("INCOTERMS2") = "Hamburg"&lt;br /&gt;  HeaderIn.Fields("PMNTTRMS") = "ZB01"&lt;br /&gt;  HeaderIn.Update&lt;br /&gt;&lt;br /&gt;  Call Foo.DimItems(ItemsIn)&lt;br /&gt;  ItemsIn.AddNew&lt;br /&gt;  ItemsIn.Fields("MATERIAL") = "R-1120"&lt;br /&gt;  ItemsIn.Fields("PLANT") = "1200"&lt;br /&gt;  ItemsIn.Fields("REQ_QTY") = 2000&lt;br /&gt;  ItemsIn.Update&lt;br /&gt;&lt;br /&gt;  Partners.AddNew&lt;br /&gt;  Partners.Fields("PARTN_ROLE") = "AG"&lt;br /&gt;  Partners.Fields("PARTN_NUMB") = "0000001177"&lt;br /&gt;  Partners.Update&lt;br /&gt;&lt;br /&gt;  'set logon information&lt;br /&gt;  Foo.Destination = "IDES"&lt;br /&gt;  'Foo.Client     = "800"&lt;br /&gt;  'Foo.Language   = "E"&lt;br /&gt;  'Foo.UserID     = "test"&lt;br /&gt;  'Foo.Password   = "pw"&lt;br /&gt;&lt;br /&gt;  Call Foo.OrderCreate(HeaderIn, _&lt;br /&gt;                       ItemsIn, _&lt;br /&gt;                       Partners, _&lt;br /&gt;                       OrderNumber, _&lt;br /&gt;                       SoldTo, _&lt;br /&gt;                       ShipTo, _&lt;br /&gt;                       Payer, _&lt;br /&gt;                       ItemsOut, _&lt;br /&gt;                       BapiReturn)&lt;br /&gt;  Debug.Print "OrderNumber" &amp;amp; OrderNumber&lt;br /&gt;  If BapiReturn Is Nothing Then&lt;br /&gt;      MsgBox "BapiReturn is Nothing"&lt;br /&gt;  Else&lt;br /&gt;      BapiReturn.MoveFirst&lt;br /&gt;      Debug.Print "BapiReturn.Type...." &amp;amp; BapiReturn.Fields("TYPE")&lt;br /&gt;      Debug.Print "BapiReturn.Code...." &amp;amp; BapiReturn.Fields("CODE")&lt;br /&gt;      Debug.Print "BapiReturn.Message." &amp;amp; BapiReturn.Fields&lt;br /&gt;("MESSAGE")&lt;br /&gt;      Debug.Print "BapiReturn.LogNo..." &amp;amp; BapiReturn.Fields&lt;br /&gt;("LOG_NO")&lt;br /&gt;      Debug.Print "BapiReturn.LogMsgNo" &amp;amp; BapiReturn.Fields&lt;br /&gt;("LOG_MSG_NO")&lt;br /&gt;  End If&lt;br /&gt;Else&lt;br /&gt;  MsgBox "Foo is nothing"&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Private Sub Command3_Click()&lt;br /&gt;&lt;br /&gt;'Dim Foo As RFCSampObj ' Due to an acknowledged problem in MTS&lt;br /&gt;Dim Foo As Object      ' we Dim Foo as Object instead of as RFCSampObj&lt;br /&gt;&lt;br /&gt;Dim SalesOrders As Recordset&lt;br /&gt;Dim BapiReturn  As Recordset&lt;br /&gt;&lt;br /&gt;Set Foo = CreateObject("RFCSampObj.RFCSampObj.1")&lt;br /&gt;&lt;br /&gt;If Not Foo Is Nothing Then&lt;br /&gt;&lt;br /&gt;  'set logon information&lt;br /&gt;  Foo.Destination = "IDES"&lt;br /&gt;  'Foo.Client     = "800"&lt;br /&gt;  'Foo.Language   = "E"&lt;br /&gt;  'Foo.UserID     = "test"&lt;br /&gt;  'Foo.Password   = "pw"&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;  On Error Resume Next&lt;br /&gt;  Call Foo.GetCustomerOrders(CustomerNumber.Text, _&lt;br /&gt;            SalesOrg.Text, _&lt;br /&gt;            , , , , _&lt;br /&gt;            BapiReturn, _&lt;br /&gt;            SalesOrders)&lt;br /&gt;&lt;br /&gt;  If Err.Number = 0 Then&lt;br /&gt;      If Not SalesOrders Is Nothing Then&lt;br /&gt;          SalesOrders.MoveFirst&lt;br /&gt;          While Not SalesOrders.EOF&lt;br /&gt;              Debug.Print "------------------"&lt;br /&gt;              Debug.Print "SalesOrders.Fields(SD_DOC).... " &amp;amp;&lt;br /&gt;SalesOrders.Fields("SD_DOC")&lt;br /&gt;              Debug.Print "SalesOrders.Fields(ITM_NUMBER) " &amp;amp;&lt;br /&gt;SalesOrders.Fields("ITM_NUMBER")&lt;br /&gt;              Debug.Print "SalesOrders.Fields(MATERIAL).. " &amp;amp;&lt;br /&gt;SalesOrders.Fields("MATERIAL")&lt;br /&gt;              Debug.Print "SalesOrders.Fields(REQ_QTY)... " &amp;amp;&lt;br /&gt;SalesOrders.Fields("REQ_QTY")&lt;br /&gt;              Debug.Print "SalesOrders.Fields(NAME)...... " &amp;amp;&lt;br /&gt;SalesOrders.Fields("NAME")&lt;br /&gt;              Debug.Print "SalesOrders.Fields(NET_VALUE). " &amp;amp;&lt;br /&gt;SalesOrders.Fields("NET_VALUE")&lt;br /&gt;              Debug.Print "SalesOrders.Fields(PURCH_NO).. " &amp;amp;&lt;br /&gt;SalesOrders.Fields("PURCH_NO")&lt;br /&gt;              SalesOrders.MoveNext&lt;br /&gt;          Wend&lt;br /&gt;      Else&lt;br /&gt;         Debug.Print "ERROR: SalesOrders is Nothing"&lt;br /&gt;      End If&lt;br /&gt;      If BapiReturn Is Nothing Then&lt;br /&gt;          MsgBox "BapiReturn is Nothing"&lt;br /&gt;      Else&lt;br /&gt;          BapiReturn.MoveFirst&lt;br /&gt;          Debug.Print "BapiReturn.Type...." &amp;amp; BapiReturn.Fields&lt;br /&gt;("TYPE")&lt;br /&gt;          Debug.Print "BapiReturn.Code...." &amp;amp; BapiReturn.Fields&lt;br /&gt;("CODE")&lt;br /&gt;          Debug.Print "BapiReturn.Message." &amp;amp; BapiReturn.Fields&lt;br /&gt;("MESSAGE")&lt;br /&gt;          Debug.Print "BapiReturn.LogNo..." &amp;amp; BapiReturn.Fields&lt;br /&gt;("LOG_NO")&lt;br /&gt;          Debug.Print "BapiReturn.LogMsgNo" &amp;amp; BapiReturn.Fields&lt;br /&gt;("LOG_MSG_NO")&lt;br /&gt;      End If&lt;br /&gt;   Else&lt;br /&gt;      Debug.Print "ERROR"&lt;br /&gt;      MsgBox Err.Description, vbCritical, "Error:"&lt;br /&gt;   &lt;br /&gt;   End If&lt;br /&gt;Else&lt;br /&gt;  MsgBox "Foo is nothing"&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>An Introduction to SAP</title><link>http://freesapabapnotes.blogspot.com/2009/02/introduction-to-sap.html</link><category>Introduction to SAP</category><pubDate>Thu, 12 Feb 2009 17:25:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-6264780382578188824</guid><description>SAP was founded in 1972 in Walldorf, Germany. It stands for Systems, Applications and Products in Data Processing. Over the years, it has grown and evolved to become the world premier provider of client/server business solutions for which it is so well known today. The SAP R/3 enterprise application suite for open client/server systems has established a new standards for providing business information management solutions.&lt;br /&gt;&lt;br /&gt;SAP product are consider excellent but not perfect.  The main problems with software product is that it can never be perfect.&lt;br /&gt;&lt;br /&gt;The main advantage of using SAP as your company ERP system is that SAP have a very high level of integration among its individual applications which guarantee consistency of data throughout the system and the company itself.&lt;br /&gt;&lt;br /&gt;In a standard SAP project system, it is divided into three environments, Development, Quality Assurance and Production.&lt;br /&gt;&lt;br /&gt;The development system is where most of the implementation work takes place. The quality assurance system is where all the final testing is conducted before moving the transports to the production environment. The production system is where all the daily business activities occur. It is also the client that all the end users use to perform their daily job functions.&lt;br /&gt;&lt;br /&gt;To all company, the production system should only contains transport that have passed all the tests.&lt;br /&gt;&lt;br /&gt;SAP is a table drive customization software. It allows businesses to make rapid changes in their business requirements with a common set of programs. User-exits are provided for business to add in additional source code. Tools such as screen variants are provided to let you set fields attributes whether to hide, display and make them mandatory fields.&lt;br /&gt;&lt;br /&gt;This is what makes ERP system and SAP in particular so flexible. The table driven customization are driving the program functionality instead of those old fashioned hard-coded programs. Therefore, new and changed business requirements can be quickly implemented and tested in the system.&lt;br /&gt;&lt;br /&gt;Many other business application software have seen this table driven customization advantage and are now changing their application software based on this table customizing concept.&lt;br /&gt;&lt;br /&gt;In order to minimized your upgrading costs, the standard programs and tables should not be changed as far as possible. The main purpose of using a standard business application software like SAP is to reduced the amount of time and money spend on developing and testing all the programs. Therefore, most companies will try to utilized the available tools provided by SAP.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for Upload Logo for REUSE_ALV_COMMENTARY_WRITE</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-upload-logo-for.html</link><category>SAP ALV</category><pubDate>Thu, 12 Feb 2009 17:24:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-1678638864745764716</guid><description>&lt;p&gt;For those who wish to upload and use a picture in your ALV abap reports. &lt;/p&gt;&lt;p&gt;Steps for uploading Logo :-:&lt;br /&gt;1.  Goto the transaction &lt;b&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;OAER&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;2.  Enter the class name as 'PICTURES'&lt;br /&gt;3.  Enter the class type as 'OT'&lt;br /&gt;4.  Enter the object key as the name of the logo you wish to give&lt;br /&gt;5.  Execute&lt;br /&gt;6.  Then in the new screen select Standard doc. types in bottom window&lt;br /&gt;   Click on the Screen icon&lt;br /&gt;   Now, it will ask for the file path where you have to upload the logo&lt;br /&gt;7.  Now you can use this logo in REUSE_ALV_COMMENTARY_WRITE &lt;/p&gt;&lt;p&gt;or  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Import Logo and Background Picture for Reporting&lt;/b&gt; &lt;/p&gt;&lt;p&gt;In this step, you can import a customer-specific logo and a background picture into the R/3 System. These will be displayed in the header area of reports in HR Funds and Position Management. &lt;/p&gt;&lt;p&gt;From the SPRO:&lt;br /&gt;HR Funds and Position Management --&gt; Dialog Control --&gt; Customize Reporting Interface --&gt; Import Logo and Background Picture for Reporting. &lt;/p&gt;&lt;p&gt;Activities&lt;br /&gt;1. Enter the Name of your logo/background picture as an object key in the initial screen.&lt;br /&gt;2. Make sure that the class name is PICTURES, and the class type is OT.&lt;br /&gt;3. Choose Execute.&lt;br /&gt;4. Double-click the document type Picture on the Create tab page. A dialog box will appear in which you can enter the path in which the logo/background picture can be found.&lt;br /&gt;5. Enter the path and choose Open. The logo will be uploaded into the current R/3 System. If the logo/background picture is to be transported into other systems as well, choose Transport.&lt;br /&gt;6. Return to the initial screen and repeat the procedure after having entered the Name of your background picture as an object key. &lt;/p&gt;&lt;p&gt;Please note that the logo/background picture can only be displayed in ALV-based reports with an HTML header. Manually programmed reports such as business distribution plans are not based on the ALV. &lt;/p&gt;&lt;p&gt;If you have selected several initial objects, ALV-based reports in HR Funds and Position Management will automatically use a hiearchical-sequential display. A logo is not displayed here either. Note also that the logo cannot be printed (see print preview in program). &lt;/p&gt;&lt;p&gt;Make sure that the logo does not exceed a height of 100 pixels because it would mean that the header of the report will be scrollable. &lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>What is SLIS in sap abap ALV</title><link>http://freesapabapnotes.blogspot.com/2009/02/what-is-slis-in-sap-abap-alv.html</link><category>SAP ALV</category><pubDate>Thu, 12 Feb 2009 17:24:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-140977610209404488</guid><description>&lt;p&gt;SLIS is the type library for ALV grid. &lt;/p&gt;&lt;p&gt;If you'll use the ALV you have to add TYPE-POOLS : SLIS. command at the beginning of your code.&lt;br /&gt;&lt;br /&gt;Consider these :&lt;br /&gt;slis_t_fieldcat_alv is containing "_t_"&lt;br /&gt;It means that it is an internal table and slis_fieldcat_alv is header line of that.&lt;br /&gt;&lt;br /&gt;Here is a practical example for alv grid :&lt;br /&gt;Just think that you have an internal table named 'ITAB' to show.&lt;br /&gt;&lt;br /&gt;Step1  :  First add these lines to your code :&lt;br /&gt;TYPE-POOLS : SLIS.&lt;br /&gt;&lt;br /&gt;DATA ALV_PROG_NAME LIKE SY-REPID.&lt;br /&gt;ALV_PROG_NAME = SY-REPID.&lt;br /&gt;&lt;br /&gt;DATA : ALV_ITAB_NAME(30),&lt;br /&gt;L_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.&lt;br /&gt;ALV_ITAB_NAME = 'ITAB'.  "!!Write here the name of your internal table&lt;br /&gt;&lt;br /&gt;Step 2 : Add these two function :&lt;br /&gt;The first function is filling the fieldcat L_FIELDCAT that you described, second is showing it on the screen.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;br /&gt;EXPORTING&lt;br /&gt;I_PROGRAM_NAME = ALV_PROG_NAME&lt;br /&gt;I_INTERNAL_TABNAME = ALV_ITAB_NAME&lt;br /&gt;* I_STRUCTURE_NAME =&lt;br /&gt;* I_CLIENT_NEVER_DISPLAY = 'X'&lt;br /&gt;I_INCLNAME = ALV_PROG_NAME&lt;br /&gt;* I_BYPASSING_BUFFER =&lt;br /&gt;* I_BUFFER_ACTIVE =&lt;br /&gt;CHANGING&lt;br /&gt;CT_FIELDCAT = L_FIELDCAT&lt;br /&gt;EXCEPTIONS&lt;br /&gt;INCONSISTENT_INTERFACE = 1&lt;br /&gt;PROGRAM_ERROR = 2&lt;br /&gt;OTHERS = 3&lt;br /&gt;.&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF. &lt;/p&gt;&lt;p&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;EXPORTING&lt;br /&gt;* I_INTERFACE_CHECK = ' '&lt;br /&gt;* I_BYPASSING_BUFFER =&lt;br /&gt;* I_BUFFER_ACTIVE = ' '&lt;br /&gt;I_CALLBACK_PROGRAM = ALV_PROG_NAME&lt;br /&gt;* I_CALLBACK_PF_STATUS_SET = ' '&lt;br /&gt;* I_CALLBACK_USER_COMMAND = ' '&lt;br /&gt;* I_CALLBACK_TOP_OF_PAGE = ' '&lt;br /&gt;* I_CALLBACK_HTML_TOP_OF_PAGE = ' '&lt;br /&gt;* I_CALLBACK_HTML_END_OF_LIST = ' '&lt;br /&gt;* I_STRUCTURE_NAME =&lt;br /&gt;* I_BACKGROUND_ID = ' '&lt;br /&gt;* I_GRID_TITLE =&lt;br /&gt;* I_GRID_SETTINGS =&lt;br /&gt;* IS_LAYOUT =&lt;br /&gt;IT_FIELDCAT = L_FIELDCAT&lt;br /&gt;* IT_EXCLUDING =&lt;br /&gt;* IT_SPECIAL_GROUPS =&lt;br /&gt;* IT_SORT =&lt;br /&gt;* IT_FILTER =&lt;br /&gt;* IS_SEL_HIDE =&lt;br /&gt;* I_DEFAULT = 'X'&lt;br /&gt;* I_SAVE = ' '&lt;br /&gt;* IS_VARIANT =&lt;br /&gt;* IT_EVENTS =&lt;br /&gt;* IT_EVENT_EXIT =&lt;br /&gt;* IS_PRINT =&lt;br /&gt;* IS_REPREP_ID =&lt;br /&gt;* I_SCREEN_START_COLUMN = 0&lt;br /&gt;* I_SCREEN_START_LINE = 0&lt;br /&gt;* I_SCREEN_END_COLUMN = 0&lt;br /&gt;* I_SCREEN_END_LINE = 0&lt;br /&gt;* IT_ALV_GRAPHICS =&lt;br /&gt;* IT_ADD_FIELDCAT =&lt;br /&gt;* IT_HYPERLINK =&lt;br /&gt;* I_HTML_HEIGHT_TOP =&lt;br /&gt;* I_HTML_HEIGHT_END =&lt;br /&gt;* IT_EXCEPT_QINFO =&lt;br /&gt;* IMPORTING&lt;br /&gt;* E_EXIT_CAUSED_BY_CALLER =&lt;br /&gt;* ES_EXIT_CAUSED_BY_USER =&lt;br /&gt;TABLES&lt;br /&gt;T_OUTTAB = ITAB[]   "Write here the name of your internal table + []&lt;br /&gt;* EXCEPTIONS&lt;br /&gt;* PROGRAM_ERROR = 1&lt;br /&gt;* OTHERS = 2&lt;br /&gt;.&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.                               &lt;b&gt;&lt;span style="color: rgb(102, 102, 0);"&gt;*-- Bulent&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>How to Refresh ALV List/Grid once it is displayed?</title><link>http://freesapabapnotes.blogspot.com/2009/02/how-to-refresh-alv-listgrid-once-it-is.html</link><category>SAP ALV</category><pubDate>Thu, 12 Feb 2009 17:23:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-5376698436832811361</guid><description>&lt;p&gt;&lt;b&gt;This mean to say that if you have a 'refresh' push button in your gui status, every time you press the button, the list should get refreshed.&lt;/b&gt; &lt;/p&gt;&lt;p&gt;In ALV, to refresh the table you have to call the method "refresh_table_display".  &lt;/p&gt;&lt;p&gt;It has the syntax very similar to creating the table.  &lt;/p&gt;&lt;p&gt;It has two parameters. In the first one, you can mention if you want to refresh only the data (the icons are not refreshed)  &lt;/p&gt;&lt;p&gt;or  &lt;/p&gt;&lt;p&gt;if you want to refresh only the icons around the grid (the data is not refreshed - this option is mostly not used in day to day applications). &lt;/p&gt;&lt;p&gt;the synatx is :- &lt;/p&gt;&lt;p&gt;call method grid (name of grid )-&gt;refresh_table_display &lt;/p&gt;&lt;p&gt;exporting &lt;/p&gt;&lt;p&gt;IS_STABLE = &lt;struct&gt; (THIS IS FOR DATA REFRESHING) &lt;/struct&gt;&lt;/p&gt;&lt;p&gt;I_SOFT_REFRESH = &lt;variable&gt;  (THIS IS FOR ICON REFRESHING). &lt;/variable&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap ALV 'Classic' Creating User/Global Layout Variants</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-alv-classic-creating.html</link><category>SAP ALV</category><pubDate>Thu, 12 Feb 2009 17:23:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-8259102746138655882</guid><description>&lt;p&gt;You are working with the ALV "Classic" function module REUSE_ALV_LIST_DISPLAY.  &lt;/p&gt;&lt;p&gt;Reading the documentation for the function module, it seems there is a way to save an ALV layout variant as "user-specific" and/or "global". But unfortunately, you either can only save "globals" (with the '/' as first character of the layout name) or "user-specific". &lt;/p&gt;&lt;p&gt;You have tried the I_SAVE parameter as 'U' and can only save "user-specific". You tried I_SAVE as 'X' and can only save "global". You tried I_SAVE as 'A', but only can only save as "user-specific". The odd thing is, on the Save Layout pop-up dialog the User-Specific checkbox is always "greyed-out", but has a check (for 'U' and 'A') or is checkless (for 'X'). &lt;/p&gt;&lt;p&gt;Can "user" and "global" layout variants be saved together from same program with I_SAVE as 'A'?  &lt;/p&gt;&lt;p&gt;Why is the User-Specific checkbox on the Save Layout pop-up always "greyed-out"? &lt;/p&gt;&lt;p&gt;You have the following EXPORTING parameters in my function module:&lt;br /&gt;I_DEFAULT = 'X'&lt;br /&gt;I_SAVE = 'A' "&lt;=== this is to be global &amp;amp; user IS_VARIANT = VARIANT &lt;/p&gt;&lt;p&gt;VARIANT has the program's name in the REPORT field. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;hr width="100%"&gt; The "user-specific saving" needs a special authorization:&lt;br /&gt;Authority-check object &lt;b&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;'S_ALV_LAYO' id 'ACTVT' field '23'&lt;/span&gt;&lt;/b&gt;, you can&lt;br /&gt;avoid this authorization with &lt;b&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;IS_LAYOUT-NO_AUTHOR = 'X&lt;/span&gt;&lt;/b&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>How to use ALV for Hierarchical Lists</title><link>http://freesapabapnotes.blogspot.com/2009/02/how-to-use-alv-for-hierarchical-lists.html</link><category>SAP ALV</category><pubDate>Thu, 12 Feb 2009 17:22:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-7197951641357754495</guid><description>&lt;p&gt;&lt;b&gt;Can anyone tell me how to use ALV for hierarchical lists using the function code REUSE_ALV_HIERSEQ_LIST_DISPLAY?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Swarna&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Hello, there are some nice examples in SAP which use this function module, so you might want to check them out ( where used etc. )&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;In essence, this is a call in one of my ABAPs&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'&lt;br /&gt;  EXPORTING&lt;br /&gt;    i_interface_check              = 'I'&lt;br /&gt;    i_callback_program             = gv_repid&lt;br /&gt;*      i_callback_pf_status_set       = 'STATUS_DATA'&lt;br /&gt;    i_callback_user_command        = 'COMMAND_DATA'&lt;br /&gt;*      is_layout                      = gs_layout&lt;br /&gt;    it_fieldcat                    = gt_fieldcat&lt;br /&gt;   i_default                      = ' '&lt;br /&gt;    i_save                         = 'A'&lt;br /&gt;    i_tabname_header               = v_headers_itable&lt;br /&gt;    i_tabname_item                 = v_items_itable&lt;br /&gt;    i_structure_name_header        = v_headers_table&lt;br /&gt;    i_structure_name_item          = v_items_table&lt;br /&gt;    is_keyinfo                     = gs_keyinfo&lt;br /&gt;    i_bypassing_buffer             = 'X'&lt;br /&gt;  TABLES&lt;br /&gt;    t_outtab_header                = i_headers&lt;br /&gt;*      t_outtab_item                  = i_result&lt;br /&gt;    t_outtab_item                  = i_report&lt;br /&gt;  EXCEPTIONS&lt;br /&gt;    program_error                  = 1&lt;br /&gt;    OTHERS                         = 2.&lt;br /&gt;&lt;br /&gt;The field cat creation worked like this :&lt;br /&gt;FORM fieldcat.&lt;br /&gt;&lt;br /&gt;DATA: ls_fieldcat TYPE slis_fieldcat_alv.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;br /&gt;     EXPORTING&lt;br /&gt;          i_internal_tabname = v_items_itable&lt;br /&gt;          i_structure_name   = v_items_table&lt;br /&gt;     CHANGING&lt;br /&gt;          ct_fieldcat        = gt_fieldcat.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;br /&gt;     EXPORTING&lt;br /&gt;          i_internal_tabname = v_headers_itable&lt;br /&gt;          i_structure_name   = v_headers_table&lt;br /&gt;     CHANGING&lt;br /&gt;          ct_fieldcat        = gt_fieldcat.&lt;br /&gt;&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and of course you need to tell the thing what is key and item&lt;br /&gt;&lt;br /&gt;gs_keyinfo-header01 = 'PA'.&lt;br /&gt;gs_keyinfo-item01  = 'PA'.&lt;br /&gt;gs_keyinfo-item02 = 'SAPDOC'.&lt;br /&gt;PERFORM fieldcat.&lt;/span&gt; &lt;/pre&gt; I hope this helps you and not confuse you,&lt;br /&gt;Cheers.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for Sample ALV: Heading in ALV</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-sample-alv-heading.html</link><category>SAP ALV</category><pubDate>Thu, 12 Feb 2009 17:22:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-8954298262284588029</guid><description>&lt;pre&gt;report zus_alv_demo_grid .&lt;br /&gt;&lt;br /&gt;tables:     ekko.&lt;br /&gt;type-pools: slis.&lt;br /&gt;&lt;br /&gt;types: begin of t_ekko,&lt;br /&gt;ebeln type ekpo-ebeln,&lt;br /&gt;ebelp type ekpo-ebelp,&lt;br /&gt;statu type ekpo-statu,&lt;br /&gt;aedat type ekpo-aedat,&lt;br /&gt;matnr type ekpo-matnr,&lt;br /&gt;menge type ekpo-menge,&lt;br /&gt;meins type ekpo-meins,&lt;br /&gt;netpr type ekpo-netpr,&lt;br /&gt;peinh type ekpo-peinh,&lt;br /&gt;line_color(4) type c, "Used to store row color&lt;br /&gt;end of t_ekko.&lt;br /&gt;&lt;br /&gt;data: it_ekko type standard table of t_ekko initial size 0,&lt;br /&gt;     wa_ekko type t_ekko.&lt;br /&gt;&lt;br /&gt;*ALV data declarations&lt;br /&gt;data: fieldcatalog type slis_t_fieldcat_alv with header line,&lt;br /&gt;&lt;br /&gt;    gd_tab_group type slis_t_sp_group_alv,&lt;br /&gt;    gd_layout    type slis_layout_alv,&lt;br /&gt;    gd_repid     like sy-repid.&lt;br /&gt;&lt;br /&gt;* Data declaration for EVENT and PRINT PARAMETER.&lt;br /&gt;data: gt_events type slis_t_event,&lt;br /&gt;     gd_prntparams type slis_print_alv.&lt;br /&gt;&lt;br /&gt;* data declaration for sorting.&lt;br /&gt;data : it_sortcat   type slis_sortinfo_alv occurs 1,&lt;br /&gt;     wa_sort like line of it_sortcat.&lt;br /&gt;data :  i_list_comments type slis_t_listheader.&lt;br /&gt;&lt;br /&gt;start-of-selection.&lt;br /&gt;perform data_retrieval.&lt;br /&gt;*  perform user_command.&lt;br /&gt;perform build_fieldcatalog.&lt;br /&gt;perform build_layout.&lt;br /&gt;perform build_events.&lt;br /&gt;perform build_print_params.&lt;br /&gt;perform build_sortcat.&lt;br /&gt;perform display_alv_report.&lt;br /&gt;&lt;br /&gt;end-of-selection.&lt;br /&gt;&lt;br /&gt;*TOP-OF-PAGE.&lt;br /&gt;*  PERFORM top-of-page.&lt;br /&gt;&lt;br /&gt;end-of-page.&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*&amp;amp;      Form  build_fieldcatalog&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*       text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;form build_fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'EBELN'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Purchase Order'.&lt;br /&gt;fieldcatalog-col_pos     = 0.&lt;br /&gt;fieldcatalog-outputlen   = 10.&lt;br /&gt;fieldcatalog-emphasize   = 'X'.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'EBELP'.&lt;br /&gt;fieldcatalog-seltext_m   = 'PO Item'.&lt;br /&gt;fieldcatalog-col_pos     = 1.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'STATU'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Status'.&lt;br /&gt;fieldcatalog-col_pos     = 2.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'AEDAT'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Item change date'.&lt;br /&gt;fieldcatalog-col_pos     = 3.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'MATNR'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Material Number'.&lt;br /&gt;fieldcatalog-col_pos     = 4.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'MENGE'.&lt;br /&gt;fieldcatalog-seltext_m   = 'PO quantity'.&lt;br /&gt;fieldcatalog-col_pos     = 5.&lt;br /&gt;fieldcatalog-do_sum = 'X'.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'MEINS'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Order Unit'.&lt;br /&gt;fieldcatalog-col_pos     = 6.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'NETPR'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Net Price'.&lt;br /&gt;fieldcatalog-col_pos     = 7.&lt;br /&gt;fieldcatalog-outputlen   = 15.&lt;br /&gt;fieldcatalog-datatype     = 'CURR'.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'PEINH'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Price Unit'.&lt;br /&gt;fieldcatalog-col_pos     = 8.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;endform.                    " build_fieldcatalog&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*&amp;amp;      Form  build_layout&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*       text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;form build_layout.&lt;br /&gt;gd_layout-no_input          = 'X'.&lt;br /&gt;gd_layout-colwidth_optimize = 'X'.&lt;br /&gt;gd_layout-totals_text       = 'Totals'(201).&lt;br /&gt;&lt;br /&gt;* Set layout field for row attributes(i.e. color)&lt;br /&gt;gd_layout-info_fieldname =      'LINE_COLOR'.&lt;br /&gt;*  gd_layout-totals_only        = 'X'.&lt;br /&gt;*  gd_layout-f2code            = 'DISP'.  "Sets fcode for&lt;br /&gt;*when double&lt;br /&gt;*                                         "click(press f2)*&lt;br /&gt;*  gd_layout-group_change_edit = 'X'.&lt;br /&gt;*  gd_layout-header_text       = 'helllllo'.&lt;br /&gt;endform.                    " build_layout&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*&amp;amp;      Form  data_retrieval&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*       text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;form data_retrieval.&lt;br /&gt;data: ld_color(1) type c.&lt;br /&gt;&lt;br /&gt;select ebeln ebelp statu aedat matnr menge meins netpr&lt;br /&gt;peinh from ekpo  into table it_ekko.&lt;br /&gt;*Populate field with color attributes&lt;br /&gt;loop at it_ekko into wa_ekko.&lt;br /&gt;* Populate color variable with colour properties&lt;br /&gt;* Char 1 = C (This is a color property)&lt;br /&gt;* Char 2 = 3 (Color codes: 1 - 7)&lt;br /&gt;* Char 3 = Intensified on/off ( 1 or 0 )&lt;br /&gt;* Char 4 = Inverse display on/off ( 1 or 0 )&lt;br /&gt;*           i.e. wa_ekko-line_color = 'C410'&lt;br /&gt;  ld_color = ld_color + 1.&lt;br /&gt;* Only 7 colours so need to reset color value&lt;br /&gt;  if ld_color = 8.&lt;br /&gt;    ld_color = 1.&lt;br /&gt;  endif.&lt;br /&gt;  concatenate 'C' ld_color '10' into wa_ekko-line_color.&lt;br /&gt;* wa_ekko-line_color = 'C410'.&lt;br /&gt;  modify it_ekko from wa_ekko.&lt;br /&gt;endloop.&lt;br /&gt;&lt;br /&gt;endform.                    " data_retrieval&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*&amp;amp;      Form  display_alv_report&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*       text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;form display_alv_report.&lt;br /&gt;gd_repid = sy-repid.&lt;br /&gt;call function 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;     exporting&lt;br /&gt;          i_callback_program       = gd_repid&lt;br /&gt;          is_layout                = gd_layout&lt;br /&gt;          i_callback_top_of_page   = 'TOP-OF-PAGE'&lt;br /&gt;          i_callback_user_command  = 'USER_COMMAND'&lt;br /&gt;          i_callback_pf_status_set = 'SET_PF_STATUS'&lt;br /&gt;          it_event                 = gt_events&lt;br /&gt;          is_print                 = gd_prntparams&lt;br /&gt;          it_fieldcat              = fieldcatalog[]&lt;br /&gt;          it_sort                 = it_sortcat&lt;br /&gt;          i_save                   = 'X'&lt;br /&gt;     tables&lt;br /&gt;          t_outtab                 = it_ekko&lt;br /&gt;     exceptions&lt;br /&gt;          program_error            = 1&lt;br /&gt;          others                   = 2.&lt;br /&gt;if sy-subrc &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;endif.&lt;br /&gt;endform.              " DISPLAY_ALV_REPORT&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*&amp;amp;      Form  user_command&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*       text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*&amp;amp;      Form  top-of-page&lt;br /&gt;*&amp;amp;----------------------------------------------------------&lt;br /&gt;*       text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*-----------------------------------------------------------&lt;br /&gt;form top-of-page.&lt;br /&gt;*ALV Header declarations&lt;br /&gt;data: t_header type slis_t_listheader,&lt;br /&gt;      wa_header type slis_listheader,&lt;br /&gt;      t_line like wa_header-info,&lt;br /&gt;      ld_lines type i,&lt;br /&gt;      ld_linesc(10) type c.&lt;br /&gt;&lt;br /&gt;* Title&lt;br /&gt;wa_header-typ  = 'H'.&lt;br /&gt;wa_header-info = 'EKKO Table Report'.&lt;br /&gt;append wa_header to t_header.&lt;br /&gt;clear wa_header.&lt;br /&gt;&lt;br /&gt;* Date&lt;br /&gt;wa_header-typ  = 'S'.&lt;br /&gt;wa_header-key = 'Date: '.&lt;br /&gt;concatenate  sy-datum+6(2) '.'&lt;br /&gt;             sy-datum+4(2) '.'&lt;br /&gt; sy-datum(4) into wa_header-info."todays date&lt;br /&gt;append wa_header to t_header.&lt;br /&gt;clear: wa_header.&lt;br /&gt;&lt;br /&gt;* Total No. of Records Selected&lt;br /&gt;describe table it_ekko lines ld_lines.&lt;br /&gt;ld_linesc = ld_lines.&lt;br /&gt;&lt;br /&gt;concatenate 'Total No. of Records Selected: ' ld_linesc&lt;br /&gt;   into t_line separated by space.&lt;br /&gt;&lt;br /&gt;wa_header-typ  = 'A'.&lt;br /&gt;wa_header-info = t_line.&lt;br /&gt;append wa_header to t_header.&lt;br /&gt;clear: wa_header, t_line.&lt;br /&gt;&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;     exporting&lt;br /&gt;     it_list_commentary = t_header&lt;br /&gt;     i_logo             = 'GANESH_LOGO'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;endform.                    " top-of-page&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM user_command                                             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  R_UCOMM                                                       *&lt;br /&gt;*  --&gt;  RS_SELFIELD                                                   *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form user_command using r_ucomm like sy-ucomm&lt;br /&gt;rs_selfield type slis_selfield.&lt;br /&gt;case r_ucomm.&lt;br /&gt;&lt;br /&gt;  when '&amp;amp;IC1'.&lt;br /&gt;    if rs_selfield-fieldname = 'EBELN'.&lt;br /&gt;      read table it_ekko into wa_ekko index rs_selfield-tabindex.&lt;br /&gt;      set parameter id 'BES' field wa_ekko-ebeln.&lt;br /&gt;      call transaction 'ME23N' and skip first screen.&lt;br /&gt;    endif.&lt;br /&gt;  when 'ULHAS'.&lt;br /&gt;    if rs_selfield-fieldname = 'EBELN'.&lt;br /&gt;      read table it_ekko into wa_ekko index rs_selfield-tabindex.&lt;br /&gt;      set parameter id 'BES' field wa_ekko-ebeln.&lt;br /&gt;      call transaction 'ME23N' and skip first screen.&lt;br /&gt;    endif.&lt;br /&gt;&lt;br /&gt;endcase.&lt;br /&gt;&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM set_pf_status                                            *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  RT_EXTAB                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form set_pf_status using rt_extab type slis_t_extab.&lt;br /&gt;set pf-status 'ZNEWSTATUS'.&lt;br /&gt;endform.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  build_events&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form build_events.&lt;br /&gt;data: ls_event type slis_alv_event.&lt;br /&gt;call function 'REUSE_ALV_EVENTS_GET'&lt;br /&gt; exporting&lt;br /&gt;   i_list_type           = 0&lt;br /&gt; importing&lt;br /&gt;   et_events             = gt_events[]&lt;br /&gt;* EXCEPTIONS&lt;br /&gt;*   LIST_TYPE_WRONG       = 1&lt;br /&gt;*   OTHERS                = 2&lt;br /&gt;          .&lt;br /&gt;if sy-subrc &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;endif.&lt;br /&gt;read table gt_events with key name =  slis_ev_end_of_page&lt;br /&gt;            into ls_event.&lt;br /&gt;if sy-subrc = 0.&lt;br /&gt;  move 'END_OF_PAGE' to ls_event-form.&lt;br /&gt;  append ls_event to gt_events.&lt;br /&gt;endif.&lt;br /&gt;&lt;br /&gt;read table gt_events with key name =  slis_ev_end_of_list&lt;br /&gt;            into ls_event.&lt;br /&gt;if sy-subrc = 0.&lt;br /&gt;  move 'END_OF_LIST' to ls_event-form.&lt;br /&gt;  append ls_event to gt_events.&lt;br /&gt;endif.&lt;br /&gt;endform.                    " build_events&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  build_print_params&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form build_print_params.&lt;br /&gt;gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer&lt;br /&gt;gd_prntparams-no_coverpage = 'X'.&lt;br /&gt;endform.                    " build_print_params&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM END_OF_PAGE                                              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form end_of_page.&lt;br /&gt;data: listwidth type i,&lt;br /&gt;ld_pagepos(10) type c,&lt;br /&gt;ld_page(10)    type c.&lt;br /&gt;write: sy-uline(50).&lt;br /&gt;skip.  write:/40 'Page:', sy-pagno .&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM END_OF_LIST                                              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form end_of_list.&lt;br /&gt;data: listwidth type i,&lt;br /&gt;ld_pagepos(10) type c,&lt;br /&gt;ld_page(10)    type c.&lt;br /&gt;skip.  write:/40 'Page:', sy-pagno .&lt;br /&gt;endform.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  build_sortcat&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form build_sortcat.&lt;br /&gt;wa_sort-spos      = 1.&lt;br /&gt;wa_sort-fieldname = 'EBELN'.&lt;br /&gt;append wa_sort to it_sortcat.&lt;br /&gt;&lt;br /&gt;wa_sort-spos      = 2.&lt;br /&gt;wa_sort-fieldname = 'EBELP'.&lt;br /&gt;append wa_sort to it_sortcat.&lt;br /&gt;&lt;br /&gt;endform.                    " build_sortcat&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for Test ALV Display With Header &amp; Footer</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-test-alv-display.html</link><category>SAP ALV</category><pubDate>Thu, 12 Feb 2009 17:21:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-3449957665514495612</guid><description>&lt;pre&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;*Program to Test ALV Display With Header &amp;amp; Footer.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Report  ZRJR02                                                      *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;REPORT  ZRJR02                                  .&lt;br /&gt;&lt;br /&gt;*Table declaration.&lt;br /&gt;TABLES:ZEMP_MST,ZDEPT_MST,ZDESG_MST,ZSL_TXN.&lt;br /&gt;&lt;br /&gt;*Varriable declaration.&lt;br /&gt;TYPE-POOLS SLIS.&lt;br /&gt;DATA : POS TYPE I.&lt;br /&gt;DATA  REPID  LIKE SY-REPID.&lt;br /&gt;&lt;br /&gt;DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,&lt;br /&gt;     F2 TYPE SLIS_FIELDCAT_ALV,&lt;br /&gt;     L_LAYOUT TYPE SLIS_LAYOUT_ALV.&lt;br /&gt;DATA  L_POS TYPE I VALUE 1.               "position of the column&lt;br /&gt;DATA  GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.&lt;br /&gt;*DATA  GT_SORT TYPE SLIS_T_SORTINFO_ALV.&lt;br /&gt;&lt;br /&gt;data:  GT_EVENTS    TYPE SLIS_T_EVENT,&lt;br /&gt;     FS_EVENTCAT LIKE LINE OF GT_EVENTs.&lt;br /&gt;&lt;br /&gt;*Internal table declaration.&lt;br /&gt;*DATA  BEGIN OF IT_SORT OCCURS 5.&lt;br /&gt;*      INCLUDE TYPE SLIS_SORTINFO_ALV.&lt;br /&gt;*DATA  END OF IT_SORT.&lt;br /&gt;&lt;br /&gt;DATA:BEGIN OF ITAB OCCURS 0,&lt;br /&gt;    ZEMPNO    LIKE ZEMP_MST-ZEMPNO,&lt;br /&gt;    ZEMPNAME  LIKE ZEMP_MST-ZEMPNAME,&lt;br /&gt;    ZDEPTCD   LIKE ZEMP_MST-ZDEPTCD,&lt;br /&gt;    ZDEPTNAME LIKE ZDEPT_MST-ZDEPTNAME,&lt;br /&gt;    ZDESGCD   LIKE ZEMP_MST-ZDESGCD,&lt;br /&gt;    ZDESGNAME LIKE ZDESG_MST-ZDESGNAME,&lt;br /&gt;   END OF ITAB.&lt;br /&gt;REFRESH ITAB.CLEAR ITAB.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;SELECT A~ZEMPNO A~ZEMPNAME A~ZDEPTCD B~ZDEPTNAME A~ZDESGCD C~ZDESGNAME&lt;br /&gt;     FROM ZEMP_MST AS A&lt;br /&gt;       INNER JOIN ZDEPT_MST AS B&lt;br /&gt;         ON A~ZDEPTCD EQ B~ZDEPTCD&lt;br /&gt;       INNER JOIN ZDESG_MST AS C&lt;br /&gt;         ON A~ZDESGCD EQ C~ZDESGCD&lt;br /&gt;     INTO CORRESPONDING FIELDS OF TABLE ITAB.&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt; MESSAGE E899(M3) WITH 'No records'.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;perform f_build_eventcat.&lt;br /&gt;PERFORM LAYOUT.&lt;br /&gt;&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  LAYOUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;FORM LAYOUT .&lt;br /&gt;PERFORM FCAT USING 'ZEMPNO'    'ITAB' '' 'Emp.No.'   'ZEMPNO'    'ZEMP_MST'  ''.&lt;br /&gt;PERFORM FCAT USING 'ZEMPNAME'  'ITAB' '' 'Emp. Name' 'ZEMPNAME'  'ZEMP_MST'  ''.&lt;br /&gt;PERFORM FCAT USING 'ZDEPTCD'   'ITAB' '' 'Dept.Code' 'ZDEPTCD'   'ZEMP_MST'  ''.&lt;br /&gt;PERFORM FCAT USING 'ZDEPTNAME' 'ITAB' '' 'Dept.Name' 'ZDEPTNAME' 'ZDEPT_MST' ''.&lt;br /&gt;PERFORM FCAT USING 'ZDESGCD'   'ITAB' '' 'Desg.Code' 'ZDESGCD'   'ZEMP_MST'  ''.&lt;br /&gt;PERFORM FCAT USING 'ZDESGNAME' 'ITAB' '' 'Desg.Name' 'ZDESGNAME' 'ZDESG_MST' ''.&lt;br /&gt;&lt;br /&gt;*  PERFORM LSORT USING  'ZEMPNO' 'IDATA' ''.&lt;br /&gt;*  PERFORM LSORT USING  'ZEMPNAME' 'IDATA' ''.&lt;br /&gt;&lt;br /&gt;*  MOVE IT_SORT[] TO GT_SORT[].&lt;br /&gt;&lt;br /&gt;REPID = SY-REPID.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;br /&gt;  EXPORTING&lt;br /&gt;       I_CALLBACK_PROGRAM       = REPID&lt;br /&gt;       IT_FIELDCAT              = F1&lt;br /&gt;*         IT_SORT                  = GT_SORT&lt;br /&gt;       I_SAVE                   = 'X'&lt;br /&gt;       IT_EVENTS                = GT_EVENTS[]&lt;br /&gt;&lt;br /&gt;   TABLES&lt;br /&gt;        T_OUTTAB                 = ITAB.&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                    " LAYOUT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  FCAT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.&lt;br /&gt;ADD 1 TO POS.&lt;br /&gt;F2-COL_POS       = POS.&lt;br /&gt;F2-FIELDNAME     = P_FIELD.&lt;br /&gt;F2-TABNAME       = P_TABLE.&lt;br /&gt;F2-SELTEXT_L     = P_TEXT.&lt;br /&gt;F2-REF_FIELDNAME = P_RFIELD.&lt;br /&gt;F2-REF_TABNAME   = P_RTABLE.&lt;br /&gt;F2-DO_SUM        = P_SUM.&lt;br /&gt;F2-NO_OUT        = P_DISP.&lt;br /&gt;APPEND F2 TO F1.&lt;br /&gt;CLEAR F2.&lt;br /&gt;ENDFORM.                " FCAT&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  LSORT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*FORM LSORT USING P_FIELD P_TABLE P_UP.&lt;br /&gt;*  ADD 1 TO L_POS.&lt;br /&gt;*  IT_SORT-SPOS      = L_POS.&lt;br /&gt;*  IT_SORT-FIELDNAME = P_FIELD.&lt;br /&gt;*  IT_SORT-TABNAME   = P_TABLE.&lt;br /&gt;*  IT_SORT-UP        = P_UP.&lt;br /&gt;*  APPEND IT_SORT.&lt;br /&gt;*ENDFORM.                    " LSORT&lt;br /&gt;*-------------&lt;br /&gt;FORM F_BUILD_EVENTCAT .&lt;br /&gt;CLEAR: GT_EVENTS.  REFRESH: GT_EVENTS.&lt;br /&gt;&lt;br /&gt;CLEAR: FS_EVENTCAT.&lt;br /&gt;FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.&lt;br /&gt;FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.&lt;br /&gt;APPEND FS_EVENTCAT TO GT_EVENTS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CLEAR: FS_EVENTCAT.&lt;br /&gt;FS_EVENTCAT-NAME = 'END_OF_LIST'.&lt;br /&gt;FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.&lt;br /&gt;APPEND FS_EVENTCAT TO GT_EVENTS.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    " F_BUILD_EVENTCAT&lt;br /&gt;&lt;br /&gt;FORM F_REPORT_HEADER_ALV.&lt;br /&gt;CALL FUNCTION 'Z_YHEAD_PRINT'&lt;br /&gt;EXPORTING&lt;br /&gt; TITLE1        = 'XYZ Limited'&lt;br /&gt; TITLE2        = 'Employee Master'&lt;br /&gt; TITLE3        = 'Created on '&lt;br /&gt; COLOR         = 'X'&lt;br /&gt;        .&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F_WRITE_SUMMARY&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Write summary before exit&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM F_WRITE_SUMMARY .&lt;br /&gt;&lt;br /&gt;write:/ 'Welcome to XYZ Limited'.&lt;br /&gt;write:/ 'This is a test program to display Report in ALV Format'.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>Sample programs on sap abap ALV Grid</title><link>http://freesapabapnotes.blogspot.com/2009/02/sample-programs-on-sap-abap-alv-grid.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:21:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-104186749034405083</guid><description>&lt;p&gt;report zbnstest.&lt;br /&gt;************************************************************************&lt;br /&gt;* TABLES AND DATA DECLARATION.&lt;br /&gt;************************************************************************&lt;br /&gt;*TABLES: mara,makt.",marc.&lt;br /&gt;data syrepid like sy-repid.&lt;br /&gt;data sydatum(10). " LIKE sy-datum.&lt;br /&gt;data sypagno(3) type n.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* WHEN USING MORE THAN ONE TABLE IN ALV WE NEEED TO DECLARE THE TYPE&lt;br /&gt;* GROUP (TYPE-POOLS---------&gt;SLIS)&lt;br /&gt;type-pools : slis.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;************************************************************************&lt;br /&gt;* INTERNAL TABLE DECLARATION.&lt;br /&gt;************************************************************************&lt;br /&gt;* INTERNAL TABLE TO HOLD THE VALUES FROM THE MARA TABLE&lt;br /&gt;data: begin of t_mara occurs 0,&lt;br /&gt;matnr like mara-matnr,&lt;br /&gt;meins like mara-meins,&lt;br /&gt;mtart like mara-mtart,&lt;br /&gt;matkl like mara-matkl, &lt;/p&gt;&lt;p&gt;end of t_mara. &lt;/p&gt;&lt;p&gt;* INTERNAL TABLE TO HOLD THE CONTENTS FROM THE EKKO TABLE&lt;br /&gt;data : begin of t_marc occurs 0,&lt;br /&gt;matnr like mara-matnr,&lt;br /&gt;werks like marc-werks,&lt;br /&gt;minbe like marc-minbe.&lt;br /&gt;data: end of t_marc. &lt;/p&gt;&lt;p&gt;* INTERNAL TABLE TO HOLD THE VALUES FROM MAKT TABLE.&lt;br /&gt;data : begin of t_makt occurs 0,&lt;br /&gt;matnr like mara-matnr,&lt;br /&gt;maktx like makt-maktx,&lt;br /&gt;spras like makt-spras,&lt;br /&gt;end of t_makt. &lt;/p&gt;&lt;p&gt;* INTERNAL TABLE WHICH ACTUALLY MERGES ALL THE OTHER INTERNAL TABLES.&lt;br /&gt;data: begin of itab1 occurs 0,&lt;br /&gt;matnr like mara-matnr,&lt;br /&gt;meins like mara-meins,&lt;br /&gt;maktx like makt-maktx,&lt;br /&gt;spras like makt-spras,&lt;br /&gt;werks like marc-werks,&lt;br /&gt;minbe like marc-minbe,&lt;br /&gt;end of itab1.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* THE FOLLOWING DECLARATION IS USED FOR DEFINING THE FIELDCAT&lt;br /&gt;* AND THE LAYOUT FOR THE ALV.&lt;br /&gt;* HERE AS slis_t_fieldcat_alv IS A INTERNAL TABLE WITHOUT A HEADER LINE&lt;br /&gt;* WE EXPLICITELY DEFINE AN INTERNAL TABLE OF THE SAME STRUCTURE AS THAT&lt;br /&gt;* OF slis_t_fieldcat_alv BUT WITH A HEADER LINE IN THE DEFINITION.&lt;br /&gt;* THIS IS DONE TO MAKE THE CODE SIMPLER.&lt;br /&gt;* OTHERWISE WE MAY HAVE TO DEFINE THE STRUCTURE AS IN THE NORMAL SAP&lt;br /&gt;* PROGRAMS.&lt;br /&gt;* IN THE FIELDCATALOG TABLE WE ACTUALLY PASS THE FIELDS FROM ONE OR&lt;br /&gt;* MORE TABLES AND CREATE A STRUCTURE&lt;br /&gt;* IN THE LAYOUT STRUCTURE WE BASICALLY DEFINE THE FORMATTING OPTIONS&lt;br /&gt;* LIKE DISPLAY IN THE ZEBRA PATTERN ,THE HOTSPOT OPTIONS ETC.&lt;br /&gt;data: fieldcatalog type slis_t_fieldcat_alv with header line,&lt;br /&gt;fieldlayout type slis_layout_alv.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* DECLARING THE EVENTTABLE INTERNL TABLE FOR USING EVENTS LIKE&lt;br /&gt;* TOP-OF-PAGE ETC.&lt;br /&gt;data : eventstab type slis_t_event with header line. &lt;/p&gt;&lt;p&gt;* DECLARING AN INTERNAL TABLE TO HOLD THE DATA FOR THE TOP-OF-PAGE&lt;br /&gt;data : heading type slis_t_listheader with header line.&lt;br /&gt;data : heading1 type slis_t_listheader with header line.&lt;br /&gt;data : heading2 type slis_t_listheader with header line.&lt;br /&gt;data : heading3 type slis_t_listheader with header line.&lt;br /&gt;data : heading4 type slis_t_listheader with header line.&lt;br /&gt;data : heading5 type slis_t_listheader with header line.&lt;br /&gt;data : heading6 type slis_t_listheader with header line.&lt;br /&gt;data : heading7 type slis_t_listheader with header line.&lt;br /&gt;data : heading8 type slis_t_listheader with header line.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* STRUCTURE TO PASS THE COLOR ATTRIBUTES FOR DISPLAY.&lt;br /&gt;data : colorstruct type slis_coltypes.&lt;br /&gt;************************************************************************&lt;br /&gt;* INITIALIZATION. *&lt;br /&gt;************************************************************************&lt;br /&gt;initialization.&lt;br /&gt;syrepid = sy-repid.&lt;br /&gt;sypagno = sy-pagno.&lt;br /&gt;clear fieldcatalog.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;************************************************************************&lt;br /&gt;* START-OF-SELECTION. *&lt;br /&gt;************************************************************************&lt;br /&gt;start-of-selection.&lt;br /&gt;* SUBROUTINE TO POPULATE THE COLORSTRUCT&lt;br /&gt;perform fill_colorstruct using colorstruct.&lt;br /&gt;* SUBROUTINE TO POPULATE THE FIELDS OF THE FIELD CATALOGUE&lt;br /&gt;perform populate_fieldcatalog.&lt;br /&gt;* SUBROUTINE TO SELECT DATA FROM VARIOUS TABLES AND POPULATE IT IN THE&lt;br /&gt;* INTERNAL TABLE.&lt;br /&gt;perform selectdata_and_sort.&lt;br /&gt;* SUBROUTINE TO POPULATE THE LAYOUT STRUCTURE.&lt;br /&gt;perform populate_layout using fieldlayout.&lt;br /&gt;* SUBROUTINE TO CALL THE FUNCTION MERGE TO ENSURE PROPER DISPLAY.&lt;br /&gt;perform merge_fieldcatalog.&lt;br /&gt;* SUBROUTINE TO POPULATE THE EVENTSTAB.&lt;br /&gt;perform fill_eventstab tables eventstab.&lt;br /&gt;* SUBROUTINE TO POPULATE THE HEADING TABLES.&lt;br /&gt;perform fill_headingtable tables heading using 'HEADING'.&lt;br /&gt;perform fill_headingtable tables heading1 using 'HEADING1'.&lt;br /&gt;perform fill_headingtable tables heading2 using 'HEADING2'.&lt;br /&gt;perform fill_headingtable tables heading3 using 'HEADING3'.&lt;br /&gt;perform fill_headingtable tables heading4 using 'HEADING4'.&lt;br /&gt;perform fill_headingtable tables heading5 using 'HEADING5'.&lt;br /&gt;perform fill_headingtable tables heading6 using 'HEADING6'.&lt;br /&gt;perform fill_headingtable tables heading7 using 'HEADING7'.&lt;br /&gt;perform fill_headingtable tables heading8 using 'HEADING8'. &lt;/p&gt;&lt;p&gt;* SUBROUTINE TO DISPLAY THE LIST.&lt;br /&gt;perform display_alv_list.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;************************************************************************&lt;br /&gt;* FORMS&lt;br /&gt;************************************************************************&lt;br /&gt;* IN THIS SUBROUTINE WE POPULATE THE FIELDCATALOG TABLE WITH THE NAMES&lt;br /&gt;* OF THE TABLE,FIELDNAME,WHETHER IT IS KEY FIELD OR NOT,HEADING AND&lt;br /&gt;* COLUMN JUSTIFICATION.&lt;br /&gt;form populate_fieldcatalog.&lt;br /&gt;perform fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;using 'ITAB1' 'MATNR' 'X' .&lt;br /&gt;perform fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;using 'ITAB1' 'MEINS' ' '.&lt;br /&gt;perform fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;using 'ITAB1' 'MAKTX' ' ' .&lt;br /&gt;perform fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;using 'ITAB1' 'MTART' ' ' .&lt;br /&gt;perform fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;using 'ITAB1' 'MATKL' ' ' .&lt;br /&gt;perform fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;using 'ITAB1' 'SPRAS' ' ' .&lt;br /&gt;perform fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;using 'ITAB1' 'WERKS' ' ' .&lt;br /&gt;perform fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;using 'ITAB1' 'MINBE' ' ' .&lt;br /&gt;endform. " POPULATE_FIELDCATALOG&lt;br /&gt;&lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM FILL_FIELDS_OF_FIELDCATALOG *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* --&gt; FIELDCATALOG *&lt;br /&gt;* --&gt; P_TABNAME *&lt;br /&gt;* --&gt; P_FIELDNAME *&lt;br /&gt;* --&gt; P_KEY *&lt;br /&gt;* --&gt; P_KEY *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form fill_fields_of_fieldcatalog tables fieldcatalog&lt;br /&gt;structure fieldcatalog&lt;br /&gt;using p_tabname&lt;br /&gt;p_fieldname&lt;br /&gt;p_key.&lt;br /&gt;* p_no_out.&lt;br /&gt;fieldcatalog-tabname = p_tabname.&lt;br /&gt;fieldcatalog-fieldname = p_fieldname.&lt;br /&gt;fieldcatalog-key = p_key.&lt;br /&gt;fieldcatalog-emphasize = '1234'.&lt;br /&gt;*fieldcatalog-no_out = p_no_out.&lt;br /&gt;append fieldcatalog.&lt;br /&gt;endform. " FILL_FIELDSOFFIELDCATALOG&lt;br /&gt;&lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM POPULATE_LAYOUT *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* --&gt; FIELDLAYOUT *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form populate_layout using fieldlayout type slis_layout_alv.&lt;br /&gt;fieldlayout-f2code = '&amp;amp;ETA' .&lt;br /&gt;fieldlayout-zebra = 'X'.&lt;br /&gt;* FOR THE WINDOW TITLE.&lt;br /&gt;fieldlayout-window_titlebar = 'ALV with Events'. &lt;/p&gt;&lt;p&gt;fieldlayout-colwidth_optimize = 'X'.&lt;br /&gt;fieldlayout-no_vline = ' '.&lt;br /&gt;*fieldlayout-no_input = 'X'.&lt;br /&gt;fieldlayout-confirmation_prompt = ''.&lt;br /&gt;fieldlayout-key_hotspot = 'X'.&lt;br /&gt;* This removes the column headings if the flag is set to 'X'&lt;br /&gt;fieldlayout-no_colhead = ' '.&lt;br /&gt;*fieldlayout-hotspot_fieldname = 'MAKTX'.&lt;br /&gt;fieldlayout-detail_popup = 'X'.&lt;br /&gt;* fieldlayout-coltab_fieldname = 'X'.&lt;br /&gt;endform. " POPULATE_LAYOUT &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM SELECTDATA_AND_SORT *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form selectdata_and_sort.&lt;br /&gt;select matnr meins mtart matkl from mara&lt;br /&gt;into corresponding fields of t_mara&lt;br /&gt;up to 500 rows . &lt;/p&gt;&lt;p&gt;select matnr maktx spras from makt&lt;br /&gt;into corresponding fields of t_makt&lt;br /&gt;where matnr = t_mara-matnr and&lt;br /&gt;spras = sy-langu. &lt;/p&gt;&lt;p&gt;select matnr werks minbe from marc&lt;br /&gt;into corresponding fields of t_marc&lt;br /&gt;where matnr = t_mara-matnr.&lt;br /&gt;append t_marc.&lt;br /&gt;endselect.&lt;br /&gt;append t_makt.&lt;br /&gt;endselect.&lt;br /&gt;append t_mara.&lt;br /&gt;endselect.&lt;br /&gt;perform populate_itab1.&lt;br /&gt;sort itab1 by matnr.&lt;br /&gt;endform. " SELECTDATA_AND_SORT &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM MERGE_FIELDCATALOG *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form merge_fieldcatalog.&lt;br /&gt;call function 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;br /&gt;exporting&lt;br /&gt;i_program_name = syrepid&lt;br /&gt;i_internal_tabname = 'ITAB1'&lt;br /&gt;* i_structure_name = 'COLORSTRUCT'&lt;br /&gt;* I_CLIENT_NEVER_DISPLAY = 'X'&lt;br /&gt;i_inclname = syrepid&lt;br /&gt;changing&lt;br /&gt;ct_fieldcat = fieldcatalog[]&lt;br /&gt;exceptions&lt;br /&gt;inconsistent_interface = 1&lt;br /&gt;program_error = 2&lt;br /&gt;others = 3.&lt;br /&gt;endform. " MERGE_FIELDCATALOG&lt;br /&gt;&lt;/p&gt;&lt;p&gt;* IN THIS FUNCTION THE MINIMUM PARAMETERS THAT WE NEED TO PASS IS AS&lt;br /&gt;* FOLLOWS:-&lt;br /&gt;* i_callback_program --&gt; CALLING PROGRAM NAME&lt;br /&gt;* i_structure_name --&gt; STRUCTURE NAME.&lt;br /&gt;* is_layout --&gt; LAYOUT NAME.&lt;br /&gt;* it_fieldcat ---&gt; BODY OF THE FIELD CATALOGUE INTERNAL TABLE&lt;br /&gt;form display_alv_list.&lt;br /&gt;call function 'REUSE_ALV_LIST_DISPLAY'&lt;br /&gt;exporting&lt;br /&gt;* I_INTERFACE_CHECK = ' '&lt;br /&gt;i_callback_program = syrepid&lt;br /&gt;* I_CALLBACK_PF_STATUS_SET = ' '&lt;br /&gt;* I_CALLBACK_USER_COMMAND = ' '&lt;br /&gt;i_structure_name = 'ITAB1'&lt;br /&gt;is_layout = fieldlayout&lt;br /&gt;it_fieldcat = fieldcatalog[]&lt;br /&gt;* IT_EXCLUDING =&lt;br /&gt;* IT_SPECIAL_GROUPS =&lt;br /&gt;* IT_SORT =&lt;br /&gt;* IT_FILTER =&lt;br /&gt;* IS_SEL_HIDE =&lt;br /&gt;* I_DEFAULT = 'X'&lt;br /&gt;* THE FOLLOWING PARAMETER IS SET AS 'A' INORDER TO DISPLAY THE STANDARD&lt;br /&gt;* TOOL BAR&lt;br /&gt;i_save = 'A'&lt;br /&gt;* IS_VARIANT = ' '&lt;br /&gt;it_events = eventstab[]&lt;br /&gt;* IT_EVENT_EXIT =&lt;br /&gt;* IS_PRINT =&lt;br /&gt;* I_SCREEN_START_COLUMN = 0&lt;br /&gt;* I_SCREEN_START_LINE = 0&lt;br /&gt;* I_SCREEN_END_COLUMN = 0&lt;br /&gt;* I_SCREEN_END_LINE = 0&lt;br /&gt;* IMPORTING&lt;br /&gt;* E_EXIT_CAUSED_BY_CALLER =&lt;br /&gt;* ES_EXIT_CAUSED_BY_USER =&lt;br /&gt;tables&lt;br /&gt;t_outtab = itab1&lt;br /&gt;exceptions&lt;br /&gt;program_error = 1&lt;br /&gt;others = 2.&lt;br /&gt;endform. " DISPLAY_ALV_LIST&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Form POPULATE_ITAB1&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* --&gt; p1 text&lt;br /&gt;* &lt;-- p2 text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form populate_itab1.&lt;br /&gt;loop at t_mara.&lt;br /&gt;loop at t_makt where matnr = t_mara-matnr.&lt;br /&gt;loop at t_marc where matnr = t_mara-matnr.&lt;br /&gt;move-corresponding t_mara to itab1.&lt;br /&gt;move-corresponding t_makt to itab1.&lt;br /&gt;move-corresponding t_marc to itab1.&lt;br /&gt;append itab1.&lt;br /&gt;endloop.&lt;br /&gt;endloop.&lt;br /&gt;endloop.&lt;br /&gt;endform. " POPULATE_ITAB1&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Form FILL_EVENTSTAB&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* --&gt;P_EVENTSTAB text *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form fill_eventstab tables p_eventstab structure eventstab.&lt;br /&gt;* WHEN THE FOLLOWING FUNCTION IS CALLED THE SYSTEM POPULATES THE&lt;br /&gt;* INTERNAL TABLE EVENTSTAB WITH A LIST OF EVENTS NAME.&lt;br /&gt;* AS SHOWN BELOW WHEN USING I_LIST_TYPE = 0 THE FUNCTION RETURNS 14&lt;br /&gt;* EVENTS NAME.&lt;br /&gt;call function 'REUSE_ALV_EVENTS_GET'&lt;br /&gt;exporting&lt;br /&gt;i_list_type = 0&lt;br /&gt;importing&lt;br /&gt;et_events = p_eventstab[]&lt;br /&gt;exceptions&lt;br /&gt;list_type_wrong = 1&lt;br /&gt;others = 2. &lt;/p&gt;&lt;p&gt;* BY CALLING THE ABOVE FUNCTION WE FIRST POPULATE THE EVENTSTAB WITH&lt;br /&gt;* THE PREDEFINED EVENTS AND THEN WE MOVE THE FORM NAME AS SHOWN BELOW.&lt;br /&gt;* WE ASSIGN A FORM NAME TO THE EVENT AS REQUIRED BY THE USER.&lt;br /&gt;* FORM NAME CAN BE ANYTHING.THE PERFORM STATEMENT FOR THIS FORM&lt;br /&gt;* IS DYNAMICALY CALLED. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_top_of_page.&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'TOP_OF_PAGE' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_top_of_coverpage.&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'TOP_OF_COVERPAGE' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_end_of_coverpage .&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'END_OF_COVERPAGE' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_foreign_top_of_page.&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'FOREIGN_TOP_OF_PAGE' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_foreign_end_of_page.&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'FOREIGN_END_OF_PAGE' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_list_modify.&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'LIST_MODIFY' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_top_of_list.&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'TOP_OF_LIST' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_end_of_page.&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'END_OF_PAGE' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif. &lt;/p&gt;&lt;p&gt;read table p_eventstab with key name = slis_ev_end_of_list .&lt;br /&gt;if sy-subrc = 0 .&lt;br /&gt;move 'END_OF_LIST' to p_eventstab-form.&lt;br /&gt;append p_eventstab.&lt;br /&gt;endif.&lt;br /&gt;endform. " FILL_EVENTSTAB&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Form FILL_HEADINGTABLE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* --&gt;P_HEADING text *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form fill_headingtable tables p_heading structure heading&lt;br /&gt;using tablename.&lt;br /&gt;case tablename.&lt;br /&gt;when 'HEADING'.&lt;br /&gt;p_heading-typ = 'H'.&lt;br /&gt;concatenate&lt;br /&gt;' REPORT NAME:-' syrepid&lt;br /&gt;' ABB Industry Pte Ltd' into p_heading-info.&lt;br /&gt;append p_heading.&lt;br /&gt;write sy-datum using edit mask '__/__/____' to sydatum. &lt;/p&gt;&lt;p&gt;concatenate&lt;br /&gt;' DATE:-' sydatum ' USER: ' sy-uname 'PAGE NO:' sypagno&lt;br /&gt;into p_heading-info.&lt;br /&gt;append p_heading.&lt;br /&gt;when 'HEADING1'.&lt;br /&gt;p_heading-typ = 'H'.&lt;br /&gt;p_heading-info = 'TOP-OF-COVER-PAGE'.&lt;br /&gt;append p_heading.&lt;br /&gt;when 'HEADING2'.&lt;br /&gt;p_heading-typ = 'H'.&lt;br /&gt;p_heading-info = 'END-OF-COVER-PAGE'.&lt;br /&gt;append p_heading.&lt;br /&gt;when 'HEADING3'.&lt;br /&gt;p_heading-typ = 'H'.&lt;br /&gt;p_heading-info = 'FOREIGN-TOP-OF-PAGE'.&lt;br /&gt;append p_heading.&lt;br /&gt;when 'HEADING4'.&lt;br /&gt;p_heading-typ = 'H'.&lt;br /&gt;p_heading-info = 'FOREIGN-END-OF-PAGE'.&lt;br /&gt;append p_heading.&lt;br /&gt;* WHEN 'HEADING5'.&lt;br /&gt;* P_HEADING-TYP = 'H'.&lt;br /&gt;* P_HEADING-INFO = 'LIST-MODIFY'.&lt;br /&gt;* APPEND P_HEADING.&lt;br /&gt;when 'HEADING6'.&lt;br /&gt;p_heading-typ = 'H'.&lt;br /&gt;p_heading-info = 'END-OF-PAGE'.&lt;br /&gt;append p_heading.&lt;br /&gt;when 'HEADING7'.&lt;br /&gt;p_heading-typ = 'H'.&lt;br /&gt;p_heading-info = 'END-OF-LIST'.&lt;br /&gt;append p_heading.&lt;br /&gt;when 'HEADING8'.&lt;br /&gt;p_heading-typ = 'H'.&lt;br /&gt;p_heading-info = 'TOP-OF-LIST'.&lt;br /&gt;append p_heading.&lt;br /&gt;endcase.&lt;br /&gt;endform. " FILL_HEADINGTABLE &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM TOP_OF_PAGE *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form top_of_page.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;exporting&lt;br /&gt;it_list_commentary = heading[]&lt;br /&gt;exceptions&lt;br /&gt;others = 1.&lt;br /&gt;endform.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Form FILL_COLORSTRUCT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* --&gt;P_COLORSTRUCT text *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form fill_colorstruct using p_colorstruct type slis_coltypes .&lt;br /&gt;p_colorstruct-heacolfir-col = 6.&lt;br /&gt;p_colorstruct-heacolfir-int = 1.&lt;br /&gt;p_colorstruct-heacolfir-inv = 1.&lt;br /&gt;endform. " FILL_COLORSTRUCT &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM TOP_OF_COVERPAGE *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form top_of_coverpage.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;exporting&lt;br /&gt;it_list_commentary = heading1[]&lt;br /&gt;exceptions&lt;br /&gt;others = 1.&lt;br /&gt;endform. &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM END_OF_COVERPAGE *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form end_of_coverpage.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;exporting&lt;br /&gt;it_list_commentary = heading2[]&lt;br /&gt;exceptions&lt;br /&gt;others = 1.&lt;br /&gt;endform. &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM FOREIGN_TOP_OF_PAGE *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form foreign_top_of_page.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;exporting&lt;br /&gt;it_list_commentary = heading3[]&lt;br /&gt;exceptions&lt;br /&gt;others = 1. &lt;/p&gt;&lt;p&gt;endform. &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM FOREIGN_END_OF_PAGE *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form foreign_end_of_page.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;exporting&lt;br /&gt;it_list_commentary = heading4[]&lt;br /&gt;exceptions&lt;br /&gt;others = 1.&lt;br /&gt;endform. &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM LIST_MODIFY *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*FORM LIST_MODIFY.&lt;br /&gt;* CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;* EXPORTING&lt;br /&gt;* IT_LIST_COMMENTARY = HEADING5[]&lt;br /&gt;* EXCEPTIONS&lt;br /&gt;* OTHERS = 1.&lt;br /&gt;*ENDFORM. &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM END_OF_PAGE *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form end_of_page.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;exporting&lt;br /&gt;it_list_commentary = heading6[]&lt;br /&gt;exceptions&lt;br /&gt;others = 1.&lt;br /&gt;endform. &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM END_OF_LIST *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form end_of_list.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;exporting&lt;br /&gt;it_list_commentary = heading7[]&lt;br /&gt;exceptions&lt;br /&gt;others = 1.&lt;br /&gt;endform. &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM TOP_OF_LIST *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* ........ *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form top_of_list.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;exporting&lt;br /&gt;it_list_commentary = heading8[]&lt;br /&gt;exceptions&lt;br /&gt;others = 1.&lt;br /&gt;endform. &lt;/p&gt;&lt;p&gt;*--- End of Program &lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>what is abap REUSE_ALV_GRID_DISPLAY Functions Example</title><link>http://freesapabapnotes.blogspot.com/2009/02/what-is-abap-reusealvgriddisplay.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:20:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-5427199110630874933</guid><description>&lt;p&gt;&lt;b&gt;I am using "REUSE_ALV_GRID_DISPLAY" to display Report in ALV.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;I have to show System Date and Time at the end of Report so I caught Event "END_OF_PAGE" in IT_EVENTS and modified IT_EVENTS field FORM with "F100_TOP_OF_PAGE", but I am not able to see the Date and Time in the END OF PAGE&lt;/b&gt; &lt;/p&gt;&lt;p&gt;I wrote follwoing ocde so please suggest me necessary changes &lt;/p&gt;&lt;p&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Form f100-end_of_page&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* --&gt; p1 text&lt;br /&gt;*  &lt;-- p2 text&lt;br /&gt;*----------------------------------------------------------------------* &lt;/p&gt;&lt;p&gt;FORM f100-end_of_page.&lt;br /&gt;clear: wa_listheader, it_end_listheader, it_end_listheader[].&lt;br /&gt;concatenate 'Date' sy-datum into w_date separated by space. &lt;/p&gt;&lt;p&gt;wa_listheader-key = ''.&lt;br /&gt;wa_listheader-typ = 'S'.&lt;br /&gt;wa_listheader-info = 'Date'. &lt;/p&gt;&lt;p&gt;append wa_listheader to it_end_listheader. &lt;/p&gt;&lt;p&gt;clear: wa_listheader. &lt;/p&gt;&lt;p&gt;concatenate 'Time' sy-uzeit into w_date separated by space. &lt;/p&gt;&lt;p&gt;wa_listheader-key = ''.&lt;br /&gt;wa_listheader-typ = 'S'.&lt;br /&gt;wa_listheader-info = 'Time'. &lt;/p&gt;&lt;p&gt;append wa_listheader to it_end_listheader. &lt;/p&gt;&lt;p&gt;clear: wa_listheader. &lt;/p&gt;&lt;p&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;EXPORTING&lt;br /&gt;IT_LIST_COMMENTARY = it_end_listheader[]&lt;br /&gt;* I_LOGO =&lt;br /&gt;* I_END_OF_LIST_GRID =&lt;br /&gt;. &lt;/p&gt;&lt;p&gt;ENDFORM. " f100-end_of_page &lt;/p&gt;&lt;p&gt;----------------------------------- &lt;/p&gt;&lt;p&gt;In grid display there will be no end_of_page and no end_of_list.&lt;br /&gt;You have show in top_of_page itself.&lt;br /&gt;Otherwise use list display instead of grid. &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Suresh Avutu&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;----------------------------------- &lt;/p&gt;&lt;p&gt;These steps have to be carried out... &lt;/p&gt;&lt;p&gt;DATA:  gc_formname_top_of_page TYPE slis_formname&lt;br /&gt;     VALUE 'TOP_OF_PAGE'.&lt;br /&gt;DATA:  gc_formname_end_of_page TYPE slis_formname&lt;br /&gt;     VALUE 'END_OF_PAGE'. &lt;/p&gt;&lt;p&gt;DATA:  gt_list_top_of_page TYPE slis_t_listheader.&lt;br /&gt;DATA:  gt_list_end_of_page TYPE slis_t_listheader. &lt;/p&gt;&lt;p&gt;------------------&lt;br /&gt;PERFORM e03_eventtab_build USING gt_event[].&lt;br /&gt;      PERFORM e04_comment_build  USING&lt;br /&gt;gt_list_top_of_page[].&lt;br /&gt;      PERFORM e06_comment_build  USING&lt;br /&gt;gt_list_end_of_page[].&lt;br /&gt;      PERFORM list_alv_display.&lt;br /&gt;-------------------------&lt;br /&gt;FORM list_alv_display . &lt;/p&gt;&lt;p&gt;  gt_event-name = slis_ev_top_of_list.&lt;br /&gt;gt_event-form = 'TOP_OF_PAGE'.&lt;br /&gt;APPEND gt_event. &lt;/p&gt;&lt;p&gt;  gt_event-name = slis_ev_end_of_list.&lt;br /&gt;gt_event-form = 'END_OF_PAGE'.&lt;br /&gt;APPEND gt_event.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;  EXPORTING&lt;br /&gt;*   I_INTERFACE_CHECK                 = ' '&lt;br /&gt;  i_bypassing_buffer                = 'X'&lt;br /&gt;  i_buffer_active                   = ' '&lt;br /&gt;  i_callback_program                = ....&lt;br /&gt;---------------------------------------&lt;br /&gt;FORM end_of_page.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;  EXPORTING&lt;br /&gt;    i_logo             = ''&lt;br /&gt;    it_list_commentary = gt_list_end_of_page&lt;br /&gt;    I_END_OF_LIST_GRID = 1. &lt;/p&gt;&lt;p&gt;ENDFORM.                    "END_OF_PAGE&lt;br /&gt;------------------------------------------&lt;br /&gt;FORM e06_comment_build&lt;br /&gt;USING e06_lt_end_of_page TYPE slis_t_listheader.&lt;br /&gt;DATA: ls_line  TYPE slis_listheader.&lt;br /&gt;DATA: yl_uname(60). &lt;/p&gt;&lt;p&gt; &lt; here u can concatenate system date and time to&lt;br /&gt;yl_uname&gt; &lt;/p&gt;&lt;p&gt;  CLEAR ls_line.&lt;br /&gt;ls_line-typ  = 'S'.&lt;br /&gt;ls_line-info = yl_uname.&lt;br /&gt;APPEND ls_line TO e06_lt_end_of_page. &lt;/p&gt;&lt;p&gt;endform.                    "e06_comment_build &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Suman Tyagi&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;hr width="100%"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;An Example:&lt;/span&gt;&lt;/b&gt; &lt;p&gt;REPORT ZALV_GRID. &lt;/p&gt;&lt;p&gt;TABLES :vbap.&lt;br /&gt;type-pools : slis.&lt;br /&gt;data i_events TYPE slis_t_event.&lt;br /&gt;DATA : my_alv TYPE REF TO cl_gui_alv_grid.&lt;br /&gt;TYPES : BEGIN OF itab,&lt;br /&gt;vbeln LIKE vbap-vbeln,&lt;br /&gt;arktx LIKE vbap-arktx,&lt;br /&gt;END OF itab.&lt;br /&gt;TYPES : itab1 TYPE TABLE OF itab.&lt;br /&gt;DATA : display TYPE itab1.&lt;br /&gt;DATA : fcat TYPE SLIS_T_FIELDCAT_ALV.&lt;br /&gt;DATA : wa LIKE LINE OF FCAT.&lt;br /&gt;DATA WA1 LIKE VBAP.&lt;br /&gt;DATA: container TYPE REF TO cl_gui_custom_container.&lt;br /&gt;data report_id like sy-repid. &lt;/p&gt;&lt;p&gt;SELECT-OPTIONS s_vbeln FOR vbap-vbeln.&lt;br /&gt;report_id = sy-repid. &lt;/p&gt;&lt;p&gt;SELECT * FROM vbap INTO CORRESPONDING FIELDS OF TABLE display WHERE&lt;br /&gt;vbeln IN s_vbeln. &lt;/p&gt;&lt;p&gt;wa-fieldname = 'VBELN'.&lt;br /&gt;wa-tabname = 'VBAP'.&lt;br /&gt;wa-key = 'X'.&lt;br /&gt;WA-HOTSPOT = 'X'.&lt;br /&gt;wa-text_fieldname = 'Doc no.'.&lt;br /&gt;APPEND wa TO fcat.&lt;br /&gt;CLEAR wa.&lt;br /&gt;wa-fieldname = 'ARKTX'.&lt;br /&gt;wa-tabname = 'VBAP'.&lt;br /&gt;wa-text_fieldname = 'Item Text'.&lt;br /&gt;APPEND wa TO fcat. &lt;/p&gt;&lt;p&gt;PERFORM f0650_build_event USING 'USER_COMMAND'&lt;br /&gt;'F0750_USER_COMMAND'. &lt;/p&gt;&lt;p&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY '&lt;br /&gt;EXPORTING &lt;/p&gt;&lt;p&gt;I_CALLBACK_PROGRAM = report_id &lt;/p&gt;&lt;p&gt;IT_FIELDCAT = FCAT&lt;br /&gt;IT_EVENTS = i_events&lt;br /&gt;TABLES&lt;br /&gt;t_outtab = DISPLAY&lt;br /&gt;. &lt;/p&gt;&lt;p&gt;FORM f0650_build_event USING value(w_c_event_name)&lt;br /&gt;value(w_c_event_form). &lt;/p&gt;&lt;p&gt;DATA: f0650_wa_event TYPE slis_alv_event. &lt;/p&gt;&lt;p&gt;CLEAR f0650_wa_event.&lt;br /&gt;f0650_wa_event-name = w_c_event_name.&lt;br /&gt;f0650_wa_event-form = w_c_event_form.&lt;br /&gt;APPEND f0650_wa_event TO i_events. &lt;/p&gt;&lt;p&gt;ENDFORM.&lt;br /&gt;FORM f0750_user_command USING w_ucomm TYPE sy-ucomm &lt;/p&gt;&lt;p&gt;w_selfield TYPE slis_selfield. &lt;/p&gt;&lt;p&gt;CASE w_ucomm.&lt;br /&gt;WHEN '&amp;amp;IC1'. &lt;/p&gt;&lt;p&gt;READ TABLE DISPLAY INTO WA1 INDEX w_selfield-tabindex.&lt;br /&gt;* MESSAGE E000 WITH&lt;br /&gt;* ' You have no authorization to view the report'.&lt;br /&gt;call transaction 'SE11'. &lt;/p&gt;&lt;p&gt;ENDCASE.&lt;br /&gt;ENDFORM. &lt;/p&gt;&lt;p&gt;*** End of Program &lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>Display a Secondary List using ALV Grid</title><link>http://freesapabapnotes.blogspot.com/2009/02/display-secondary-list-using-alv-grid.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:20:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-3191541518478909052</guid><description>&lt;p&gt;To display a secondary list when you click on one of the row items in an alv grid. The secondary list should also be an alv. &lt;/p&gt;&lt;p&gt;Try out this code. You will have to make a structure ZSTR same as the output internal table.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;REPORT ZTEST_REP1 . &lt;/p&gt;&lt;p&gt;TABLES : MARA,&lt;br /&gt;       BHDGD,&lt;br /&gt;       zstr. &lt;/p&gt;&lt;p&gt;TYPES:     BEGIN OF T_MARA,&lt;br /&gt;            MATNR LIKE MARA-MATNR,&lt;br /&gt;            ERNAM LIKE MARA-ERNAM,&lt;br /&gt;         END OF T_MARA.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CLASS LCL_EVENT_RECEIVER DEFINITION DEFERRED.&lt;br /&gt;*Constants for ALV Implementation&lt;br /&gt;CONSTANTS:  C_SET                        VALUE 'X',&lt;br /&gt;          C_RESET                      VALUE '0',&lt;br /&gt;          C_SAVE                       VALUE 'A',&lt;br /&gt;          C_EXIT(4)                    VALUE 'EXIT',&lt;br /&gt;          C_BACK(4)                    VALUE 'BACK',&lt;br /&gt;          C_CANC(4)                    VALUE 'CANC',&lt;br /&gt;          C_PGTOP(5)                   VALUE 'PGTOP',&lt;br /&gt;          C_PGUP(4)                    VALUE 'PGUP',&lt;br /&gt;          C_PGDN(4)                    VALUE 'PGDN',&lt;br /&gt;          C_PGEND(5)                   VALUE 'PGEND'.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DATA : I_MARA TYPE STANDARD TABLE OF T_MARA WITH HEADER LINE, &lt;/p&gt;&lt;p&gt;*      Internal table for fields catalouge&lt;br /&gt;     I_FIELDCAT TYPE LVC_T_FCAT WITH HEADER LINE,&lt;br /&gt;*       i_fieldcat2 type lvc_t_fcat with header line, &lt;/p&gt;&lt;p&gt;*      Internal table for cursor position&lt;br /&gt;     I_GT_SELROWS TYPE LVC_T_ROW . &lt;/p&gt;&lt;p&gt;DATA : WA_MARA LIKE I_MARA,&lt;br /&gt;     WA_GRIDROW LIKE LVC_S_ROW,&lt;br /&gt;     WA_GRIDCOL LIKE LVC_S_COL. &lt;/p&gt;&lt;p&gt;*Data for ALV Implementation.&lt;br /&gt;DATA:  OK_CODE       LIKE SY-UCOMM,&lt;br /&gt;     W_OK_CODE     LIKE SY-UCOMM,&lt;br /&gt;     W_CALL        TYPE I VALUE 1,&lt;br /&gt;     W_TAB         LIKE SY-UCOMM VALUE 'TAB1',&lt;br /&gt;     W_SAVE,                                 "For Parameter I_SAVE&lt;br /&gt;     W_VARIANT     TYPE DISVARIANT,          "For parameter IS_VARIANT&lt;br /&gt;     W_GRID        TYPE REF TO CL_GUI_ALV_GRID,&lt;br /&gt;*       w_grid1       type ref to cl_gui_alv_grid,&lt;br /&gt;     W_CONTAINER  TYPE REF TO CL_GUI_CUSTOM_CONTAINER, &lt;/p&gt;&lt;p&gt;*       w_container1  type ref to cl_gui_custom_container, &lt;/p&gt;&lt;p&gt;       W_REPID       LIKE SY-REPID,&lt;br /&gt;     W_GS_PRINT    TYPE LVC_S_PRNT,&lt;br /&gt;     W_GS_LAYOUT   TYPE LVC_S_LAYO,&lt;br /&gt;     W_EVENT_REC   TYPE REF TO LCL_EVENT_RECEIVER,&lt;br /&gt;     W_CONT_MAIN   TYPE SCRFNAME VALUE 'CCCONTAINER',&lt;br /&gt;     W_LN          TYPE I,                            "line number&lt;br /&gt;     W_INDEX       LIKE SY-TABIX,&lt;br /&gt;     W_FLAG,&lt;br /&gt;     W_TEMP_VAL    TYPE I. &lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* Definition:&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;CLASS LCL_EVENT_RECEIVER DEFINITION. &lt;/p&gt;&lt;p&gt;  PUBLIC SECTION.&lt;br /&gt;  METHODS:&lt;br /&gt;  HANDLE_TOP_OF_PAGE&lt;br /&gt;      FOR EVENT PRINT_TOP_OF_PAGE OF CL_GUI_ALV_GRID,&lt;br /&gt;  HANDLE_DOUBLE_CLICK&lt;br /&gt;      FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID&lt;br /&gt;              IMPORTING E_ROW E_COLUMN.&lt;br /&gt;ENDCLASS.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;*---------------------------------------------------------------------*&lt;br /&gt;* CLASS LCL_EVENT_RECEIVER IMPLEMENTATION&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.&lt;br /&gt;METHOD HANDLE_TOP_OF_PAGE.&lt;br /&gt;  PERFORM F_GET_HEADER.&lt;br /&gt;ENDMETHOD.                           "handle_top_of_page &lt;/p&gt;&lt;p&gt;  METHOD HANDLE_DOUBLE_CLICK. &lt;/p&gt;&lt;p&gt;*   The event DOUBLE_CLICK provides parameters for row and column&lt;br /&gt;*   of the click. We use row parameter to select a line of the&lt;br /&gt;*   corresponding internal table. &lt;/p&gt;&lt;p&gt;*   read selected row from internal table&lt;br /&gt;    READ TABLE I_MARA INDEX E_ROW-INDEX INTO WA_MARA.&lt;br /&gt;    IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;*        message i001. " Cursor position not correct.&lt;br /&gt;    ELSE.&lt;br /&gt;*       call dialog screen and display the details&lt;br /&gt;      call screen 200 starting at 10 5.&lt;br /&gt;    ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;  ENDMETHOD.                           "handle_double_click &lt;/p&gt;&lt;p&gt;ENDCLASS. &lt;/p&gt;&lt;p&gt;*-----------------------------------------------------------------------&lt;br /&gt;* start-of-selection.&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;START-OF-SELECTION. &lt;/p&gt;&lt;p&gt;SELECT MATNR ERNAM FROM MARA INTO TABLE I_MARA. &lt;/p&gt;&lt;p&gt;*----------------------------------------------------------------------&lt;br /&gt;* End-of-Selection.&lt;br /&gt;*----------------------------------------------------------------------&lt;br /&gt;END-OF-SELECTION. &lt;/p&gt;&lt;p&gt;* Start of ALV part.&lt;br /&gt;W_REPID = SY-REPID.&lt;br /&gt;W_VARIANT-REPORT = W_REPID.&lt;br /&gt;W_SAVE = C_SAVE.&lt;br /&gt;W_CONT_MAIN = W_CONT_MAIN.&lt;br /&gt;W_GS_LAYOUT = W_GS_LAYOUT.&lt;br /&gt;W_GS_PRINT  = W_GS_PRINT.&lt;br /&gt;I_FIELDCAT  = I_FIELDCAT.&lt;br /&gt;CALL SCREEN 100. &lt;/p&gt;&lt;p&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  f_get_header&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM F_GET_HEADER. &lt;/p&gt;&lt;p&gt;  DATA: L_LINE1 LIKE BHDGD-LINE1,&lt;br /&gt;      L_LINE2 LIKE BHDGD-LINE2.&lt;br /&gt;CONSTANTS LC_SPACE VALUE ' '.&lt;br /&gt;DATA: L_F1(7), L_F2(11), L_F3(9), L_F4(6), L_F5(11), L_F6(4), L_F7(8),&lt;br /&gt;      L_F8(4),L_F9(10), L_F11(11), L_F12(24), L_F13(4),&lt;br /&gt;      L_F14(3). &lt;/p&gt;&lt;p&gt;* take the values of line1 and line2 into two new variables, otherwise&lt;br /&gt;* after coming back to the first screen from the print preview, the&lt;br /&gt;* header shows the condensed lines &lt;/p&gt;&lt;p&gt;  L_LINE1 = BHDGD-LINE1.&lt;br /&gt;L_LINE2 = BHDGD-LINE2. &lt;/p&gt;&lt;p&gt;  CONDENSE L_LINE1.&lt;br /&gt;CONDENSE L_LINE2. &lt;/p&gt;&lt;p&gt;*split the lines to display the whole lines within the&lt;br /&gt;*stipulated report-width&lt;br /&gt;SPLIT L_LINE1 AT LC_SPACE INTO L_F1 L_F2 L_F3 L_F4 L_F5 L_F6 L_F7 L_F8&lt;br /&gt;                                  L_F9 . &lt;/p&gt;&lt;p&gt;  SPLIT L_LINE2 AT LC_SPACE INTO L_F11 L_F12 L_F13 L_F14.&lt;br /&gt;L_F14 = SY-PAGNO.&lt;br /&gt;  WRITE:/1 L_F1, 9 L_F2, 40 L_F3, 50 L_F4, 57 L_F5, 88 L_F6, 93 L_F7 ,&lt;br /&gt;         103 L_F8 , 108 L_F9 .&lt;br /&gt;  WRITE:/1 L_F11, 40 TEXT-012, 78 L_F12, 103 L_F13, 108 L_F14.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ENDFORM.                    " f_get_header&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  STATUS_0100  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE STATUS_0100 OUTPUT.&lt;br /&gt;SET PF-STATUS 'STAT'.&lt;br /&gt;SET TITLEBAR 'TITL'. &lt;/p&gt;&lt;p&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  USER_COMMAND_0100  INPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE USER_COMMAND_0100 INPUT.&lt;br /&gt;CASE SY-UCOMM .&lt;br /&gt;  WHEN C_EXIT OR C_BACK OR C_CANC.&lt;br /&gt;    IF NOT W_CONTAINER  IS INITIAL.&lt;br /&gt;      CALL METHOD W_CONTAINER-&gt;FREE.&lt;br /&gt;    ENDIF. &lt;/p&gt;&lt;p&gt;      LEAVE TO SCREEN 0. &lt;/p&gt;&lt;p&gt;    WHEN C_PGTOP.&lt;br /&gt;    WA_GRIDROW-INDEX = 1. &lt;/p&gt;&lt;p&gt;    WHEN C_PGUP.&lt;br /&gt;    IF WA_GRIDROW-INDEX &lt;= 15.&lt;br /&gt;      WA_GRIDROW-INDEX = 1.&lt;br /&gt;    ELSE.&lt;br /&gt;      WA_GRIDROW-INDEX = WA_GRIDROW-INDEX - 15.&lt;br /&gt;    ENDIF. &lt;/p&gt;&lt;p&gt;    WHEN C_PGDN.&lt;br /&gt;    PERFORM F_GET_NO_ROWS.&lt;br /&gt;    W_TEMP_VAL = W_LN - WA_GRIDROW-INDEX.&lt;br /&gt;    IF W_TEMP_VAL &lt; 15.&lt;br /&gt;      WA_GRIDROW-INDEX = W_LN.&lt;br /&gt;    ELSE.&lt;br /&gt;      WA_GRIDROW-INDEX = WA_GRIDROW-INDEX + 15.&lt;br /&gt;    ENDIF. &lt;/p&gt;&lt;p&gt;    WHEN C_PGEND.&lt;br /&gt;    PERFORM F_GET_NO_ROWS.&lt;br /&gt;    WA_GRIDROW-INDEX = W_LN. &lt;/p&gt;&lt;p&gt;  ENDCASE.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ENDMODULE.                 " USER_COMMAND_0100  INPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  f_get_no_rows&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM F_GET_NO_ROWS. &lt;/p&gt;&lt;p&gt;    DESCRIBE TABLE I_MARA  LINES W_LN. &lt;/p&gt;&lt;p&gt;ENDFORM.                    " f_get_no_rows&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  DISPLAY_0100  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE DISPLAY_0100 OUTPUT. &lt;/p&gt;&lt;p&gt;  IF NOT WA_GRIDROW IS INITIAL&lt;br /&gt;AND NOT WA_GRIDCOL IS INITIAL. &lt;/p&gt;&lt;p&gt;    CALL METHOD W_GRID-&gt;SET_SCROLL_INFO_VIA_ID&lt;br /&gt;    EXPORTING&lt;br /&gt;      IS_ROW_INFO = WA_GRIDROW&lt;br /&gt;      IS_COL_INFO = WA_GRIDCOL . &lt;/p&gt;&lt;p&gt;    CALL METHOD W_GRID-&gt;SET_CURRENT_CELL_VIA_ID&lt;br /&gt;    EXPORTING&lt;br /&gt;      IS_ROW_ID = WA_GRIDROW&lt;br /&gt;      IS_COLUMN_ID = WA_GRIDCOL . &lt;/p&gt;&lt;p&gt;  ENDIF. &lt;/p&gt;&lt;p&gt;  CALL METHOD W_GRID-&gt;GET_SCROLL_INFO_VIA_ID&lt;br /&gt;IMPORTING&lt;br /&gt;  ES_ROW_INFO = WA_GRIDROW&lt;br /&gt;  ES_COL_INFO = WA_GRIDCOL . &lt;/p&gt;&lt;p&gt;  CALL METHOD W_GRID-&gt;GET_SELECTED_ROWS&lt;br /&gt;  IMPORTING&lt;br /&gt;    ET_INDEX_ROWS = I_GT_SELROWS[]. &lt;/p&gt;&lt;p&gt;* Build the fieldcat according to structure&lt;br /&gt;CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'&lt;br /&gt;     EXPORTING&lt;br /&gt;          I_STRUCTURE_NAME = 'ZSTR'&lt;br /&gt;     CHANGING&lt;br /&gt;          CT_FIELDCAT      = I_FIELDCAT[]. &lt;/p&gt;&lt;p&gt;  LOOP AT I_FIELDCAT.&lt;br /&gt;  W_INDEX = SY-TABIX.&lt;br /&gt;  CASE I_FIELDCAT-FIELDNAME. &lt;/p&gt;&lt;p&gt;      WHEN 'MATNR'.&lt;br /&gt;      I_FIELDCAT-SCRTEXT_S = 'MATNR'.&lt;br /&gt;      I_FIELDCAT-KEY       = ' '.&lt;br /&gt;      I_FIELDCAT-COL_POS   = '1'. &lt;/p&gt;&lt;p&gt;      WHEN 'ERNAM'.&lt;br /&gt;      I_FIELDCAT-SCRTEXT_S = 'ERDAT'.&lt;br /&gt;      I_FIELDCAT-OUTPUTLEN = '18'.&lt;br /&gt;      I_FIELDCAT-COL_POS   = '2'.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    ENDCASE.&lt;br /&gt;  MODIFY I_FIELDCAT INDEX W_INDEX. &lt;/p&gt;&lt;p&gt;  ENDLOOP. &lt;/p&gt;&lt;p&gt;  READ TABLE I_FIELDCAT INDEX 1 . &lt;/p&gt;&lt;p&gt;  IF W_CALL = 1. &lt;/p&gt;&lt;p&gt;    PERFORM F_STD_HEADER. &lt;/p&gt;&lt;p&gt;    CALL METHOD W_GRID-&gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;br /&gt;                    EXPORTING&lt;br /&gt;                      IS_VARIANT                    = W_VARIANT&lt;br /&gt;                      I_SAVE                        = W_SAVE&lt;br /&gt;                    CHANGING&lt;br /&gt;                      IT_OUTTAB                     = I_MARA[]&lt;br /&gt;                      IT_FIELDCATALOG               = I_FIELDCAT[]&lt;br /&gt;                   EXCEPTIONS&lt;br /&gt;                     INVALID_PARAMETER_COMBINATION = 1&lt;br /&gt;                     PROGRAM_ERROR                 = 2&lt;br /&gt;                     OTHERS                        = 3. &lt;/p&gt;&lt;p&gt;    IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;    EXIT.&lt;br /&gt;  ENDIF. &lt;/p&gt;&lt;p&gt;    CREATE OBJECT W_EVENT_REC.&lt;br /&gt;  SET HANDLER W_EVENT_REC-&gt;HANDLE_TOP_OF_PAGE FOR W_GRID.&lt;br /&gt;  CREATE OBJECT W_EVENT_REC.&lt;br /&gt;  SET HANDLER W_EVENT_REC-&gt;HANDLE_DOUBLE_CLICK FOR W_GRID.&lt;br /&gt;  W_FLAG = C_RESET.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;    CALL METHOD CL_GUI_CONTROL=&gt;SET_FOCUS EXPORTING CONTROL = W_GRID.&lt;br /&gt;  W_CALL = 0.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ENDMODULE.                 " DISPLAY_0100  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  f_std_header&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM F_STD_HEADER. &lt;/p&gt;&lt;p&gt;ENDFORM.                    " f_std_header&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  DYNPRONR_CHECK_500  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE DYNPRONR_CHECK_500 OUTPUT.&lt;br /&gt;*  if w_dynpronr is initial.&lt;br /&gt;*    w_dynpronr = '0100'.&lt;br /&gt;*  endif. &lt;/p&gt;&lt;p&gt;  ENDMODULE.                 " DYNPRONR_CHECK_500  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  create_objects_0100  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE create_objects_0100 OUTPUT.&lt;br /&gt;check w_container is initial .&lt;br /&gt;create object w_container&lt;br /&gt;  exporting&lt;br /&gt;     container_name = 'CC'.&lt;br /&gt;create object w_grid&lt;br /&gt;  exporting&lt;br /&gt;     i_parent = w_container.&lt;br /&gt;w_flag = c_set.&lt;br /&gt;w_flag = w_flag.&lt;br /&gt;ENDMODULE.                 " create_objects_0100  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  STATUS_0200  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE STATUS_0200 OUTPUT.&lt;br /&gt;SET PF-STATUS 'ST20'.&lt;br /&gt;SET TITLEBAR '200'.&lt;br /&gt;zstr-matnr    = wa_mara-matnr.&lt;br /&gt;zstr-ernam    = wa_mara-ernam. &lt;/p&gt;&lt;p&gt;ENDMODULE.                 " STATUS_0200  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Module  USER_COMMAND_0200  INPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;MODULE USER_COMMAND_0200 INPUT.&lt;br /&gt;move ok_code to w_ok_code.&lt;br /&gt;clear ok_code.&lt;br /&gt;case w_ok_code.&lt;br /&gt;  when c_back or c_exit or c_canc.&lt;br /&gt;    leave to screen 0.&lt;br /&gt;endcase.&lt;br /&gt;clear w_ok_code.&lt;br /&gt;ENDMODULE.                 " USER_COMMAND_0200  INPUT &lt;/p&gt;&lt;p&gt;*-- End of Program &lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for Line Color in ALV Example</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-line-color-in-alv.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:19:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-5651037197933063632</guid><description>&lt;p&gt;An example of using linecolor (ALV). &lt;/p&gt;&lt;p&gt;Here you have a good example of coloring rows, columns and specific cells in alvs. It comes in an example of how to use hashed tables. &lt;/p&gt;&lt;pre&gt;For coloured rows and cols check gp_bymat&lt;br /&gt;for coloured specific rows uncheck gp_bymat.&lt;br /&gt;HTH.&lt;br /&gt;Horacio&lt;br /&gt;ps: code:&lt;br /&gt;report zuseofhashedtables.&lt;br /&gt;************************************************************************&lt;br /&gt;** Program: ZUseOfHashedTables                                        **&lt;br /&gt;************************************************************************&lt;br /&gt;** Author: Horacio Zapettini                                          **&lt;br /&gt;**                                                                    **&lt;br /&gt;** Versions: 4.6b - 4.6c                                              **&lt;br /&gt;************************************************************************&lt;br /&gt;** Notes:                                                             **&lt;br /&gt;**     this program shows how we can use hashed tables to improve     **&lt;br /&gt;**     the responce time.                                             **&lt;br /&gt;**     It shows,                                                      **&lt;br /&gt;**        1. how to declare hashed tables                             **&lt;br /&gt;**        2. a cache-like technique to improve access to master data  **&lt;br /&gt;**        3. how to collect data using hashed tables                  **&lt;br /&gt;**        4. how to avoid deletions of unwanted data                  **&lt;br /&gt;************************************************************************&lt;br /&gt;** Results: the test we run read about 31000 rows from mkpf, 150000   **&lt;br /&gt;**          rows from mseg, 500 rows from makt and 400 from lfa1.     **&lt;br /&gt;**          it filled ht_lst with 24500 rows and displayed them in    **&lt;br /&gt;**          alv grid format.                                          **&lt;br /&gt;**                                                                    **&lt;br /&gt;**          It took about 65 secodns to perform this task (first time **&lt;br /&gt;**          we run it when all the db buffers are empty.              **&lt;br /&gt;**                                                                    **&lt;br /&gt;**          The same program with standard tables needed 140 seconds  **&lt;br /&gt;**          to run with the same recordset and with buffers filled in **&lt;br /&gt;**                                                                    **&lt;br /&gt;**          A simmilar test over more than a million rows&lt;br /&gt;************************************************************************&lt;br /&gt;** Objetive: show a list that consists of  all the material movements **&lt;br /&gt;**          '101' - '901' for a certain range of dates in mkpf-budat. **&lt;br /&gt;** the columns to be displayed are:                                   **&lt;br /&gt;**          mkpf-budat,                                               **&lt;br /&gt;**          mkpf-mblnr,                                               **&lt;br /&gt;**          mseg-lifnr,                                               **&lt;br /&gt;**          lfa1-name1,                                               **&lt;br /&gt;**          mkpf-xblnr,                                               **&lt;br /&gt;**          mseg-zeile                                                **&lt;br /&gt;**          mseg-charg,                                               **&lt;br /&gt;**          mseg-matnr,                                               **&lt;br /&gt;**          makt-maktx,                                               **&lt;br /&gt;**          mseg-erfmg,                                               **&lt;br /&gt;**          mseg-erfme.                                               **&lt;br /&gt;** or show a sumary list by matnr - menge                             **&lt;br /&gt;**                                                                    **&lt;br /&gt;** You'll have to create a pf-status called vista -                   **&lt;br /&gt;** See form set_pf_status for details                                 **&lt;br /&gt;************************************************************************&lt;br /&gt;&lt;br /&gt;** tables used -&lt;br /&gt;tables: mkpf,&lt;br /&gt;      mseg,&lt;br /&gt;      lfa1,&lt;br /&gt;      makt.&lt;br /&gt;&lt;br /&gt;** global hashed tables used&lt;br /&gt;*&lt;br /&gt;data: begin of wa_mkpf, "header&lt;br /&gt;    mblnr like mkpf-mblnr,&lt;br /&gt;    mjahr like mkpf-mjahr,&lt;br /&gt;    budat like mkpf-budat,&lt;br /&gt;    xblnr like mkpf-xblnr,&lt;br /&gt;    end of wa_mkpf.&lt;br /&gt;data: ht_mkpf like hashed table of wa_mkpf&lt;br /&gt;    with unique key mblnr mjahr&lt;br /&gt;    with header line.&lt;br /&gt;data: st_mkpf like standard table of wa_mkpf&lt;br /&gt;    with header line.&lt;br /&gt;&lt;br /&gt;*&lt;br /&gt;data: begin of wa_mseg, " line items&lt;br /&gt;    mblnr like mseg-mblnr,&lt;br /&gt;    mjahr like mseg-mjahr,&lt;br /&gt;    zeile like mseg-zeile,&lt;br /&gt;    bwart like mseg-bwart,&lt;br /&gt;    charg like mseg-charg,&lt;br /&gt;    matnr like mseg-matnr,&lt;br /&gt;    lifnr like mseg-lifnr,&lt;br /&gt;    erfmg like mseg-erfmg,&lt;br /&gt;    erfme like mseg-erfme,&lt;br /&gt;    end of wa_mseg.&lt;br /&gt;data ht_mseg like hashed table of wa_mseg&lt;br /&gt;    with unique key mblnr mjahr zeile&lt;br /&gt;    with header line.&lt;br /&gt;data st_mseg like standard table of wa_mseg&lt;br /&gt;    with header line.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;** cache structure for lfa1 records&lt;br /&gt;data: begin of wa_lfa1,&lt;br /&gt;    lifnr like lfa1-lifnr,&lt;br /&gt;    name1 like lfa1-name1,&lt;br /&gt;    end of wa_lfa1.&lt;br /&gt;data ht_lfa1 like hashed table of wa_lfa1&lt;br /&gt;    with unique key lifnr&lt;br /&gt;    with header line.&lt;br /&gt;&lt;br /&gt;** cache structure for material related data&lt;br /&gt;data: begin of wa_material,&lt;br /&gt;    matnr like makt-matnr,&lt;br /&gt;    maktx like makt-maktx,&lt;br /&gt;    end of wa_material.&lt;br /&gt;data: ht_material like hashed table of wa_material&lt;br /&gt;      with unique key matnr&lt;br /&gt;      with header line.&lt;br /&gt;&lt;br /&gt;** result table&lt;br /&gt;data: begin of wa_lst, "&lt;br /&gt;    budat like mkpf-budat,&lt;br /&gt;    mblnr like mseg-mblnr,&lt;br /&gt;    lifnr like mseg-lifnr,&lt;br /&gt;    name1 like lfa1-name1, &lt;br /&gt;    xblnr like mkpf-xblnr,&lt;br /&gt;    zeile like mseg-zeile,&lt;br /&gt;    charg like mseg-charg,&lt;br /&gt;    matnr like mseg-matnr,&lt;br /&gt;    maktx like makt-maktx,&lt;br /&gt;    erfmg like mseg-erfmg,&lt;br /&gt;    erfme like mseg-erfme,&lt;br /&gt;    mjahr like mseg-mjahr,&lt;br /&gt;    end of wa_lst.&lt;br /&gt;&lt;br /&gt;data: ht_lst like hashed table of wa_lst&lt;br /&gt;      with unique key mblnr mjahr zeile&lt;br /&gt;      with header line.&lt;br /&gt;&lt;br /&gt;data: begin of wa_lst1, " sumary by material&lt;br /&gt;    matnr like mseg-matnr,&lt;br /&gt;    maktx like makt-maktx,&lt;br /&gt;    erfmg like mseg-erfmg,&lt;br /&gt;    erfme like mseg-erfme,&lt;br /&gt;    color_line(4) TYPE c,           " Line color&lt;br /&gt;    color_cell    TYPE lvc_t_scol,  " Cell color&lt;br /&gt;    celltab type LVC_T_STYL,&lt;br /&gt;    end of wa_lst1.&lt;br /&gt;&lt;br /&gt;data: ht_lst1 like hashed table of wa_lst1&lt;br /&gt;      with unique key matnr&lt;br /&gt;      with header line.&lt;br /&gt;&lt;br /&gt;** structures for alv grid display.&lt;br /&gt;** itabs&lt;br /&gt;type-pools: slis.&lt;br /&gt;&lt;br /&gt;data: it_lst            like standard table of wa_lst with header line,&lt;br /&gt;    it_fieldcat_lst   type slis_t_fieldcat_alv with header line,&lt;br /&gt;    it_sort_lst       type slis_t_sortinfo_alv,&lt;br /&gt;    it_lst1           like standard table of wa_lst1 with header line,&lt;br /&gt;    it_fieldcat_lst1  type slis_t_fieldcat_alv with header line,&lt;br /&gt;    it_sort_lst1      type slis_t_sortinfo_alv.&lt;br /&gt;** structures&lt;br /&gt;data: wa_sort         type slis_sortinfo_alv,&lt;br /&gt;    ls_layout       type slis_layout_alv.&lt;br /&gt;** color management.&lt;br /&gt;DATA  : wa_color    TYPE lvc_s_scol.&lt;br /&gt;* Internal table for color management.&lt;br /&gt;DATA : it_color    TYPE TABLE          OF lvc_s_scol.&lt;br /&gt;&lt;br /&gt;* itab for input enabling.&lt;br /&gt;DATA: lt_celltab TYPE lvc_t_styl. "&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;** global varialbes&lt;br /&gt;&lt;br /&gt;data: g_lines type i.&lt;br /&gt;&lt;br /&gt;data: g_repid like sy-repid,&lt;br /&gt;    ok_code       like sy-ucomm.&lt;br /&gt;&lt;br /&gt;** selection-screen&lt;br /&gt;&lt;br /&gt;"text: Dates:&lt;br /&gt;select-options: so_budat for mkpf-budat default sy-datum.&lt;br /&gt;"text: Material numbers.&lt;br /&gt;select-options: so_matnr for mseg-matnr.&lt;br /&gt;selection-screen uline.&lt;br /&gt;selection-screen skip 1.&lt;br /&gt;"Text: show summary by material.&lt;br /&gt;parameters: gp_bymat as checkbox default ''.&lt;br /&gt;parameters: gp_hier  as checkbox default 'X'.&lt;br /&gt;start-of-selection.&lt;br /&gt;perform get_data.&lt;br /&gt;perform show_data.&lt;br /&gt;&lt;br /&gt;end-of-selection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM get_data                                                 *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;form get_data.&lt;br /&gt;      select mblnr mjahr budat xblnr&lt;br /&gt;          into table ht_mkpf&lt;br /&gt;         from mkpf&lt;br /&gt;        where budat in so_budat. " make use of std index.&lt;br /&gt;** have we retrieved data from mkpf?&lt;br /&gt;describe table ht_mkpf lines g_lines.&lt;br /&gt;if g_lines &gt; 0.&lt;br /&gt;** if true then retrieve all related records from mseg.&lt;br /&gt;** Doing this way we make sure that the access is by primary key&lt;br /&gt;** of mseg.&lt;br /&gt;** The reason is that is faster to filter them in memory&lt;br /&gt;** than to allow the db server to do it.&lt;br /&gt;  select mblnr mjahr zeile bwart charg&lt;br /&gt;           matnr lifnr erfmg erfme&lt;br /&gt;    into table ht_mseg&lt;br /&gt;    from mseg&lt;br /&gt;      for all entries in ht_mkpf&lt;br /&gt;   where mblnr = ht_mkpf-mblnr&lt;br /&gt;     and mjahr = ht_mkpf-mjahr.&lt;br /&gt;endif.&lt;br /&gt;   &lt;br /&gt;** fill t_lst or t_lst1 according to user's choice.&lt;br /&gt;if gp_bymat = ' '.&lt;br /&gt;  perform fill_ht_lst.&lt;br /&gt;else.&lt;br /&gt;  perform fill_ht_lst1.&lt;br /&gt;endif.&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;form fill_ht_lst.&lt;br /&gt;refresh ht_lst.&lt;br /&gt;** Example: how to discard unwanted data in an efficient way.&lt;br /&gt;loop at ht_mseg.&lt;br /&gt;*   filter unwanted data&lt;br /&gt;  check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.&lt;br /&gt;  check ht_mseg-matnr in so_matnr.&lt;br /&gt;*   read header line.&lt;br /&gt;  read table ht_mkpf with table key mblnr = ht_mseg-mblnr&lt;br /&gt;  mjahr = ht_mseg-mjahr.&lt;br /&gt;  clear ht_lst.&lt;br /&gt;*  * note : this may be faster if you specify field by field.&lt;br /&gt;  move-corresponding ht_mkpf to ht_lst.&lt;br /&gt;  move-corresponding ht_mseg to ht_lst.&lt;br /&gt;&lt;br /&gt;  perform read_lfa1 using ht_mseg-lifnr changing ht_lst-name1.&lt;br /&gt;  perform read_material using ht_mseg-matnr changing ht_lst-maktx.&lt;br /&gt;  insert table ht_lst.&lt;br /&gt;endloop.&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;form fill_ht_lst1.&lt;br /&gt;data: colorear.&lt;br /&gt;refresh ht_lst1.&lt;br /&gt;** Example: how to discard unwanted data in an efficient way.&lt;br /&gt;**          hot to simulate a collect in a faster way&lt;br /&gt;loop at ht_mseg.&lt;br /&gt;*   filter unwanted data&lt;br /&gt;  check ht_mseg-bwart = '101' or ht_mseg-bwart = '901'.&lt;br /&gt;  check ht_mseg-matnr in so_matnr.&lt;br /&gt;*  * note : this may be faster if you specify field by field.&lt;br /&gt;&lt;br /&gt;  read table ht_lst1 with table key matnr = ht_mseg-matnr&lt;br /&gt;  transporting erfmg.&lt;br /&gt;  if sy-subrc &lt;&gt; 0. " if matnr doesn't exist in sumary table&lt;br /&gt;  " insert a new record&lt;br /&gt;    clear ht_lst1.&lt;br /&gt;    ht_lst1-matnr = ht_mseg-matnr.&lt;br /&gt;    perform read_material using ht_mseg-matnr changing ht_lst1-maktx.&lt;br /&gt;    ht_lst1-erfmg = ht_mseg-erfmg.&lt;br /&gt;    ht_lst1-erfme = ht_mseg-erfme.&lt;br /&gt;    if colorear = ''.&lt;br /&gt;      colorear = 'X'.&lt;br /&gt;      refresh it_color.&lt;br /&gt;      ht_lst1-color_cell[] = it_color[].&lt;br /&gt;      MOVE 'C410' TO ht_lst1-color_line.&lt;br /&gt;    else.&lt;br /&gt;      colorear = ' '.&lt;br /&gt;      refresh it_color. clear it_color.&lt;br /&gt;      MOVE 'MATNR' TO wa_color-fname.&lt;br /&gt;      MOVE '6'         TO wa_color-color-col.&lt;br /&gt;      MOVE '1'         TO wa_color-color-int.&lt;br /&gt;      MOVE '1'         TO wa_color-color-inv.&lt;br /&gt;      APPEND wa_color TO it_color.&lt;br /&gt;      MOVE 'MAKTX' TO wa_color-fname.&lt;br /&gt;      MOVE '3'         TO wa_color-color-col.&lt;br /&gt;      MOVE '1'         TO wa_color-color-int.&lt;br /&gt;      MOVE '1'         TO wa_color-color-inv.&lt;br /&gt;      APPEND wa_color TO it_color.&lt;br /&gt;&lt;br /&gt;      MOVE 'ERFMG' TO wa_color-fname.&lt;br /&gt;      MOVE '5'         TO wa_color-color-col.&lt;br /&gt;      MOVE '1'         TO wa_color-color-int.&lt;br /&gt;      MOVE '1'         TO wa_color-color-inv.&lt;br /&gt;&lt;br /&gt;      APPEND wa_color TO it_color.&lt;br /&gt;      ht_lst1-color_cell[] = it_color[].&lt;br /&gt;&lt;br /&gt;      clear ht_lst1-color_line.&lt;br /&gt;&lt;br /&gt;    endif.&lt;br /&gt;&lt;br /&gt;    insert table ht_lst1.&lt;br /&gt;  else." a record was found.&lt;br /&gt;  " collect erfmg.  To do so, fill in the unique key and add&lt;br /&gt;  " the numeric fields.&lt;br /&gt;    ht_lst1-matnr = ht_mseg-matnr.&lt;br /&gt;    add ht_mseg-erfmg to ht_lst1-erfmg.&lt;br /&gt;    modify table ht_lst1 transporting erfmg.&lt;br /&gt;  endif.&lt;br /&gt;endloop.&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;** implementation of cache for lfa1.&lt;br /&gt;form read_lfa1 using p_lifnr changing p_name1.&lt;br /&gt;      read table ht_lfa1 with table key lifnr = p_lifnr&lt;br /&gt;      transporting name1.&lt;br /&gt;if sy-subrc &lt;&gt; 0.&lt;br /&gt;  clear ht_lfa1.&lt;br /&gt;  ht_lfa1-lifnr = p_lifnr.&lt;br /&gt;  select single name1&lt;br /&gt;     into ht_lfa1-name1&lt;br /&gt;    from lfa1&lt;br /&gt;  where lifnr = p_lifnr.&lt;br /&gt;  if sy-subrc &lt;&gt; 0. ht_lfa1-name1 = 'n/a in lfa1'. endif.&lt;br /&gt;  insert table ht_lfa1.&lt;br /&gt;endif.&lt;br /&gt;p_name1 = ht_lfa1-name1.&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;** implementation of cache for material data&lt;br /&gt;form read_material using p_matnr changing p_maktx.&lt;br /&gt;read table ht_material with table key matnr = p_matnr&lt;br /&gt;transporting maktx.&lt;br /&gt;if sy-subrc &lt;&gt; 0.&lt;br /&gt;  ht_material-matnr = p_matnr.&lt;br /&gt;  select single maktx into  ht_material-maktx&lt;br /&gt;    from makt&lt;br /&gt;   where spras = sy-langu&lt;br /&gt;     and matnr = p_matnr.&lt;br /&gt;  if sy-subrc &lt;&gt; 0. ht_material-maktx = 'n/a in makt'. endif.&lt;br /&gt;  insert table ht_material.&lt;br /&gt;endif.&lt;br /&gt;p_maktx = ht_material-maktx.&lt;br /&gt;endform.&lt;br /&gt;form show_data.&lt;br /&gt;if gp_hier = 'X'. "no anda.&lt;br /&gt;*    perform show_hierarchicalALV.&lt;br /&gt;else.&lt;br /&gt;  if gp_bymat = ' '.&lt;br /&gt;    perform show_ht_lst.&lt;br /&gt;  else.&lt;br /&gt;    perform show_ht_lst1.&lt;br /&gt;  endif.&lt;br /&gt;endif.&lt;br /&gt;endform.&lt;br /&gt;form show_hierarchicalALV.&lt;br /&gt;st_mkpf[] = ht_mkpf[].&lt;br /&gt;st_mseg[] = ht_mseg[].&lt;br /&gt;call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'&lt;br /&gt;*  exporting&lt;br /&gt;*   I_INTERFACE_CHECK              = ' '&lt;br /&gt;*   I_CALLBACK_PROGRAM             =&lt;br /&gt;*   I_CALLBACK_PF_STATUS_SET       = ' '&lt;br /&gt;*   I_CALLBACK_USER_COMMAND        = ' '&lt;br /&gt;*   IS_LAYOUT                      =&lt;br /&gt;*   IT_FIELDCAT                    =&lt;br /&gt;*   IT_EXCLUDING                   =&lt;br /&gt;*   IT_SPECIAL_GROUPS              =&lt;br /&gt;*   IT_SORT                        =&lt;br /&gt;*   IT_FILTER                      =&lt;br /&gt;*   IS_SEL_HIDE                    =&lt;br /&gt;*   I_SCREEN_START_COLUMN          = 0&lt;br /&gt;*   I_SCREEN_START_LINE            = 0&lt;br /&gt;*   I_SCREEN_END_COLUMN            = 0&lt;br /&gt;*   I_SCREEN_END_LINE              = 0&lt;br /&gt;*   I_DEFAULT                      = 'X'&lt;br /&gt;*   I_SAVE                         = ' '&lt;br /&gt;*   IS_VARIANT                     =&lt;br /&gt;*   IT_EVENTS                      =&lt;br /&gt;*   IT_EVENT_EXIT                  =&lt;br /&gt;*    i_tabname_header               =&lt;br /&gt;*    i_tabname_item                 =&lt;br /&gt;*   I_STRUCTURE_NAME_HEADER        =&lt;br /&gt;*   I_STRUCTURE_NAME_ITEM          =&lt;br /&gt;*    is_keyinfo                     =&lt;br /&gt;*   IS_PRINT                       =&lt;br /&gt;*   IS_REPREP_ID                   =&lt;br /&gt;*   I_BUFFER_ACTIVE                =&lt;br /&gt;*   I_BYPASSING_BUFFER             =&lt;br /&gt;* IMPORTING&lt;br /&gt;*   E_EXIT_CAUSED_BY_CALLER        =&lt;br /&gt;*   ES_EXIT_CAUSED_BY_USER         =&lt;br /&gt;tables&lt;br /&gt;  t_outtab_header                = st_mkpf&lt;br /&gt;  t_outtab_item                  = st_mseg&lt;br /&gt;* EXCEPTIONS&lt;br /&gt;*   PROGRAM_ERROR                  = 1&lt;br /&gt;*   OTHERS                         = 2&lt;br /&gt;        .&lt;br /&gt;if sy-subrc &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;endif.&lt;br /&gt;&lt;br /&gt;endform.&lt;br /&gt;form show_ht_lst.&lt;br /&gt;"needed because the FM can't use a hashed table.&lt;br /&gt;it_lst[] = ht_lst[].&lt;br /&gt;&lt;br /&gt;perform fill_layout using 'full display'&lt;br /&gt;                     changing ls_layout.&lt;br /&gt;&lt;br /&gt;perform fill_columns_lst.&lt;br /&gt;*  perform sort_lst.&lt;br /&gt;g_repid = sy-repid.&lt;br /&gt;call function 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;     exporting&lt;br /&gt;          i_callback_program       = g_repid&lt;br /&gt;          i_callback_pf_status_set = 'SET_PF_STATUS'&lt;br /&gt;          is_layout                = ls_layout&lt;br /&gt;          it_fieldcat              = it_fieldcat_lst[]&lt;br /&gt;*            it_sort                  = it_sort_lst&lt;br /&gt;     tables&lt;br /&gt;          t_outtab                 = it_lst&lt;br /&gt;     exceptions&lt;br /&gt;          program_error            = 1&lt;br /&gt;          others                   = 2.&lt;br /&gt;&lt;br /&gt;endform.&lt;br /&gt;form show_ht_lst1.&lt;br /&gt;"needed because the FM can't use a hashed table.&lt;br /&gt;it_lst1[] = ht_lst1[].&lt;br /&gt;&lt;br /&gt;perform fill_layout using 'Sumary by matnr'&lt;br /&gt;                     changing ls_layout.&lt;br /&gt;&lt;br /&gt;perform fill_columns_lst1.&lt;br /&gt;*  perform sort_lst.&lt;br /&gt;g_repid = sy-repid.&lt;br /&gt;call function 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;     exporting&lt;br /&gt;          i_callback_program       = g_repid&lt;br /&gt;          i_callback_pf_status_set = 'SET_PF_STATUS'&lt;br /&gt;          is_layout                = ls_layout&lt;br /&gt;          it_fieldcat              = it_fieldcat_lst1[]&lt;br /&gt;*            it_sort                  = it_sort_lst&lt;br /&gt;     tables&lt;br /&gt;          t_outtab                 = it_lst1&lt;br /&gt;     exceptions&lt;br /&gt;          program_error            = 1&lt;br /&gt;          others                   = 2.&lt;br /&gt;&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;form fill_layout using p_window_titlebar&lt;br /&gt;             changing cs_layo type slis_layout_alv.&lt;br /&gt;clear cs_layo.&lt;br /&gt;cs_layo-window_titlebar        = p_window_titlebar.&lt;br /&gt;cs_layo-edit                   = 'X'.&lt;br /&gt;cs_layo-edit_mode              = space.&lt;br /&gt;MOVE 'COLOR_LINE' TO cs_layo-info_fieldname.&lt;br /&gt;&lt;br /&gt;* Field that identify cell color in inetrnal table&lt;br /&gt;MOVE 'COLOR_CELL' TO cs_layo-coltab_fieldname.&lt;br /&gt;*  move 'CELLTAB' TO cs_layo-stylefname.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;endform.                    " armar_layout_stock&lt;br /&gt;&lt;br /&gt;form set_pf_status using rt_extab type slis_t_extab.&lt;br /&gt;** create a new status&lt;br /&gt;** and then select extras -&gt; adjust template -&gt; listviewer&lt;br /&gt;set pf-status 'VISTA'.&lt;br /&gt;endform.        "set_pf_status&lt;br /&gt;define add_lst.&lt;br /&gt;clear it_fieldcat_lst.&lt;br /&gt;it_fieldcat_lst-fieldname     = &amp;amp;1.&lt;br /&gt;it_fieldcat_lst-outputlen     = &amp;amp;2.&lt;br /&gt;it_fieldcat_lst-ddictxt       = 'L'.&lt;br /&gt;it_fieldcat_lst-seltext_l       = &amp;amp;1.&lt;br /&gt;it_fieldcat_lst-seltext_m       = &amp;amp;1.&lt;br /&gt;it_fieldcat_lst-seltext_m       = &amp;amp;1.&lt;br /&gt;if &amp;amp;1 = 'MATNR'.&lt;br /&gt;  it_fieldcat_lst-emphasize = 'C111'.&lt;br /&gt;endif.&lt;br /&gt;append it_fieldcat_lst.&lt;br /&gt;end-of-definition.&lt;br /&gt;define add_lst1.&lt;br /&gt;clear it_fieldcat_lst.&lt;br /&gt;it_fieldcat_lst1-fieldname     = &amp;amp;1.&lt;br /&gt;it_fieldcat_lst1-outputlen     = &amp;amp;2.&lt;br /&gt;it_fieldcat_lst1-ddictxt       = 'L'.&lt;br /&gt;it_fieldcat_lst1-seltext_l       = &amp;amp;1.&lt;br /&gt;it_fieldcat_lst1-seltext_m       = &amp;amp;1.&lt;br /&gt;it_fieldcat_lst1-seltext_m       = &amp;amp;1.&lt;br /&gt;append it_fieldcat_lst1.&lt;br /&gt;end-of-definition.&lt;br /&gt;&lt;br /&gt;form fill_columns_lst.&lt;br /&gt;* set columns for output.&lt;br /&gt;&lt;br /&gt;refresh it_fieldcat_lst.&lt;br /&gt;*&lt;br /&gt;add_lst 'BUDAT' 10.&lt;br /&gt;add_lst   'MBLNR' 10.&lt;br /&gt;add_lst  'LIFNR' 10.&lt;br /&gt;add_lst  'NAME1' 35.&lt;br /&gt;add_lst  'XBLNR' 15.&lt;br /&gt;add_lst    'ZEILE' 5.&lt;br /&gt;add_lst    'CHARG' 10.&lt;br /&gt;add_lst   'MATNR' 18.&lt;br /&gt;add_lst   'MAKTX' 30.&lt;br /&gt;add_lst   'ERFMG' 17.&lt;br /&gt;add_lst   'ERFME' 5.&lt;br /&gt;add_lst   'MJAHR' 4.&lt;br /&gt;endform.&lt;br /&gt;form fill_columns_lst1.&lt;br /&gt;* set columns for output.&lt;br /&gt;&lt;br /&gt;refresh it_fieldcat_lst1.&lt;br /&gt;&lt;br /&gt;add_lst1 'MATNR' 18.&lt;br /&gt;add_lst1 'MAKTX' 30.&lt;br /&gt;add_lst1 'ERFMG' 17.&lt;br /&gt;add_lst1 'ERFME' 5..&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;Horacio Zapettini&lt;br /&gt;&lt;br /&gt;--------------------------------&lt;br /&gt;Program to Calculate FI Opening Balance&lt;br /&gt;&lt;br /&gt;How to find the Opening balance for a given period in FI Module for a Particular GL A/c.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I was calculated opening balance, code is below maybe it will be helpful.&lt;br /&gt;&lt;br /&gt;*find period.&lt;br /&gt;CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'&lt;br /&gt;  EXPORTING&lt;br /&gt;    i_date         = s_budat-low&lt;br /&gt;    i_periv        = i_tab-periv                          "'K4'&lt;br /&gt;  IMPORTING&lt;br /&gt;    e_buper        = v_donem&lt;br /&gt;    e_gjahr        = v_gjahr&lt;br /&gt;  EXCEPTIONS&lt;br /&gt;    input_false    = 1&lt;br /&gt;    t009_notfound  = 2&lt;br /&gt;    t009b_notfound = 3&lt;br /&gt;    OTHERS         = 4.&lt;br /&gt;*calc opening balance hesabý&lt;br /&gt;SELECT * FROM knc1 WHERE kunnr = i_tab-kunnr&lt;br /&gt;                   AND bukrs = i_tab-bukrs " s_bukrs&lt;br /&gt;                   AND gjahr EQ v_gjahr.&lt;br /&gt;&lt;br /&gt;  v_dnm = v_donem.&lt;br /&gt;* opening balance first calc &gt; old year ,&lt;br /&gt;  WHILE v_dnm &gt; 1.&lt;br /&gt;    v_dnm = v_dnm - 1.&lt;br /&gt;    CONCATENATE 'knc1-um' v_dnm 's' INTO v_field_name_borc.&lt;br /&gt;    CONCATENATE 'knc1-um' v_dnm 'h' INTO v_field_name_alacak.&lt;br /&gt;    ASSIGN (v_field_name_borc) TO &lt;fs1&gt; .&lt;br /&gt;    ASSIGN (v_field_name_alacak) TO &lt;fs2&gt; .&lt;br /&gt;    i_tab-dmbtr_s = i_tab-dmbtr_s + ( &lt;fs1&gt;  ). " borc&lt;br /&gt;    i_tab-dmbtr_h = i_tab-dmbtr_h + ( &lt;fs2&gt;  ). " borc&lt;br /&gt;  ENDWHILE.&lt;br /&gt;&lt;br /&gt;*opening balance last calc&gt; old&lt;br /&gt;* add days which is from selected date-low month&lt;br /&gt;  IF v_donem &gt; 1.&lt;br /&gt;    v_dnm = v_donem - 1.&lt;br /&gt;  ELSE.&lt;br /&gt;    v_dnm = v_donem.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  SELECT SINGLE * FROM t009b WHERE periv = i_tab-periv    "'K4'&lt;br /&gt;                               AND bdatj = s_budat-low+0(4)&lt;br /&gt;                               AND poper = v_dnm.&lt;br /&gt;&lt;br /&gt;  t009b-butag = t009b-butag + 1.&lt;br /&gt;  IF s_budat-low+6(2) NE t009b-butag.&lt;br /&gt;    v_date_high = s_budat-low - 1.&lt;br /&gt;    IF v_donem = 1.&lt;br /&gt;      v_date_low = s_budat-low.&lt;br /&gt;      v_date_low+4(4)  = '0101'.&lt;br /&gt;    ELSE.&lt;br /&gt;      CONCATENATE t009b-bdatj t009b-bumon t009b-butag INTO&lt;br /&gt;      v_date_low.&lt;br /&gt;    ENDIF.&lt;br /&gt;    SELECT *  FROM bsad WHERE bukrs EQ i_tab-bukrs "IN s_bukrs&lt;br /&gt;                          AND kunnr = i_tab-kunnr&lt;br /&gt;                          AND budat BETWEEN v_date_low AND&lt;br /&gt;                          v_date_high&lt;br /&gt;                          AND umskz = space&lt;br /&gt;                          AND blart IN s_blart.&lt;br /&gt;&lt;br /&gt;      IF bsad-shkzg = 'S'.&lt;br /&gt;        i_tab-dmbtr_s = i_tab-dmbtr_s + ( bsad-dmbtr ).&lt;br /&gt;      ELSEIF bsad-shkzg = 'H'.&lt;br /&gt;        i_tab-dmbtr_h = i_tab-dmbtr_h + ( bsad-dmbtr   ).&lt;br /&gt;      ENDIF.&lt;br /&gt;    ENDSELECT.&lt;br /&gt;    SELECT *  FROM bsid WHERE bukrs EQ i_tab-bukrs "IN s_bukrs&lt;br /&gt;                         AND kunnr = i_tab-kunnr&lt;br /&gt;                         AND budat BETWEEN v_date_low AND&lt;br /&gt;                         v_date_high&lt;br /&gt;                         AND umskz = space&lt;br /&gt;                         AND blart IN s_blart.&lt;br /&gt;*                              AND gsber IN gsber.&lt;br /&gt;      IF bsid-shkzg = 'S'.&lt;br /&gt;        i_tab-dmbtr_s = i_tab-dmbtr_s + ( bsid-dmbtr   ).&lt;br /&gt;      ELSEIF bsid-shkzg = 'H'.&lt;br /&gt;        i_tab-dmbtr_h = i_tab-dmbtr_h + ( bsid-dmbtr   ).&lt;br /&gt;      ENDIF.&lt;br /&gt;    ENDSELECT.&lt;br /&gt;  ENDIF.&lt;br /&gt;  "opening balance ( þirket bazlý )z1 degeri&lt;br /&gt; i_tab-z1 = i_tab-z1 + ( knc1-umsav + i_tab-dmbtr_s - i_tab-dmbtr_h ).&lt;br /&gt;* for israel&lt;br /&gt;  i_tab-dmbtril_s = i_tab-dmbtr_s .&lt;br /&gt;  i_tab-dmbtril_h = i_tab-dmbtr_h .&lt;br /&gt;ENDSELECT.&lt;/fs2&gt;&lt;/fs1&gt;&lt;/fs2&gt;&lt;/fs1&gt;&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for How to make ALV header like this?</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-how-to-make-alv.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:18:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-5863737492101521060</guid><description>&lt;p&gt;Header long text 1 Header long text 2 Header long text 3&lt;br /&gt;Col_1 Col_2 Col_3 Col_4 Col_5 Col_6 Col_7 Col_8 Col_9&lt;br /&gt;----------------------- Cell conents -------------------------------&lt;br /&gt;----------------------- Cell conents -------------------------------&lt;br /&gt;----------------------- Cell conents -------------------------------&lt;br /&gt;----------------------- Cell conents -------------------------------&lt;br /&gt;----------------------- Cell conents -------------------------------  &lt;/p&gt;&lt;p&gt;You could try:&lt;br /&gt;data: gt_list_top_of_page type slis_t_listheader. " Top of page text.  &lt;/p&gt;&lt;p&gt;Initialization.&lt;br /&gt;perform comment_build using gt_list_top_of_page[].  &lt;/p&gt;&lt;p&gt;form top_of_page.&lt;br /&gt;* Note to self: the gif must be loaded into transaction &lt;b&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;OAOR&lt;/span&gt;&lt;/b&gt; with&lt;br /&gt;* classname 'PICTURES' AND TYPE 'OT' to work with ALV GRID Functions.&lt;br /&gt;* I Loaded NOVALOGO2 into system.&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;   exporting&lt;br /&gt;* I_LOGO = 'NOVALOGO2'&lt;br /&gt;* i_logo = 'ENJOYSAP_LOGO'&lt;br /&gt;       it_list_commentary = gt_list_top_of_page.  &lt;/p&gt;&lt;p&gt;endform. " TOP_OF_PAGE  &lt;/p&gt;&lt;p&gt;form comment_build using e04_lt_top_of_page type slis_t_listheader.&lt;br /&gt;data: ls_line type slis_listheader.&lt;br /&gt;    clear ls_line.&lt;br /&gt;    ls_line-typ = 'A'.&lt;br /&gt;    ls_line-info = 'Special'(001).&lt;br /&gt;    fgrant = xgrant.&lt;br /&gt;    concatenate ls_line-info fgrant&lt;br /&gt;    'Stock Option Report to the board'(002)&lt;br /&gt;           into ls_line-info separated by space.&lt;br /&gt;                  condense ls_line-info.&lt;br /&gt;    append ls_line to e04_lt_top_of_page.  &lt;/p&gt;&lt;p&gt;endform. " COMMENT_BUILD &lt;/p&gt;&lt;p&gt;&lt;b&gt;How to implement a footer in alv grid programming? What is the procedure and the code regarding to create a footer?&lt;/b&gt; &lt;/p&gt;&lt;p&gt;Use following syntex for footer print in alv: &lt;/p&gt;&lt;p&gt;* For End of Page &lt;/p&gt;&lt;p&gt;form END_OF_PAGE. &lt;/p&gt;&lt;p&gt;  data: listwidth type i, &lt;/p&gt;&lt;p&gt;        ld_pagepos(10) type c, &lt;/p&gt;&lt;p&gt;        ld_page(10)    type c. &lt;/p&gt;&lt;p&gt;  write: sy-uline(50).&lt;br /&gt;skip.&lt;br /&gt;write:/40 'Page:', sy-pagno . &lt;/p&gt;&lt;p&gt;endform. &lt;/p&gt;&lt;p&gt;*  For End of Report &lt;/p&gt;&lt;p&gt;form END_OF_LIST. &lt;/p&gt;&lt;p&gt;  data: listwidth type i, &lt;/p&gt;&lt;p&gt;        ld_pagepos(10) type c,&lt;br /&gt;      ld_page(10)    type c.&lt;br /&gt;skip.&lt;br /&gt;write:/40 'Page:', sy-pagno . &lt;/p&gt;&lt;p&gt;endform. &lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for Use Simple ALV Functions to Make Reporting Easy</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-use-simple-alv.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:18:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-3492696631750140610</guid><description>&lt;pre&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Report  ZBC_ALV_EXAMPLE                                             *&lt;br /&gt;*&amp;amp;                                                                     *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* This program explains how we can use simple ALV functions to make    *&lt;br /&gt;* reporting easy and looks pretty&lt;br /&gt;************************************************************************&lt;br /&gt;* Programmer        : Venkat Reddy           ETA                       *&lt;br /&gt;* Date              : 10/02/04                                         *&lt;br /&gt;************************************************************************&lt;br /&gt;* Maintenance Log                                                      *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Changed By      Date         Transport#   Description                *&lt;br /&gt;*------------ ---------------------------------------------------------*&lt;br /&gt;* Venkat Reddy    10/02/04     EGD913575    Changed program to avoid   *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;REPORT  ZBC_ALV_EXAMPLE.&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                 D-A-T-A  D-E-C-L-A-R-A-T-I-O-N-S                     *&lt;br /&gt;************************************************************************&lt;br /&gt;tables:  sflight.&lt;br /&gt;&lt;br /&gt;**-- TYPE-POOLS Definition&lt;br /&gt;**Includes the types and constants of a type group. Since the types and&lt;br /&gt;*constants specified in a type group have global validity, you cannot&lt;br /&gt;*use the statement within a FORM or FUNCTION.&lt;br /&gt;type-pools: slis.&lt;br /&gt;PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.&lt;br /&gt;&lt;br /&gt;**-- ALV variables&lt;br /&gt;*****- Field Catalog structure&lt;br /&gt;data: ls_fieldcat     type slis_fieldcat_alv,    "Field Catalog list&lt;br /&gt;&lt;br /&gt;**--- Field Catalog table&lt;br /&gt;    gt_fieldcat     type slis_t_fieldcat_alv,  "Field Catalog&lt;br /&gt;&lt;br /&gt;**--- Layout ( How you would like to see the output )&lt;br /&gt;    gs_layout       type slis_layout_alv,       "List Layout&lt;br /&gt;&lt;br /&gt;**--  Report name&lt;br /&gt;    g_repid         like sy-repid,&lt;br /&gt;     g_save(1)           type c,&lt;br /&gt;    g_exit(1)           type c,&lt;br /&gt;    g_variant           like disvariant,&lt;br /&gt;    gx_variant          like disvariant.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;**-- Flight Info Internal table&lt;br /&gt;data: lt_sflight like sflight occurs 0 with header line.&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                 C-O-N-S-T-A-N-T-S                                    *&lt;br /&gt;************************************************************************&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                 S-E-L-E-C-T-I-O-N  S-C-R-E-E-N                       *&lt;br /&gt;************************************************************************&lt;br /&gt;&lt;br /&gt;selection-screen begin of block a with frame title text-100.&lt;br /&gt;select-options: s_carrid  for  sflight-carrid,&lt;br /&gt;              s_connid  for  sflight-connid,&lt;br /&gt;              s_fldate  for  sflight-fldate default sy-datum.&lt;br /&gt;selection-screen end of block a .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                 I-N-I-T-I-A-L-I-Z-A-T-I-O-N                          *&lt;br /&gt;************************************************************************&lt;br /&gt;initialization.&lt;br /&gt;&lt;br /&gt;g_repid = sy-repid.&lt;br /&gt;&lt;br /&gt;**-- Fill ALV field catalog&lt;br /&gt;perform initialize_fieldcat using gt_fieldcat[].&lt;br /&gt;&lt;br /&gt;***-- Build Events&lt;br /&gt;*  perform build_eventtab using gt_events[].&lt;br /&gt;*&lt;br /&gt;**-- Read the default variant&lt;br /&gt;perform initialize_variant.&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                 A-T  S-E-L-E-C-T-I-O-N  S-C-R-E-E-N                  *&lt;br /&gt;************************************************************************&lt;br /&gt;at selection-screen on value-request for p_vari.&lt;br /&gt;**-- Display all existing variants&lt;br /&gt;call function 'REUSE_ALV_VARIANT_F4'&lt;br /&gt;     exporting&lt;br /&gt;          is_variant = g_variant&lt;br /&gt;          i_save     = g_save&lt;br /&gt;     importing&lt;br /&gt;          e_exit     = g_exit&lt;br /&gt;          es_variant = gx_variant&lt;br /&gt;     exceptions&lt;br /&gt;          not_found  = 2.&lt;br /&gt;if sy-subrc = 2.&lt;br /&gt;  message id sy-msgid type 'S'      number sy-msgno&lt;br /&gt;          with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;br /&gt;else.&lt;br /&gt;  if g_exit = space.&lt;br /&gt;    p_vari = gx_variant-variant.&lt;br /&gt;  endif.&lt;br /&gt;endif.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*                 S-T-A-R-T  O-F  S-E-L-E-C-T-I-O-N                    *&lt;br /&gt;************************************************************************&lt;br /&gt;start-of-selection.&lt;br /&gt;&lt;br /&gt;**-- Read Flight information.&lt;br /&gt;perform read_flight_info.&lt;br /&gt;&lt;br /&gt;**-- Fill ALV field catalog and display report.&lt;br /&gt;if not lt_sflight[] is initial.&lt;br /&gt;  perform dislay_alv_report.&lt;br /&gt;endif.&lt;br /&gt;&lt;br /&gt;*======================================================================*&lt;br /&gt;*                 FORMS / SUB ROUTINES                                 *&lt;br /&gt;*======================================================================&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  initialize_fieldcat&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_GT_FIELDCAT[]  text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form initialize_fieldcat using l_fieldcat type slis_t_fieldcat_alv.&lt;br /&gt;&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Air line&lt;br /&gt;ls_fieldcat-fieldname   = 'CARRID'.&lt;br /&gt;ls_fieldcat-key         = 'X'.&lt;br /&gt;ls_fieldcat-col_pos     = 1.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Airline'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Airline'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Flight Number&lt;br /&gt;ls_fieldcat-fieldname   = 'CONNID'.&lt;br /&gt;ls_fieldcat-key         = 'X'.&lt;br /&gt;ls_fieldcat-col_pos     = 2.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Flight Number'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Flight Number'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Flight date&lt;br /&gt;ls_fieldcat-fieldname   = 'FLDATE'.&lt;br /&gt;ls_fieldcat-key         = 'X'.&lt;br /&gt;ls_fieldcat-col_pos     = 3.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Flight date'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Flight date'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Airfare&lt;br /&gt;ls_fieldcat-fieldname   = 'PRICE'.&lt;br /&gt;ls_fieldcat-col_pos     = 4.&lt;br /&gt;ls_fieldcat-do_sum      = 'X'.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Airfare'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Airfare'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Local Currency&lt;br /&gt;ls_fieldcat-fieldname   = 'CURRENCY'.&lt;br /&gt;ls_fieldcat-col_pos     = 5.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Local Currency'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Local Currency'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Plane Type&lt;br /&gt;ls_fieldcat-fieldname   = 'PLANETYPE'.&lt;br /&gt;ls_fieldcat-col_pos     = 6.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Plane type'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Plane type'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Maximum capacity&lt;br /&gt;ls_fieldcat-fieldname   = 'SEATSMAX'.&lt;br /&gt;ls_fieldcat-col_pos     = 7.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Max. seats'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Max. seats'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Occupied seats&lt;br /&gt;ls_fieldcat-fieldname   = 'SEATSOCC'.&lt;br /&gt;ls_fieldcat-col_pos     = 8.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Seats occupied'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Seats occupied'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Total&lt;br /&gt;ls_fieldcat-fieldname   = 'PAYMENTSUM'.&lt;br /&gt;ls_fieldcat-col_pos     = 9.&lt;br /&gt;ls_fieldcat-do_sum     = 'X'.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Total amount'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Total amount'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Total&lt;br /&gt;ls_fieldcat-fieldname   = 'PAYMENTSUM'.&lt;br /&gt;ls_fieldcat-col_pos     = 9.&lt;br /&gt;ls_fieldcat-do_sum     = 'X'.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Total amount'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Total amount'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Max. Capacity, Buss. Class&lt;br /&gt;ls_fieldcat-fieldname   = 'SEATSMAX_B'.&lt;br /&gt;ls_fieldcat-col_pos     = 10.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Max.Buss.class cap.'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Max.Buss.class cap.'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Max. occupancy, Buss. Class&lt;br /&gt;ls_fieldcat-fieldname   = 'SEATSOCC_B'.&lt;br /&gt;ls_fieldcat-col_pos     = 11.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Max.Bus.CL.occupied'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Max.Bus.CL.occupied'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Max. Capacity, First. Class&lt;br /&gt;ls_fieldcat-fieldname   = 'SEATSMAX_F'.&lt;br /&gt;ls_fieldcat-col_pos     = 12.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Max.Buss.class cap.'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Max.Buss.class cap.'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;* Max. occupancy, First. Class&lt;br /&gt;ls_fieldcat-fieldname   = 'SEATSOCC_F'.&lt;br /&gt;ls_fieldcat-col_pos     = 13.&lt;br /&gt;ls_fieldcat-seltext_s   = 'Max.Bus.CL.occupied'.&lt;br /&gt;ls_fieldcat-seltext_l   = 'Max.Bus.CL.occupied'.&lt;br /&gt;append ls_fieldcat to l_fieldcat.&lt;br /&gt;clear ls_fieldcat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    " initialize_fieldcat&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  read_flight_info&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM read_flight_info .&lt;br /&gt;&lt;br /&gt;refresh lt_sflight.&lt;br /&gt;clear   lt_sflight.&lt;br /&gt;&lt;br /&gt;**-- Read data from SFLIGHT table&lt;br /&gt;select *&lt;br /&gt;  from SFLIGHT&lt;br /&gt;  into table lt_sflight&lt;br /&gt;  where carrid in s_carrid&lt;br /&gt;   and  connid in s_connid&lt;br /&gt;   and  fldate in s_fldate.&lt;br /&gt;if sy-subrc &lt;&gt; 0.&lt;br /&gt; message e208(00) with text-101.&lt;br /&gt;endif.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    " read_flight_info&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  dislay_alv_report&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM dislay_alv_report .&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;EXPORTING&lt;br /&gt;*   I_INTERFACE_CHECK              = ' '&lt;br /&gt;*   I_BYPASSING_BUFFER             =&lt;br /&gt;*   I_BUFFER_ACTIVE                = ' '&lt;br /&gt; I_CALLBACK_PROGRAM              =  g_repid&lt;br /&gt;*   I_CALLBACK_PF_STATUS_SET       = ' '&lt;br /&gt;*   I_CALLBACK_USER_COMMAND        = ' '&lt;br /&gt; I_STRUCTURE_NAME                =  'sflight'&lt;br /&gt;*   IS_LAYOUT                      =&lt;br /&gt; IT_FIELDCAT                     =  gt_fieldcat&lt;br /&gt;*   IT_EXCLUDING                   =&lt;br /&gt;*   IT_SPECIAL_GROUPS              =&lt;br /&gt;*   IT_SORT                        =&lt;br /&gt;*   IT_FILTER                      =&lt;br /&gt;*   IS_SEL_HIDE                    =&lt;br /&gt; I_DEFAULT                      = 'X'&lt;br /&gt; I_SAVE                         = 'A'&lt;br /&gt;IS_VARIANT                     = GX_VARIANT&lt;br /&gt;*   IT_EVENTS                      =&lt;br /&gt;*   IT_EVENT_EXIT                  =&lt;br /&gt;*   IS_PRINT                       =&lt;br /&gt;*   IS_REPREP_ID                   =&lt;br /&gt;*   I_SCREEN_START_COLUMN          = 0&lt;br /&gt;*   I_SCREEN_START_LINE            = 0&lt;br /&gt;*   I_SCREEN_END_COLUMN            = 0&lt;br /&gt;*   I_SCREEN_END_LINE              = 0&lt;br /&gt;* IMPORTING&lt;br /&gt;*   E_EXIT_CAUSED_BY_CALLER        =&lt;br /&gt;*   ES_EXIT_CAUSED_BY_USER         =&lt;br /&gt;TABLES&lt;br /&gt;  T_OUTTAB                       = lt_sflight&lt;br /&gt;EXCEPTIONS&lt;br /&gt; PROGRAM_ERROR                  = 1&lt;br /&gt; OTHERS                         = 2&lt;br /&gt;        .&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;       WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    " dislay_alv_report&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  initialize_variant&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM initialize_variant .&lt;br /&gt;g_save = 'A'.&lt;br /&gt;clear g_variant.&lt;br /&gt;g_variant-report = g_repid.&lt;br /&gt;gx_variant = g_variant.&lt;br /&gt;call function 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;br /&gt;     exporting&lt;br /&gt;          i_save     = g_save&lt;br /&gt;     changing&lt;br /&gt;          cs_variant = gx_variant&lt;br /&gt;     exceptions&lt;br /&gt;          not_found  = 2.&lt;br /&gt;if sy-subrc = 0.&lt;br /&gt;  p_vari = gx_variant-variant.&lt;br /&gt;endif.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    " initialize_variant&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap ALV Reporting - Z_LIST_MATERIALS</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-alv-reporting-zlistmaterials.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:17:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-6845556721360903543</guid><description>&lt;pre&gt;REPORT Z_LIST_MATERIALS.&lt;br /&gt;&lt;br /&gt;TYPE-POOLS: SLIS.&lt;br /&gt;TABLES:MARC, MARD, VBAP, LIPS, EKPO, VBFA, EKBE, MARM, VBBE, MARA, MBEW.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK SEL WITH FRAME TITLE TEXT-001.&lt;br /&gt;SELECT-OPTIONS: S_WERKS FOR MARC-WERKS, " Plant&lt;br /&gt;             S_MATNR FOR MARC-MATNR, " Material&lt;br /&gt;             S_MTART FOR MARA-MTART. " Material Type SELECTION-SCREEN END OF BLOCK SEL.&lt;br /&gt;PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT. " ALV Variant&lt;br /&gt;&lt;br /&gt;CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF INV OCCURS 100,&lt;br /&gt;     WERKS LIKE MARD-WERKS, " Plant&lt;br /&gt;     MATNR LIKE MARD-MATNR, " Material&lt;br /&gt;     MTART LIKE MARA-MTART, " Material Type&lt;br /&gt;     STPRS LIKE MBEW-STPRS, " Standard Price&lt;br /&gt;     AVAIL LIKE MARD-LABST, " Available&lt;br /&gt;     LABST LIKE MARD-LABST, " Unrestricted use&lt;br /&gt;     INSME LIKE MARD-INSME, " Quality Inspection&lt;br /&gt;     RETME LIKE MARD-RETME, " Returns&lt;br /&gt;     TRANS LIKE MARC-UMLMC, " Stock in transit (calculated)&lt;br /&gt;     UMLMC LIKE MARC-UMLMC, " Stock Transfer (plant)&lt;br /&gt;     UMLME LIKE MARD-UMLME, " Transfer (SLoc)&lt;br /&gt;     WESBS LIKE EKBE-WESBS, " GR Blocked Stock&lt;br /&gt;     TRAME LIKE MARC-TRAME, " Stock in transit&lt;br /&gt;     SPEME LIKE MARD-SPEME, " Blocked&lt;br /&gt;     KWMENG LIKE VBAP-KWMENG, " Sales orders&lt;br /&gt;     LFIMG LIKE LIPS-LFIMG, " Scheduled for Delivery&lt;br /&gt;     MENGE LIKE EKPO-MENGE, " Open Purch. Orders&lt;br /&gt;     VALUE LIKE MBEW-SALK3, " Stock Value (Calculated)&lt;br /&gt;     MEINS LIKE MARA-MEINS, " Unit of measure&lt;br /&gt;   END OF INV.&lt;br /&gt;&lt;br /&gt;DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,&lt;br /&gt;   HEADING  TYPE SLIS_T_LISTHEADER,&lt;br /&gt;   LAYOUT   TYPE SLIS_LAYOUT_ALV,&lt;br /&gt;   EVENTS   TYPE SLIS_T_EVENT,&lt;br /&gt;   REPNAME  LIKE SY-REPID,&lt;br /&gt;   F2CODE   LIKE SY-UCOMM VALUE  '&amp;amp;ETA',&lt;br /&gt;   G_SAVE(1) TYPE C,&lt;br /&gt;   G_EXIT(1) TYPE C,&lt;br /&gt;   G_VARIANT LIKE DISVARIANT,&lt;br /&gt;   GX_VARIANT LIKE DISVARIANT.&lt;br /&gt;&lt;br /&gt;INITIALIZATION.&lt;br /&gt;REPNAME = SY-REPID.&lt;br /&gt;PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].&lt;br /&gt;PERFORM BUILD_EVENTTAB USING EVENTS[].&lt;br /&gt;PERFORM BUILD_COMMENT USING HEADING[].&lt;br /&gt;PERFORM INITIALIZE_VARIANT.&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.&lt;br /&gt;PERFORM F4_FOR_VARIANT.&lt;br /&gt;&lt;br /&gt;AT SELECTION-SCREEN.&lt;br /&gt;PERFORM PAI_OF_SELECTION_SCREEN.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;PERFORM GET_MARD.&lt;br /&gt;PERFORM GET_UNIT_OF_MEASURE.&lt;br /&gt;PERFORM GET_MARC.&lt;br /&gt;PERFORM GET_EKPO.&lt;br /&gt;PERFORM GET_LIPS.&lt;br /&gt;PERFORM GET_VBAP.&lt;br /&gt;PERFORM GET_OPEN.&lt;br /&gt;PERFORM GET_PRICE.&lt;br /&gt;&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;PERFORM BUILD_LAYOUT USING LAYOUT.&lt;br /&gt;PERFORM WRITE_OUTPUT.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  INITIALIZE_FIELDCAT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_FIELDTAB[]  text                                           *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM INITIALIZE_FIELDCAT USING P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV.&lt;br /&gt;DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.&lt;br /&gt;* fixed columns (obligatory)&lt;br /&gt;CLEAR L_FIELDCAT.&lt;br /&gt;L_FIELDCAT-TABNAME    = 'INV'.&lt;br /&gt;L_FIELDCAT-FIX_COLUMN = 'X'.&lt;br /&gt;L_FIELDCAT-NO_OUT     = 'O'.&lt;br /&gt;L_FIELDCAT-FIELDNAME  = 'WERKS'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME  = 'MATNR'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;&lt;br /&gt;* totalized columns&lt;br /&gt;CLEAR L_FIELDCAT.&lt;br /&gt;L_FIELDCAT-TABNAME   = 'INV'.&lt;br /&gt;L_FIELDCAT-SP_GROUP  = 'A'.&lt;br /&gt;L_FIELDCAT-DO_SUM    = 'X'.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'LABST'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'INSME'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'RETME'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'UMLME'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'WESBS'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'SPEME'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;* columns with different description&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'KWMENG'.&lt;br /&gt;L_FIELDCAT-SELTEXT_M = 'Sales Orders'.&lt;br /&gt;L_FIELDCAT-SELTEXT_S = 'Sales Or'.&lt;br /&gt;L_FIELDCAT-SELTEXT_L = 'Sales Orders Qty'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'LFIMG'.&lt;br /&gt;L_FIELDCAT-SELTEXT_M = 'Sched. Delivery'.&lt;br /&gt;L_FIELDCAT-SELTEXT_S = 'Schd. Del'.&lt;br /&gt;L_FIELDCAT-SELTEXT_L = 'Scheduled for Delivery'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'TRANS'.&lt;br /&gt;L_FIELDCAT-SELTEXT_M = 'Stk. in transit'.&lt;br /&gt;L_FIELDCAT-SELTEXT_S = 'Stk. trns'.&lt;br /&gt;L_FIELDCAT-SELTEXT_L = 'Stock in transit (sum)'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'AVAIL'.&lt;br /&gt;L_FIELDCAT-SELTEXT_M = 'Available'.&lt;br /&gt;L_FIELDCAT-SELTEXT_S = 'Avail.'.&lt;br /&gt;L_FIELDCAT-SELTEXT_L = 'Stock Available'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'MENGE'.&lt;br /&gt;L_FIELDCAT-SELTEXT_M = 'Open Orders'.&lt;br /&gt;L_FIELDCAT-SELTEXT_S = 'Open Ord'.&lt;br /&gt;L_FIELDCAT-SELTEXT_L = 'Open Purchase Orders'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;&lt;br /&gt;* columns not displayed&lt;br /&gt;CLEAR L_FIELDCAT.&lt;br /&gt;L_FIELDCAT-TABNAME   = 'INV'.&lt;br /&gt;L_FIELDCAT-SP_GROUP  = 'A'.&lt;br /&gt;L_FIELDCAT-NO_OUT    = 'X'.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'MEINS'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'UMLMC'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'TRAME'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'STPRS'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;L_FIELDCAT-FIELDNAME = 'VALUE'.&lt;br /&gt;APPEND L_FIELDCAT TO P_FIELDTAB.&lt;br /&gt;ENDFORM.                               " INITIALIZE_FIELDCAT&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_EVENTTAB&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_EVENTS[]  text                                             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.&lt;br /&gt;DATA: LS_EVENT TYPE SLIS_ALV_EVENT.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;br /&gt;    EXPORTING&lt;br /&gt;         I_LIST_TYPE = 0&lt;br /&gt;    IMPORTING&lt;br /&gt;         ET_EVENTS   = P_EVENTS.&lt;br /&gt;READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE&lt;br /&gt;                        INTO LS_EVENT.&lt;br /&gt;IF SY-SUBRC = 0.&lt;br /&gt; MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.&lt;br /&gt; APPEND LS_EVENT TO P_EVENTS.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                               " BUILD_EVENTTAB&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_COMMENT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_HEADING[]  text                                            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.&lt;br /&gt;DATA: HLINE TYPE SLIS_LISTHEADER,&lt;br /&gt;     TEXT(60) TYPE C,&lt;br /&gt;     SEP(20) TYPE C.&lt;br /&gt;CLEAR: HLINE, TEXT.&lt;br /&gt;HLINE-TYP  = 'H'.&lt;br /&gt;WRITE: TEXT-101 TO TEXT+23.&lt;br /&gt;HLINE-INFO = TEXT.&lt;br /&gt;APPEND HLINE TO P_HEADING.&lt;br /&gt;CLEAR TEXT.&lt;br /&gt;WRITE: 'User: ' TO TEXT,&lt;br /&gt;      SY-UNAME TO TEXT+6,&lt;br /&gt;      'Date: ' TO TEXT+25,&lt;br /&gt;      SY-DATUM TO TEXT+31,&lt;br /&gt;      'Page: ' TO TEXT+50,&lt;br /&gt;      SY-PAGNO TO TEXT+56.&lt;br /&gt;HLINE-INFO = TEXT.&lt;br /&gt;APPEND HLINE TO P_HEADING.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    " BUILD_COMMENT&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM TOP_OF_PAGE                                              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM TOP_OF_PAGE.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;    EXPORTING&lt;br /&gt;         IT_LIST_COMMENTARY = HEADING.&lt;br /&gt;ENDFORM.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  INITIALIZE_VARIANT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM INITIALIZE_VARIANT.&lt;br /&gt;G_SAVE = 'A'.&lt;br /&gt;CLEAR G_VARIANT.&lt;br /&gt;G_VARIANT-REPORT = REPNAME.&lt;br /&gt;GX_VARIANT = G_VARIANT.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;br /&gt;    EXPORTING&lt;br /&gt;         I_SAVE     = G_SAVE&lt;br /&gt;    CHANGING&lt;br /&gt;         CS_VARIANT = GX_VARIANT&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;         NOT_FOUND  = 2.&lt;br /&gt;IF SY-SUBRC = 0.&lt;br /&gt; P_VARI = GX_VARIANT-VARIANT.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                               " INITIALIZE_VARIANT&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  F4_FOR_VARIANT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM F4_FOR_VARIANT.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&lt;br /&gt;    EXPORTING&lt;br /&gt;         IS_VARIANT = G_VARIANT&lt;br /&gt;         I_SAVE     = G_SAVE&lt;br /&gt;    IMPORTING&lt;br /&gt;         E_EXIT     = G_EXIT&lt;br /&gt;         ES_VARIANT = GX_VARIANT&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;         NOT_FOUND  = 2.&lt;br /&gt;IF SY-SUBRC = 2.&lt;br /&gt; MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO&lt;br /&gt;         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ELSE.&lt;br /&gt; IF G_EXIT = SPACE.&lt;br /&gt;   P_VARI = GX_VARIANT-VARIANT.&lt;br /&gt; ENDIF.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                               " F4_FOR_VARIANT&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  PAI_OF_SELECTION_SCREEN&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM PAI_OF_SELECTION_SCREEN.&lt;br /&gt;*&lt;br /&gt;IF NOT P_VARI IS INITIAL.&lt;br /&gt; MOVE G_VARIANT TO GX_VARIANT.&lt;br /&gt; MOVE P_VARI TO GX_VARIANT-VARIANT.&lt;br /&gt; CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'&lt;br /&gt;      EXPORTING&lt;br /&gt;           I_SAVE     = G_SAVE&lt;br /&gt;      CHANGING&lt;br /&gt;           CS_VARIANT = GX_VARIANT.&lt;br /&gt; G_VARIANT = GX_VARIANT.&lt;br /&gt;ELSE.&lt;br /&gt; PERFORM INITIALIZE_VARIANT.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                               " PAI_OF_SELECTION_SCREEN&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  GET_MARD&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM GET_MARD.&lt;br /&gt;SELECT MATNR WERKS LABST INSME RETME UMLME SPEME&lt;br /&gt;      FROM MARD&lt;br /&gt;      INTO CORRESPONDING FIELDS OF INV&lt;br /&gt;      WHERE MATNR IN S_MATNR&lt;br /&gt;      AND   WERKS IN S_WERKS.&lt;br /&gt; COLLECT INV.&lt;br /&gt;ENDSELECT.&lt;br /&gt;PERFORM FILTER_BY_MATERIAL_TYPE.&lt;br /&gt;ENDFORM.                               " GET_MARD&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  FILTER_BY_MATERIAL_TYPE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM FILTER_BY_MATERIAL_TYPE.&lt;br /&gt;LOOP AT INV.&lt;br /&gt; CLEAR INV-MTART.&lt;br /&gt; SELECT SINGLE MTART&lt;br /&gt;        INTO INV-MTART&lt;br /&gt;        FROM MARA&lt;br /&gt;        WHERE MATNR EQ INV-MATNR&lt;br /&gt;        AND   MTART IN S_MTART.&lt;br /&gt; IF SY-SUBRC EQ 0.&lt;br /&gt;   MODIFY INV.&lt;br /&gt; ELSE.&lt;br /&gt;   DELETE INV.&lt;br /&gt; ENDIF.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDFORM.                    " FILTER_BY_MATERIAL_TYPE&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  GET_MARC&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM GET_MARC.&lt;br /&gt;LOOP AT INV.&lt;br /&gt; SELECT SINGLE UMLMC TRAME&lt;br /&gt;        FROM MARC&lt;br /&gt;        INTO CORRESPONDING FIELDS OF INV&lt;br /&gt;        WHERE MATNR EQ INV-MATNR&lt;br /&gt;        AND   WERKS EQ INV-WERKS.&lt;br /&gt; IF SY-SUBRC EQ 0.&lt;br /&gt;   INV-TRANS = INV-UMLMC + INV-TRAME.&lt;br /&gt;   MODIFY INV.&lt;br /&gt; ENDIF.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDFORM.                               " GET_MARC&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  GET_EKPO&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM GET_EKPO.&lt;br /&gt;DATA: WESBS LIKE INV-WESBS,&lt;br /&gt;     SHKZG LIKE EKBE-SHKZG,&lt;br /&gt;     MEINS LIKE EKPO-MEINS,&lt;br /&gt;     LMEIN LIKE EKPO-LMEIN.&lt;br /&gt;LOOP AT INV.&lt;br /&gt; CLEAR: WESBS, SHKZG, MEINS, LMEIN.&lt;br /&gt; SELECT YWESBS YSHKZG XMEINS XLMEIN&lt;br /&gt;        INTO (WESBS, SHKZG, MEINS, LMEIN)&lt;br /&gt;        FROM EKPO AS X JOIN EKBE AS Y&lt;br /&gt;        ON   XEBELN = YEBELN&lt;br /&gt;        AND  XEBELP = YEBELP&lt;br /&gt;        WHERE XMATNR EQ INV-MATNR&lt;br /&gt;        AND   XWERKS EQ INV-WERKS&lt;br /&gt;        AND   XLOEKZ NE 'L'.&lt;br /&gt;   IF SHKZG EQ 'H'.&lt;br /&gt;     MULTIPLY WESBS BY -1.&lt;br /&gt;   ENDIF.&lt;br /&gt;   IF MEINS NE LMEIN.&lt;br /&gt;     PERFORM CONVERT_UNIT_OF_MEASURE CHANGING INV-MATNR MEINS WESBS.&lt;br /&gt;   ENDIF.&lt;br /&gt;   ADD WESBS TO INV-WESBS.&lt;br /&gt; ENDSELECT.&lt;br /&gt; MODIFY INV.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDFORM.                               " GET_EKPO&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  GET_LIPS&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM GET_LIPS.&lt;br /&gt;DATA: LFIMG LIKE INV-LFIMG.&lt;br /&gt;LOOP AT INV.&lt;br /&gt; CLEAR: LFIMG, INV-LFIMG.&lt;br /&gt; SELECT OMENG&lt;br /&gt;        INTO LFIMG&lt;br /&gt;        FROM VBBE&lt;br /&gt;        WHERE MATNR EQ INV-MATNR&lt;br /&gt;        AND   WERKS EQ INV-WERKS&lt;br /&gt;        AND   VBTYP EQ 'J'.&lt;br /&gt;   ADD LFIMG TO INV-LFIMG.&lt;br /&gt; ENDSELECT.&lt;br /&gt; MODIFY INV.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDFORM.                               " GET_LIPS&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  GET_VBAP&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM GET_VBAP.&lt;br /&gt;DATA: KWMENG LIKE INV-KWMENG.&lt;br /&gt;LOOP AT INV.&lt;br /&gt; CLEAR: KWMENG, INV-KWMENG.&lt;br /&gt; SELECT OMENG&lt;br /&gt;        INTO KWMENG&lt;br /&gt;        FROM VBBE&lt;br /&gt;        WHERE MATNR EQ INV-MATNR&lt;br /&gt;        AND   WERKS EQ INV-WERKS&lt;br /&gt;        AND   VBTYP EQ 'C'.&lt;br /&gt;   ADD KWMENG TO INV-KWMENG.&lt;br /&gt; ENDSELECT.&lt;br /&gt; INV-AVAIL = INV-LABST - INV-INSME - INV-KWMENG - INV-LFIMG.&lt;br /&gt; MODIFY INV.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDFORM.                               " GET_VBAP&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  GET_UNIT_OF_MEASURE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  p1        text&lt;br /&gt;*  &lt;--  p2        text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM GET_UNIT_OF_MEASURE.&lt;br /&gt;LOOP AT INV.&lt;br /&gt; SELECT SINGLE MEINS&lt;br /&gt;        FROM MARA&lt;br /&gt;        INTO INV-MEINS&lt;br /&gt;        WHERE MATNR EQ INV-MATNR.&lt;br /&gt; MODIFY INV.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDFORM.                               " GET_UNIT_OF_MEASURE&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  GET_OPEN&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM GET_OPEN.&lt;br /&gt;DATA: BEGIN OF XTAB OCCURS 10,       " Open orders table&lt;br /&gt;        WERKS LIKE EKPO-WERKS,&lt;br /&gt;        LGORT LIKE EKPO-LGORT,&lt;br /&gt;        MATNR LIKE EKPO-MATNR,&lt;br /&gt;        MENGE LIKE EKPO-MENGE,&lt;br /&gt;        MENGK LIKE EKPO-MENGE,&lt;br /&gt;      END OF XTAB.&lt;br /&gt;RANGES: L_WERKS FOR MARD-WERKS.&lt;br /&gt;&lt;br /&gt;LOOP AT INV.&lt;br /&gt; REFRESH XTAB.&lt;br /&gt; CLEAR: XTAB, L_WERKS.&lt;br /&gt; MOVE INV-WERKS TO L_WERKS-LOW.&lt;br /&gt; CALL FUNCTION 'MB_ADD_PURCHASE_ORDER_QUANTITY'&lt;br /&gt;      EXPORTING&lt;br /&gt;           X_MATNR = INV-MATNR&lt;br /&gt;           X_MEINS = INV-MEINS&lt;br /&gt;           X_ELIKZ = SPACE&lt;br /&gt;           X_LOEKZ = SPACE&lt;br /&gt;      TABLES&lt;br /&gt;           XTAB    = XTAB&lt;br /&gt;           XWERKS  = L_WERKS.&lt;br /&gt; MOVE XTAB-MENGE TO INV-MENGE.&lt;br /&gt; MODIFY INV.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDFORM.                               " GET_OPEN&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  GET_PRICE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM GET_PRICE.&lt;br /&gt;LOOP AT INV.&lt;br /&gt; SELECT SINGLE STPRS&lt;br /&gt;        FROM MBEW&lt;br /&gt;        INTO INV-STPRS&lt;br /&gt;        WHERE MATNR EQ INV-MATNR&lt;br /&gt;        AND   BWKEY EQ INV-WERKS&lt;br /&gt;        AND   BWTAR EQ SPACE.&lt;br /&gt;   IF SY-SUBRC EQ 0.&lt;br /&gt;     INV-VALUE = INV-STPRS *&lt;br /&gt;               ( INV-LABST + INV-INSME + INV-TRANS + INV-SPEME ).&lt;br /&gt;     MODIFY INV.&lt;br /&gt;   ENDIF.&lt;br /&gt;ENDLOOP.&lt;br /&gt;ENDFORM.                    " GET_PRICE&lt;br /&gt;&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM CONVERT_UNIT_OF_MEASURE                                  *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       text                                                          *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  P_MATNR                                                       *&lt;br /&gt;*  --&gt;  P_VRKME                                                       *&lt;br /&gt;*  --&gt;  P_QUANT                                                       *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM CONVERT_UNIT_OF_MEASURE USING P_MATNR P_VRKME P_QUANT.&lt;br /&gt;DATA: UMREZ LIKE MARM-UMREZ,&lt;br /&gt;     UMREN LIKE MARM-UMREN.&lt;br /&gt;SELECT SINGLE UMREZ UMREN&lt;br /&gt;      INTO (UMREZ, UMREN)&lt;br /&gt;      FROM MARM&lt;br /&gt;      WHERE MATNR EQ P_MATNR&lt;br /&gt;      AND   MEINH EQ P_VRKME.&lt;br /&gt;IF SY-SUBRC EQ 0.&lt;br /&gt; COMPUTE P_QUANT = ( P_QUANT * UMREZ ) / UMREN.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_LAYOUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*      --&gt;P_LAYOUT  text                                               *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.&lt;br /&gt;P_LAYOUT-F2CODE       = F2CODE.&lt;br /&gt;P_LAYOUT-ZEBRA        = 'X'.&lt;br /&gt;P_LAYOUT-DETAIL_POPUP = 'X'.&lt;br /&gt;ENDFORM.                               " BUILD_LAYOUT&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  WRITE_OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;FORM WRITE_OUTPUT.&lt;br /&gt;SORT INV BY WERKS MATNR.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;br /&gt;    EXPORTING&lt;br /&gt;         I_PROGRAM_NAME     = REPNAME&lt;br /&gt;         I_INTERNAL_TABNAME = 'INV'&lt;br /&gt;         I_INCLNAME         = REPNAME&lt;br /&gt;    CHANGING&lt;br /&gt;         CT_FIELDCAT        = FIELDTAB.&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt; WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.  ENDIF.  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;br /&gt;    EXPORTING&lt;br /&gt;         I_CALLBACK_PROGRAM = REPNAME&lt;br /&gt;         I_STRUCTURE_NAME   = 'INV'&lt;br /&gt;         IS_LAYOUT          = LAYOUT&lt;br /&gt;         IT_FIELDCAT        = FIELDTAB&lt;br /&gt;         I_DEFAULT          = 'A'&lt;br /&gt;         I_SAVE             = G_SAVE&lt;br /&gt;         IS_VARIANT         = G_VARIANT&lt;br /&gt;         IT_EVENTS          = EVENTS[]&lt;br /&gt;    TABLES&lt;br /&gt;         T_OUTTAB           = INV.&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt; WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.  ENDIF.&lt;br /&gt;ENDFORM.                               " WRITE_OUTPUT&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for Reincarnation of REUSE_ALV_FIELDCATALOG_MERGE</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-reincarnation-of.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:16:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-2392160033112918022</guid><description>&lt;pre&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;* Author Jayanta Narayan Choudhuri&lt;br /&gt;*         Flat 302&lt;br /&gt;*         395 Jodhpur Park&lt;br /&gt;*         Kolkata 700 068&lt;br /&gt;*       Email sss@cal.vsnl.net.in&lt;br /&gt;*       URL:  http://www.geocities.com/ojnc&lt;br /&gt;&lt;br /&gt;These FORMs are for people accustomed to&lt;br /&gt;REUSE_ALV_FIELDCATALOG_MERGE (despite the 72 ch source line limit)&lt;br /&gt;but not happy with  LVC_FIELDCATALOG_MERGE which has NO Internal&lt;br /&gt;table option&lt;br /&gt;&lt;br /&gt;We do not want to crowd DDIC with too many structures!&lt;br /&gt;&lt;br /&gt;The routines handle any internal table using field name as title&lt;br /&gt;if not a DDIC data element.&lt;br /&gt;&lt;br /&gt;Create a Include ZJNCINCLUDE with the 2 FORMs&lt;br /&gt;&lt;br /&gt;There are two FORMs:  ZJNC_DUMP_LIST will be very useful as it is&lt;br /&gt;simple and needs no screen and can be called any number of times.&lt;br /&gt;&lt;br /&gt;Should be very useful also for debugging esp. where Excel is not&lt;br /&gt;available as you can dump any internal table anytime and inspect contents.&lt;br /&gt;&lt;br /&gt;I wrote these routine mainly for debugging and the problem created by&lt;br /&gt;half-line long comments in internal tables. With RTTI there is no source&lt;br /&gt;code dependency.&lt;br /&gt;&lt;br /&gt;ZJNC_DUMP_GRID is for OO-GRID loving people who can adapt that routine&lt;br /&gt;for one off reports.&lt;br /&gt;You can call this ONLY ONCE as it is best used using a dummy selection&lt;br /&gt;screen - tip from SDN ABAP FAQ.&lt;br /&gt;&lt;br /&gt;As FORMs use RTTI there is no special case for Structures!&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------------------------&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;  Include           ZJNCINCLUDE                                   &lt;br /&gt;*&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;  Reincarnations of REUSE_ALV_FIELDCATALOG_MERGE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;* Author Jayanta Narayan Choudhuri&lt;br /&gt;*         Flat 302&lt;br /&gt;*         395 Jodhpur Park&lt;br /&gt;*         Kolkata 700 068&lt;br /&gt;*       Email sss@cal.vsnl.net.in&lt;br /&gt;*       URL:  http://www.geocities.com/ojnc&lt;br /&gt;&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;* These FORMs are for people accustomed to&lt;br /&gt;*   REUSE_ALV_FIELDCATALOG_MERGE (despite the 72 ch source line limit)&lt;br /&gt;*   but not happy with  LVC_FIELDCATALOG_MERGE&lt;br /&gt;* We do not want to crowd DDIC with too many structures!&lt;br /&gt;*-----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  ZJNC_DUMP_LIST  Our Good Old ALV list -  RECOMMENDED!&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;FORM zjnc_dump_list  USING value(p_it_name) TYPE c&lt;br /&gt;                         value(p_wa_name) TYPE c&lt;br /&gt;                         value(p_heading) TYPE c.&lt;br /&gt;&lt;br /&gt;TYPE-POOLS: slis.&lt;br /&gt;&lt;br /&gt;DATA:&lt;br /&gt;  stru_ref    TYPE REF TO cl_abap_structdescr,&lt;br /&gt;  comp_tab    TYPE abap_compdescr_tab,&lt;br /&gt;  one_comp    TYPE abap_compdescr,&lt;br /&gt;  one_name    TYPE string,&lt;br /&gt;  type_ref    TYPE REF TO cl_abap_typedescr,&lt;br /&gt;  is_ddic     TYPE abap_bool,&lt;br /&gt;  lt_ddic     TYPE dd_x031l_table,&lt;br /&gt;  wa_ddic     TYPE x031l,&lt;br /&gt;  lt_fcat     TYPE slis_t_fieldcat_alv,&lt;br /&gt;  wa_fcat     TYPE slis_fieldcat_alv,&lt;br /&gt;  ls_layo     TYPE slis_layout_alv,&lt;br /&gt;  l_alv       TYPE REF TO cl_gui_alv_grid.&lt;br /&gt;&lt;br /&gt;FIELD-SYMBOLS: &lt;fs_type&gt;  TYPE ANY,&lt;br /&gt;               &lt;fs_table&gt; TYPE STANDARD TABLE,&lt;br /&gt;               &lt;fs_line&gt;  TYPE ANY.&lt;br /&gt;&lt;br /&gt;ASSIGN (p_it_name) TO &lt;fs_table&gt;.&lt;br /&gt;&lt;br /&gt;ASSIGN (p_wa_name) TO &lt;fs_line&gt;.&lt;br /&gt;&lt;br /&gt;ls_layo-colwidth_optimize = 'X'.&lt;br /&gt;ls_layo-zebra = 'X'.&lt;br /&gt;ls_layo-window_titlebar = p_heading.&lt;br /&gt;ls_layo-box_tabname   = p_it_name.&lt;br /&gt;&lt;br /&gt;stru_ref ?= cl_abap_structdescr=&gt;describe_by_data( &lt;fs_line&gt; ).&lt;br /&gt;&lt;br /&gt;comp_tab = stru_ref-&gt;components.&lt;br /&gt;&lt;br /&gt;LOOP AT comp_tab INTO one_comp.&lt;br /&gt;  CLEAR wa_fcat.&lt;br /&gt;  wa_fcat-tabname   = p_it_name.&lt;br /&gt;  wa_fcat-fieldname = one_comp-name.&lt;br /&gt;&lt;br /&gt;  CONCATENATE p_wa_name '-' one_comp-name INTO one_name.&lt;br /&gt;&lt;br /&gt;  ASSIGN (one_name) TO &lt;fs_type&gt;.&lt;br /&gt;&lt;br /&gt;  type_ref ?= cl_abap_typedescr=&gt;describe_by_data( &lt;fs_type&gt; ).&lt;br /&gt;&lt;br /&gt;  is_ddic = type_ref-&gt;is_ddic_type( ).&lt;br /&gt;&lt;br /&gt;  IF is_ddic = abap_true.&lt;br /&gt;    lt_ddic = type_ref-&gt;get_ddic_object( ).&lt;br /&gt;&lt;br /&gt;    LOOP AT lt_ddic INTO wa_ddic.&lt;br /&gt;      CLEAR wa_ddic-tabname.&lt;br /&gt;      SELECT SINGLE&lt;br /&gt;             dd03l~tabname&lt;br /&gt;        INTO wa_ddic-tabname&lt;br /&gt;        FROM dd03l&lt;br /&gt;       WHERE dd03l~fieldname = wa_ddic-fieldname&lt;br /&gt;         AND dd03l~tabname NOT LIKE '/%'.          " I live in normal&lt;br /&gt;namespace&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      wa_fcat-ref_tabname    = wa_ddic-tabname.&lt;br /&gt;      wa_fcat-ref_fieldname = wa_ddic-fieldname.&lt;br /&gt;&lt;br /&gt;      SELECT SINGLE&lt;br /&gt;             dd04t~scrtext_s&lt;br /&gt;             dd04t~scrtext_m&lt;br /&gt;             dd04t~scrtext_l&lt;br /&gt;        INTO (wa_fcat-seltext_s, wa_fcat-seltext_m,&lt;br /&gt;wa_fcat-seltext_l)&lt;br /&gt;        FROM dd04t&lt;br /&gt;       WHERE dd04t~rollname   = wa_ddic-fieldname&lt;br /&gt;         AND dd04t~ddlanguage = sy-langu.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;  ELSE.&lt;br /&gt;    MOVE one_comp-name TO: wa_fcat-seltext_s, wa_fcat-seltext_m,&lt;br /&gt;wa_fcat-seltext_l.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  APPEND wa_fcat TO lt_fcat.&lt;br /&gt;&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;br /&gt;  EXPORTING&lt;br /&gt;    is_layout   = ls_layo&lt;br /&gt;    it_fieldcat = lt_fcat&lt;br /&gt;  TABLES&lt;br /&gt;    t_outtab    = &lt;fs_table&gt;.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "ZJNC_DUMP_LIST&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  ZJNC_DUMP_GRID  Object Oriented&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;FORM zjnc_dump_grid  USING value(p_it_name) TYPE c&lt;br /&gt;                         value(p_wa_name) TYPE c&lt;br /&gt;                         value(p_screen)  TYPE n&lt;br /&gt;                         value(p_heading) TYPE c.&lt;br /&gt;&lt;br /&gt;DATA:&lt;br /&gt;  stru_ref    TYPE REF TO cl_abap_structdescr,&lt;br /&gt;  comp_tab    TYPE abap_compdescr_tab,&lt;br /&gt;  one_comp    TYPE abap_compdescr,&lt;br /&gt;  one_name    TYPE string,&lt;br /&gt;  type_ref    TYPE REF TO cl_abap_typedescr,&lt;br /&gt;  is_ddic     TYPE abap_bool,&lt;br /&gt;  lt_ddic     TYPE dd_x031l_table,&lt;br /&gt;  wa_ddic     TYPE x031l,&lt;br /&gt;  lt_fcat     TYPE lvc_t_fcat,&lt;br /&gt;  wa_fcat     TYPE lvc_s_fcat,&lt;br /&gt;  ls_layo     TYPE lvc_s_layo,&lt;br /&gt;  l_alv       TYPE REF TO cl_gui_alv_grid.&lt;br /&gt;&lt;br /&gt;FIELD-SYMBOLS: &lt;fs_type&gt;  TYPE ANY,&lt;br /&gt;               &lt;fs_table&gt; TYPE ANY TABLE,&lt;br /&gt;               &lt;fs_line&gt;  TYPE ANY.&lt;br /&gt;&lt;br /&gt;ASSIGN (p_it_name) TO &lt;fs_table&gt;.&lt;br /&gt;&lt;br /&gt;ASSIGN (p_wa_name) TO &lt;fs_line&gt;.&lt;br /&gt;&lt;br /&gt;ls_layo-cwidth_opt = 'X'.&lt;br /&gt;ls_layo-zebra = 'X'.&lt;br /&gt;ls_layo-grid_title = p_heading.&lt;br /&gt;ls_layo-box_fname = p_it_name.&lt;br /&gt;&lt;br /&gt;stru_ref ?= cl_abap_structdescr=&gt;describe_by_data( &lt;fs_line&gt; ).&lt;br /&gt;&lt;br /&gt;comp_tab = stru_ref-&gt;components.&lt;br /&gt;&lt;br /&gt;LOOP AT comp_tab INTO one_comp.&lt;br /&gt;  CLEAR wa_fcat.&lt;br /&gt;  wa_fcat-tabname   = p_it_name.&lt;br /&gt;  wa_fcat-fieldname = one_comp-name.&lt;br /&gt;&lt;br /&gt;  CONCATENATE p_wa_name '-' one_comp-name INTO one_name.&lt;br /&gt;&lt;br /&gt;  ASSIGN (one_name) TO &lt;fs_type&gt;.&lt;br /&gt;&lt;br /&gt;  type_ref ?= cl_abap_typedescr=&gt;describe_by_data( &lt;fs_type&gt; ).&lt;br /&gt;&lt;br /&gt;  is_ddic = type_ref-&gt;is_ddic_type( ).&lt;br /&gt;&lt;br /&gt;  IF is_ddic = abap_true.&lt;br /&gt;    lt_ddic = type_ref-&gt;get_ddic_object( ).&lt;br /&gt;&lt;br /&gt;    LOOP AT lt_ddic INTO wa_ddic.&lt;br /&gt;      CLEAR wa_ddic-tabname.&lt;br /&gt;      SELECT SINGLE&lt;br /&gt;             dd03l~tabname&lt;br /&gt;        INTO wa_ddic-tabname&lt;br /&gt;        FROM dd03l&lt;br /&gt;       WHERE dd03l~fieldname = wa_ddic-fieldname&lt;br /&gt;         AND dd03l~tabname NOT LIKE '/%'.          " I live in normal&lt;br /&gt;namespace&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      wa_fcat-ref_table = wa_ddic-tabname.&lt;br /&gt;      wa_fcat-ref_field = wa_ddic-fieldname.&lt;br /&gt;&lt;br /&gt;      SELECT SINGLE&lt;br /&gt;             dd04t~scrtext_s&lt;br /&gt;             dd04t~scrtext_m&lt;br /&gt;             dd04t~scrtext_l&lt;br /&gt;        INTO (wa_fcat-scrtext_s, wa_fcat-scrtext_m,&lt;br /&gt;wa_fcat-scrtext_l)&lt;br /&gt;        FROM dd04t&lt;br /&gt;       WHERE dd04t~rollname   = wa_ddic-fieldname&lt;br /&gt;         AND dd04t~ddlanguage = sy-langu.&lt;br /&gt;&lt;br /&gt;    ENDLOOP.&lt;br /&gt;&lt;br /&gt;  ELSE.&lt;br /&gt;    MOVE one_comp-name TO: wa_fcat-scrtext_s, wa_fcat-scrtext_m,&lt;br /&gt;wa_fcat-scrtext_l.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;  APPEND wa_fcat TO lt_fcat.&lt;br /&gt;&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;CREATE OBJECT l_alv EXPORTING i_parent = cl_gui_container=&gt;screen0.&lt;br /&gt;&lt;br /&gt;CALL METHOD l_alv-&gt;set_table_for_first_display&lt;br /&gt;  EXPORTING&lt;br /&gt;    is_layout       = ls_layo&lt;br /&gt;  CHANGING&lt;br /&gt;    it_outtab       = &lt;fs_table&gt;&lt;br /&gt;    it_fieldcatalog = lt_fcat.&lt;br /&gt;&lt;br /&gt;CALL SELECTION-SCREEN p_screen.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "ZJNC_DUMP_GRID&lt;br /&gt;&lt;br /&gt;-----------------------------------------------------------------------------------&lt;br /&gt;* SAMPLE TEST PROGRAM&lt;br /&gt;&lt;br /&gt;REPORT yjnc1.&lt;br /&gt;&lt;br /&gt;INCLUDE zjncinclude.&lt;br /&gt;&lt;br /&gt;TYPES : BEGIN OF ty_pur,&lt;br /&gt;        ebeln1  TYPE ekko-ebeln,&lt;br /&gt;        aedat   TYPE ekko-aedat,&lt;br /&gt;        ebelp   TYPE ekpo-ebelp,&lt;br /&gt;        matnr   TYPE ekpo-matnr,&lt;br /&gt;        txz01   TYPE ekpo-txz01,&lt;br /&gt;        menge1  TYPE ekpo-menge,&lt;br /&gt;        belnr1  TYPE ekbe-belnr,&lt;br /&gt;        budat1  TYPE ekbe-budat,&lt;br /&gt;        bwart   TYPE ekbe-bwart,&lt;br /&gt;        menge2  TYPE ekbe-menge,&lt;br /&gt;        belnr2  TYPE ekbz-belnr,&lt;br /&gt;        budat2  TYPE ekbz-budat,&lt;br /&gt;        menge3  TYPE ekbz-menge,&lt;br /&gt;        dmbtr   TYPE ekbz-dmbtr,&lt;br /&gt;        buzei   TYPE ekbz-buzei,&lt;br /&gt;        jnc1    TYPE sy-datum,&lt;br /&gt;        jnc2    TYPE i,&lt;br /&gt;        jnc3(4) TYPE c,&lt;br /&gt;      END OF ty_pur.&lt;br /&gt;&lt;br /&gt;DATA: it_pur TYPE STANDARD TABLE OF ty_pur,&lt;br /&gt;    wa_pur TYPE ty_pur,&lt;br /&gt;    rows   TYPE i.&lt;br /&gt;&lt;br /&gt;* Not Recommended Style but still used!&lt;br /&gt;DATA: BEGIN OF it_mat OCCURS 0,&lt;br /&gt;      jnc1    TYPE sy-datum,&lt;br /&gt;      matnr   LIKE makt-matnr,&lt;br /&gt;      jnc2    TYPE i,&lt;br /&gt;      maktx   LIKE makt-maktx,&lt;br /&gt;      mtart   TYPE mara-mtart,&lt;br /&gt;      jnc3(4) TYPE c,&lt;br /&gt;   END OF it_mat.&lt;br /&gt;&lt;br /&gt;DATA: BEGIN OF it_str OCCURS 0.&lt;br /&gt;      INCLUDE STRUCTURE makt.&lt;br /&gt;DATA: END OF it_str.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF SCREEN 1001.&lt;br /&gt;SELECTION-SCREEN END   OF SCREEN 1001.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;MOVE     100 TO rows.&lt;br /&gt;&lt;br /&gt;SELECT ekko~ebeln&lt;br /&gt;       ekko~aedat&lt;br /&gt;       ekpo~ebelp&lt;br /&gt;       ekpo~matnr&lt;br /&gt;       ekpo~txz01&lt;br /&gt;       ekpo~menge&lt;br /&gt;       ekbe~belnr&lt;br /&gt;       ekbe~budat&lt;br /&gt;       ekbe~bwart&lt;br /&gt;       ekbe~menge&lt;br /&gt;       ekbz~belnr&lt;br /&gt;       ekbz~budat&lt;br /&gt;       ekbz~menge&lt;br /&gt;       ekbz~dmbtr&lt;br /&gt;       ekbz~buzei&lt;br /&gt;  INTO TABLE it_pur&lt;br /&gt;  UP TO rows ROWS&lt;br /&gt;  FROM ekko&lt;br /&gt;       INNER JOIN ekpo&lt;br /&gt;       ON  ekko~ebeln = ekpo~ebeln&lt;br /&gt;       AND ekpo~loekz = ' '&lt;br /&gt;          INNER JOIN ekbe&lt;br /&gt;          ON  ekpo~ebeln = ekbe~ebeln&lt;br /&gt;          AND ekpo~ebelp = ekbe~ebelp&lt;br /&gt;          AND ekbe~bewtp = 'E'&lt;br /&gt;       LEFT OUTER JOIN ekbz&lt;br /&gt;       ON  ekpo~ebeln = ekbz~ebeln&lt;br /&gt;       AND ekpo~ebelp = ekbz~ebelp&lt;br /&gt;       AND ekbz~bewtp = 'M'&lt;br /&gt; WHERE ekko~bstyp = 'F'&lt;br /&gt;   AND ekko~loekz = ' '&lt;br /&gt; ORDER BY ekko~ebeln&lt;br /&gt;          ekpo~ebelp.&lt;br /&gt;&lt;br /&gt;LOOP AT it_pur INTO wa_pur.&lt;br /&gt;  COMPUTE wa_pur-jnc1 =  sy-datum - sy-tabix.&lt;br /&gt;  MOVE sy-tabix TO wa_pur-jnc2.&lt;br /&gt;  MOVE 'Helo'   TO wa_pur-jnc3.&lt;br /&gt;  MODIFY it_pur FROM wa_pur.&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;* PERFORM zjnc_dump_grid  USING 'IT_PUR' 'WA_PUR' 1001 'Purchase&lt;br /&gt;Report'.&lt;br /&gt;&lt;br /&gt;* IT_PUR is as per recommended OO style&lt;br /&gt;PERFORM zjnc_dump_list  USING 'IT_PUR' 'WA_PUR' 'Purchase Dump'.&lt;br /&gt;&lt;br /&gt;SELECT makt~matnr&lt;br /&gt;       makt~maktx&lt;br /&gt;       mara~mtart&lt;br /&gt;  INTO CORRESPONDING FIELDS OF TABLE it_mat&lt;br /&gt;  UP TO rows ROWS&lt;br /&gt;  FROM mara INNER JOIN makt&lt;br /&gt;       ON makt~matnr = mara~matnr&lt;br /&gt;       AND makt~spras = sy-langu.&lt;br /&gt;&lt;br /&gt;LOOP AT it_mat.&lt;br /&gt;  COMPUTE it_mat-jnc1 =  sy-datum - sy-tabix.&lt;br /&gt;  MOVE sy-tabix TO it_mat-jnc2.&lt;br /&gt;  MOVE 'Helo'   TO it_mat-jnc3.&lt;br /&gt;  MODIFY it_mat.&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* PERFORM zjnc_dump_grid  USING 'IT_MAT[]' 'IT_MAT' 1001 'Material&lt;br /&gt;Dump'.&lt;br /&gt;&lt;br /&gt;* Note that IT_MAT with Header line is 2 in 1&lt;br /&gt;* IT_MAT[] is the table object and IT_MAT is the header work area&lt;br /&gt;&lt;br /&gt;PERFORM zjnc_dump_list  USING 'IT_MAT[]' 'IT_MAT' 'Material Dump'.&lt;br /&gt;&lt;br /&gt;SELECT *&lt;br /&gt;  INTO TABLE it_str&lt;br /&gt;  UP TO rows ROWS&lt;br /&gt;  FROM makt&lt;br /&gt; WHERE makt~spras = sy-langu.&lt;br /&gt;&lt;br /&gt;* Note that IT_STR with Header line is 2 in 1&lt;br /&gt;* IT_STR[] is the table object and IT_STR is the header work area&lt;br /&gt;* As FORM zjnc_dump_list uses RTTI there is no special case for&lt;br /&gt;Structures&lt;br /&gt;&lt;br /&gt;PERFORM zjnc_dump_list  USING 'IT_STR[]' 'IT_STR' 'Structure Dump'.&lt;/fs_table&gt;&lt;/fs_type&gt;&lt;/fs_type&gt;&lt;/fs_line&gt;&lt;/fs_line&gt;&lt;/fs_table&gt;&lt;/fs_line&gt;&lt;/fs_table&gt;&lt;/fs_type&gt;&lt;/fs_table&gt;&lt;/fs_type&gt;&lt;/fs_type&gt;&lt;/fs_line&gt;&lt;/fs_line&gt;&lt;/fs_table&gt;&lt;/fs_line&gt;&lt;/fs_table&gt;&lt;/fs_type&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>ALV Reporting - REUSE_ALV_BLOCK_LIST_DISPLAY</title><link>http://freesapabapnotes.blogspot.com/2009/02/alv-reporting-reusealvblocklistdisplay.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:16:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-4838049955776679117</guid><description>&lt;pre&gt;REPORT z_alv_list_block.&lt;br /&gt;TYPE-POOLS: slis. " ALV Global types&lt;br /&gt;SELECTION-SCREEN :&lt;br /&gt;SKIP,&lt;br /&gt;BEGIN OF LINE,&lt;br /&gt;COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED&lt;br /&gt;PARAMETERS p_max(2) TYPE n DEFAULT '02' OBLIGATORY.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;DATA:&lt;br /&gt;* 1st Table&lt;br /&gt;BEGIN OF gt_kna1 OCCURS 0, " Data displayed&lt;br /&gt;kunnr LIKE kna1-kunnr, " Customer number&lt;br /&gt;ernam LIKE kna1-ernam, " Name of Person who Created&lt;br /&gt;erdat LIKE kna1-erdat, " Creation date&lt;br /&gt;name1 LIKE kna1-name1, " Name 1&lt;br /&gt;END OF gt_kna1,&lt;br /&gt;* 2nd Table&lt;br /&gt;BEGIN OF gt_mara OCCURS 0,&lt;br /&gt;ernam LIKE mara-ernam, " Name of Person who Created&lt;br /&gt;matnr LIKE mara-matnr, " Material number&lt;br /&gt;ersda LIKE mara-e rsda, " Creation date&lt;br /&gt;brgew LIKE mara-brgew, " Gross weight&lt;br /&gt;END OF gt_mara,&lt;br /&gt;* 3rd Table&lt;br /&gt;BEGIN OF gt_vbak OCCURS 0,&lt;br /&gt;vkorg LIKE vbak-vkorg, " Sales organization&lt;br /&gt;kunnr LIKE vbak-kunnr, " Sold-to party&lt;br /&gt;vbeln LIKE vbak-vbeln, " Sales document&lt;br /&gt;netwr LIKE vbak-netwr, " Net Value of the Sales Order&lt;br /&gt;waerk LIKE vbak-waerk, " SD document currency&lt;br /&gt;END OF gt_vbak.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;INITIALIZATION.&lt;br /&gt;v_1 = 'Maximum of records to read'.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;* Read data&lt;br /&gt;SELECT * FROM kna1&lt;br /&gt;UP TO p_max ROWS&lt;br /&gt;INTO CORRESPONDING FIELDS OF TABLE gt_kna1.&lt;br /&gt;SELECT * FROM mara&lt;br /&gt;UP TO p_max ROWS&lt;br /&gt;INTO CORRESPONDING FIELDS OF TABLE gt_mara.&lt;br /&gt;SELECT * FROM vbak&lt;br /&gt;UP TO p_max ROWS&lt;br /&gt;INTO CORRESPONDING FIELDS OF TABLE gt_vbak.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'&lt;br /&gt;EXPORTING&lt;br /&gt;i_callback_program = sy-cprog&lt;br /&gt;i_callback_user_command = 'USER_COMMAND'.&lt;br /&gt;PERFORM list_append TABLES gt_kna1&lt;br /&gt;USING '1'&lt;br /&gt;'GT_KNA1'.&lt;br /&gt;PERFORM list_append TABLES gt_mara&lt;br /&gt;USING '2'&lt;br /&gt;'GT_MARA'.&lt;br /&gt;PERFORM list_append TABLES gt_vbak&lt;br /&gt;USING '3'&lt;br /&gt;'GT_VBAK'.&lt;br /&gt;PERFORM f_list_display.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM USER_COMMAND *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM user_command USING i_ucomm LIKE sy-ucomm&lt;br /&gt;is_selfield TYPE slis_selfield. "#EC CALLED&lt;br /&gt;CASE i_ucomm.&lt;br /&gt;WHEN '&amp;amp;IC1'. " Pick&lt;br /&gt;CASE is_selfield-tabname.&lt;br /&gt;WHEN 'GT_MARA'.&lt;br /&gt;WHEN 'GT_KNA1'.&lt;br /&gt;WHEN 'GT_VBAK'.&lt;br /&gt;READ TABLE gt_vbak INDEX is_selfield-tabindex.&lt;br /&gt;IF sy-subrc EQ 0.&lt;br /&gt;* Sales order number&lt;br /&gt;SET PARAMETER ID 'AUN' FIELD gt_vbak-vbeln.&lt;br /&gt;* Display Sales Order&lt;br /&gt;CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDCASE.&lt;br /&gt;ENDCASE.&lt;br /&gt;ENDFORM. " USER_COMMAND&lt;br /&gt;*---------------------------------------------------------------------*&lt; /div&gt;&lt;br /&gt;* Form list_append&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM list_append TABLES ut_table&lt;br /&gt;USING u_no TYPE char1&lt;br /&gt;u_tabname TYPE slis_tabname.&lt;br /&gt;* Macro definition&lt;br /&gt;DEFINE m_fieldcat.&lt;br /&gt;ls_fieldcat-fieldname = &amp;amp;1.&lt;br /&gt;ls_fieldcat-ref_tabname = &amp;amp;2.&lt;br /&gt;append ls_fieldcat to lt_fieldcat.&lt;br /&gt;END-OF-DEFINITION.&lt;br /&gt;DEFINE m_sort.&lt;br /&gt;ls_sort-fieldname = &amp;amp;1.&lt;br /&gt;ls_sort-up = 'X'.&lt;br /&gt;append ls_sort to lt_sort.&lt;br /&gt;END-OF-DEFINITION.&lt;br /&gt;DATA :&lt;br /&gt;ls_fieldcat TYPE slis_fieldcat_alv,&lt;br /&gt;lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog&lt;br /&gt;ls_sort TYPE slis_sortinfo_alv,&lt;br /&gt;lt_sort TYPE slis_t_sortinfo_alv. " Sort table&lt;br /&gt;DATA:&lt;br /&gt;lt_events TYPE slis_t_event,&lt;br /&gt;ls_event TYPE slis_alv_event,&lt;br /&gt;ls_layout TYPE slis_layout_alv.&lt;br /&gt;ls_layout-group_change_edit = 'X'.&lt;br /&gt;ls_layout-colwidth_optimize = 'X'.&lt;br /&gt;ls_layout-zebra = 'X'.&lt;br /&gt;ls_layout-detail_popup = 'X'.&lt;br /&gt;ls_layout-get_selinfos = 'X'.&lt;br /&gt;ls_layout-max_linesize = '200'.&lt;br /&gt;CASE u_no.&lt;br /&gt;WHEN '1'.&lt;br /&gt;* Build field catalog and sort table&lt;br /&gt;m_fieldcat 'KUNNR' 'KNA1'.&lt;br /&gt;m_fieldcat 'ERNAM' 'KNA1'.&lt;br /&gt;m_fieldcat 'ERDAT' 'KNA1'.&lt;br /&gt;m_fieldcat 'NAME1' 'KNA1'.&lt;br /&gt;m_sort 'KUNNR'.&lt;br /&gt;WHEN '2'.&lt;br /&gt;m_fieldcat 'MATNR' 'MARA'.&lt;br /&gt;m_fieldcat 'ERNAM' 'MARA'.&lt;br /&gt;m_fieldcat 'ERSDA' 'MARA'.&lt;br /&gt;m_fieldcat 'BRGEW' 'MARA'.&lt;br /&gt;m_sort 'MATNR'.&lt;br /&gt;WHEN '3'.&lt;br /&gt;m_fieldcat 'VBELN' 'VBAK'.&lt;br /&gt;m_fieldcat 'VKORG' 'VBAK'.&lt;br /&gt;m_fieldcat 'KUNNR' 'VBAK'.&lt;br /&gt;m_fieldcat 'NETWR' 'VBAK'.&lt;br /&gt;m_fieldcat 'WAERK' 'VBAK'.&lt;br /&gt;m_sort 'VBELN'.&lt;br /&gt;ENDCASE.&lt;br /&gt;IF u_no CA '13'.&lt;br /&gt;MOVE 'TOP_OF_PAGE' TO ls_event-name.&lt;br /&gt;CONCATENATE 'TOP_OF_PAGE' u_no INTO ls_event-form.&lt;br /&gt;APPEND ls_event TO lt_events.&lt;br /&gt;ELSE.&lt;br /&gt;MOVE 'TOP_OF_LIST' TO ls_event-name.&lt;br /&gt;CONCATENATE 'TOP_OF_LIST' u_no INTO ls_event-form.&lt;br /&gt;APPEND ls_event TO lt_events.&lt;br /&gt;ENDIF.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'&lt;br /&gt;EXPORTING&lt;br /&gt;it_fieldcat = lt_fieldcat&lt;br /&gt;is_layout = ls_layout&lt;br /&gt;i_tabname = u_tabname&lt;br /&gt;it_events = lt_events&lt;br /&gt;it_sort = lt_sort&lt;br /&gt;* i_text =&lt;br /&gt;TABLES&lt;br /&gt;t_outtab = ut_table&lt;br /&gt;EXCEPTIONS&lt;br /&gt;program_error = 1&lt;br /&gt;maximum_of_appends_reached = 2&lt;br /&gt;OTHERS = 3.&lt;br /&gt;IF sy-subrc &lt;&gt; 0.&lt;br /&gt;MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;br /&gt;WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM. " LIST_APPEND&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* Form f_list_display&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM f_list_display.&lt;br /&gt;DATA ls_print TYPE slis_print_alv.&lt;br /&gt;ls_print-no_print_selinfos = 'X'. " Display no selection infos&lt;br /&gt;ls_print-no_print_listinfos = 'X'. " Display no listinfos&lt;br /&gt;ls_print-reserve_lines = 2. " Lines reserved for end of page&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'&lt;br /&gt;EXPORTING&lt;br /&gt;i_interface_check = ' '&lt;br /&gt;is_print = ls_print&lt;br /&gt;EXCEPTIONS&lt;br /&gt;program_error = 1&lt;br /&gt;OTHERS = 2.&lt;br /&gt;IF sy-subrc &lt;&gt; 0.&lt;br /&gt;MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;br /&gt;WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM. " F_LIST_DISPLAY&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM top_of_page1 *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM top_of_page1. "#EC CALLED&lt;br /&gt;PERFORM top_of_page.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM top_of_page3 *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM top_of_page3. "#EC CALLED&lt;br /&gt;PERFORM top_of_page.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM top_of_page *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM top_of_page.&lt;br /&gt;ULINE.&lt;br /&gt;WRITE : sy-uname, sy-title(56) CENTERED, sy-datum.&lt;br /&gt;ULINE.&lt;br /&gt;ENDFORM.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;* FORM top_of_list2 *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM top_of_list2. "#EC CALLED&lt;br /&gt;WRITE 'TOP OF LIST2'.&lt;br /&gt;ENDFORM.&lt;br /&gt;************** END OF PROGRAM Z_ALV_LIST_BLOCK *********************&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for An Interactive ALV Report</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-interactive-alv.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:15:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-1881988367376131011</guid><description>&lt;pre&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Report  ZZ_22038_22098_002                                          *&lt;br /&gt;*&amp;amp;                                                                     *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; This is an Interactive ALV report, where on line slection we can see&lt;br /&gt;*&amp;amp;  the secondry list&lt;br /&gt;*&amp;amp;&lt;br /&gt;*&amp;amp;                                                                     *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;REPORT  ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650&lt;br /&gt;MESSAGE-ID ZZ_9838                      .&lt;br /&gt;&lt;br /&gt;TYPE-POOLS: SLIS.&lt;br /&gt;*type declaration for values from ekko&lt;br /&gt;TYPES: BEGIN OF I_EKKO,&lt;br /&gt;     EBELN LIKE EKKO-EBELN,&lt;br /&gt;     AEDAT LIKE EKKO-AEDAT,&lt;br /&gt;     BUKRS LIKE EKKO-BUKRS,&lt;br /&gt;     BSART LIKE EKKO-BSART,&lt;br /&gt;     LIFNR LIKE EKKO-LIFNR,&lt;br /&gt;     END OF I_EKKO.&lt;br /&gt;&lt;br /&gt;DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,&lt;br /&gt;    WA_EKKO TYPE I_EKKO.&lt;br /&gt;&lt;br /&gt;*type declaration for values from ekpo&lt;br /&gt;TYPES: BEGIN OF I_EKPO,&lt;br /&gt;     EBELN LIKE EKPO-EBELN,&lt;br /&gt;     EBELP LIKE EKPO-EBELP,&lt;br /&gt;     MATNR LIKE EKPO-MATNR,&lt;br /&gt;     MENGE LIKE EKPO-MENGE,&lt;br /&gt;     MEINS LIKE EKPO-MEINS,&lt;br /&gt;     NETPR LIKE EKPO-NETPR,&lt;br /&gt;     END OF I_EKPO.&lt;br /&gt;&lt;br /&gt;DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,&lt;br /&gt;    WA_EKPO TYPE I_EKPO .&lt;br /&gt;&lt;br /&gt;*variable for Report ID&lt;br /&gt;DATA: V_REPID LIKE SY-REPID .&lt;br /&gt;&lt;br /&gt;*declaration for fieldcatalog&lt;br /&gt;DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,&lt;br /&gt;    WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.&lt;br /&gt;&lt;br /&gt;* declaration for events table where user comand or set PF status will&lt;br /&gt;* be defined&lt;br /&gt;DATA: V_EVENTS TYPE SLIS_T_EVENT,&lt;br /&gt;    WA_EVENT TYPE SLIS_ALV_EVENT.&lt;br /&gt;&lt;br /&gt;* declartion for layout&lt;br /&gt;DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.&lt;br /&gt;&lt;br /&gt;* declaration for variant(type of display we want)&lt;br /&gt;DATA: I_VARIANT TYPE DISVARIANT,&lt;br /&gt;    I_VARIANT1 TYPE DISVARIANT,&lt;br /&gt;    I_SAVE(1) TYPE C.&lt;br /&gt;&lt;br /&gt;*PARAMETERS : p_var TYPE disvariant-variant.&lt;br /&gt;&lt;br /&gt;*Title displayed when the alv list is displayed&lt;br /&gt;DATA:  I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.&lt;br /&gt;DATA:  I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.&lt;br /&gt;&lt;br /&gt;INITIALIZATION.&lt;br /&gt;V_REPID = SY-REPID.&lt;br /&gt;PERFORM BUILD_FIELDCATLOG.&lt;br /&gt;PERFORM EVENT_CALL.&lt;br /&gt;PERFORM POPULATE_EVENT.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;PERFORM DATA_RETRIEVAL.&lt;br /&gt;PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.&lt;br /&gt;PERFORM DISPLAY_ALV_REPORT.&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_FIELDCATLOG&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*       Fieldcatalog has all the field details from ekko&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM BUILD_FIELDCATLOG.&lt;br /&gt;WA_FIELDCAT-TABNAME = 'IT_EKKO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'EBELN'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'PO NO.'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;&lt;br /&gt;WA_FIELDCAT-TABNAME = 'IT_EKKO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'AEDAT'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'DATE.'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;&lt;br /&gt;WA_FIELDCAT-TABNAME = 'IT_EKKO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'BUKRS'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;&lt;br /&gt;WA_FIELDCAT-TABNAME = 'IT_EKKO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'BUKRS'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;&lt;br /&gt;WA_FIELDCAT-TABNAME = 'IT_EKKO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'LIFNR'.&lt;br /&gt;WA_FIELDCAT-NO_OUT    = 'X'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "BUILD_FIELDCATLOG&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  EVENT_CALL&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*   we get all events - TOP OF PAGE or USER COMMAND in table v_events&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM EVENT_CALL.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;br /&gt; EXPORTING&lt;br /&gt;   I_LIST_TYPE           = 0&lt;br /&gt; IMPORTING&lt;br /&gt;   ET_EVENTS             = V_EVENTS&lt;br /&gt;*  EXCEPTIONS&lt;br /&gt;*    LIST_TYPE_WRONG       = 1&lt;br /&gt;*    OTHERS                = 2&lt;br /&gt;          .&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                    "EVENT_CALL&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  POPULATE_EVENT&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*      Events populated for TOP OF PAGE &amp;amp; USER COMAND&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM POPULATE_EVENT.&lt;br /&gt;READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.&lt;br /&gt;IF SY-SUBRC EQ 0.&lt;br /&gt;  WA_EVENT-FORM = 'TOP_OF_PAGE'.&lt;br /&gt;  MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =&lt;br /&gt;WA_EVENT-FORM.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.&lt;br /&gt;IF SY-SUBRC EQ 0.&lt;br /&gt;  WA_EVENT-FORM = 'USER_COMMAND'.&lt;br /&gt;  MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =&lt;br /&gt;WA_EVENT-NAME.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                    "POPULATE_EVENT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  data_retrieval&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*   retreiving values from the database table ekko&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM DATA_RETRIEVAL.&lt;br /&gt;SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "data_retrieval&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  bUild_listheader&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*      --&gt;I_LISTHEADEtext&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.&lt;br /&gt;DATA HLINE TYPE SLIS_LISTHEADER.&lt;br /&gt;HLINE-INFO = 'this is my first alv pgm'.&lt;br /&gt;HLINE-TYP = 'H'.&lt;br /&gt;ENDFORM.                    "build_listheader&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  display_alv_report&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM DISPLAY_ALV_REPORT.&lt;br /&gt;V_REPID = SY-REPID.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt; EXPORTING&lt;br /&gt;   I_CALLBACK_PROGRAM                = V_REPID&lt;br /&gt;*   I_CALLBACK_PF_STATUS_SET          = ' '&lt;br /&gt;   I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'&lt;br /&gt;   I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'&lt;br /&gt;   I_GRID_TITLE                      = I_TITLE_EKKO&lt;br /&gt;*   I_GRID_SETTINGS                   =&lt;br /&gt;*   IS_LAYOUT                         = ALV_LAYOUT&lt;br /&gt;   IT_FIELDCAT                       = I_FIELDCAT[]&lt;br /&gt;*   IT_EXCLUDING                      =&lt;br /&gt;*   IT_SPECIAL_GROUPS                 =&lt;br /&gt;*   IT_SORT                           =&lt;br /&gt;*   IT_FILTER                         =&lt;br /&gt;*   IS_SEL_HIDE                       =&lt;br /&gt;*     i_default                         = 'ZLAY1'&lt;br /&gt;   I_SAVE                            = 'A'&lt;br /&gt;*     is_variant                        = i_variant&lt;br /&gt;   IT_EVENTS                         = V_EVENTS&lt;br /&gt;  TABLES&lt;br /&gt;    T_OUTTAB                          = IT_EKKO&lt;br /&gt;* EXCEPTIONS&lt;br /&gt;*   PROGRAM_ERROR                     = 1&lt;br /&gt;*   OTHERS                            = 2&lt;br /&gt;          .&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                    "display_alv_report&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  TOP_OF_PAGE&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM TOP_OF_PAGE.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;  EXPORTING&lt;br /&gt;    IT_LIST_COMMENTARY       = IT_LISTHEADER&lt;br /&gt;*    i_logo                   =&lt;br /&gt;*    I_END_OF_LIST_GRID       =&lt;br /&gt;          .&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "TOP_OF_PAGE&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  USER_COMMAND&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*      --&gt;R_UCOMM    text&lt;br /&gt;*      --&gt;,          text&lt;br /&gt;*      --&gt;RS_SLEFIELDtext&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM&lt;br /&gt;RS_SELFIELD TYPE SLIS_SELFIELD.&lt;br /&gt;CASE R_UCOMM.&lt;br /&gt;  WHEN '&amp;amp;IC1'.&lt;br /&gt;    READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.&lt;br /&gt;    PERFORM BUILD_FIELDCATLOG_EKPO.&lt;br /&gt;    PERFORM EVENT_CALL_EKPO.&lt;br /&gt;    PERFORM POPULATE_EVENT_EKPO.&lt;br /&gt;    PERFORM DATA_RETRIEVAL_EKPO.&lt;br /&gt;    PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.&lt;br /&gt;    PERFORM DISPLAY_ALV_EKPO.&lt;br /&gt;ENDCASE.&lt;br /&gt;ENDFORM.                    "user_command&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_FIELDCATLOG_EKPO&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM BUILD_FIELDCATLOG_EKPO.&lt;br /&gt;&lt;br /&gt;WA_FIELDCAT-TABNAME = 'IT_EKPO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'EBELN'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'PO NO.'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;WA_FIELDCAT-TABNAME = 'IT_EKPO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'EBELP'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'LINE NO'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;WA_FIELDCAT-TABNAME = 'I_EKPO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'MATNR'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;WA_FIELDCAT-TABNAME = 'I_EKPO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'MENGE'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;&lt;br /&gt;WA_FIELDCAT-TABNAME = 'I_EKPO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'MEINS'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'UOM'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;&lt;br /&gt;WA_FIELDCAT-TABNAME = 'I_EKPO'.&lt;br /&gt;WA_FIELDCAT-FIELDNAME = 'NETPR'.&lt;br /&gt;WA_FIELDCAT-SELTEXT_M = 'PRICE'.&lt;br /&gt;APPEND WA_FIELDCAT TO I_FIELDCAT.&lt;br /&gt;CLEAR WA_FIELDCAT.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "BUILD_FIELDCATLOG_EKPO&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  event_call_ekpo&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*   we get all events - TOP OF PAGE or USER COMMAND in table v_events&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM EVENT_CALL_EKPO.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;br /&gt; EXPORTING&lt;br /&gt;   I_LIST_TYPE           = 0&lt;br /&gt; IMPORTING&lt;br /&gt;   ET_EVENTS             = V_EVENTS&lt;br /&gt;* EXCEPTIONS&lt;br /&gt;*   LIST_TYPE_WRONG       = 1&lt;br /&gt;*   OTHERS                = 2&lt;br /&gt;          .&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.                    "event_call_ekpo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  POPULATE_EVENT&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*        Events populated for TOP OF PAGE &amp;amp; USER COMAND&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM POPULATE_EVENT_EKPO.&lt;br /&gt;READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.&lt;br /&gt;IF SY-SUBRC EQ 0.&lt;br /&gt;  WA_EVENT-FORM = 'TOP_OF_PAGE'.&lt;br /&gt;  MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =&lt;br /&gt;WA_EVENT-FORM.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "POPULATE_EVENT&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  TOP_OF_PAGE&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM F_TOP_OF_PAGE.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;  EXPORTING&lt;br /&gt;    IT_LIST_COMMENTARY       = IT_LISTHEADER&lt;br /&gt;*    i_logo                   =&lt;br /&gt;*    I_END_OF_LIST_GRID       =&lt;br /&gt;          .&lt;br /&gt;&lt;br /&gt;ENDFORM.                    "TOP_OF_PAGE&lt;br /&gt;&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  USER_COMMAND&lt;br /&gt;*&amp;amp;--------------------------------------------------------------------*&lt;br /&gt;*       text&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*      --&gt;R_UCOMM    text&lt;br /&gt;*      --&gt;,          text&lt;br /&gt;*      --&gt;RS_SLEFIELDtext&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;*retreiving values from the database table ekko&lt;br /&gt;FORM DATA_RETRIEVAL_EKPO.&lt;br /&gt;SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.&lt;br /&gt;DATA: HLINE1 TYPE SLIS_LISTHEADER.&lt;br /&gt;HLINE1-TYP = 'H'.&lt;br /&gt;HLINE1-INFO = 'CHECKING PGM'.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FORM DISPLAY_ALV_EKPO.&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;EXPORTING&lt;br /&gt;*   I_INTERFACE_CHECK                 = ' '&lt;br /&gt;*   I_BYPASSING_BUFFER                = ' '&lt;br /&gt;*   I_BUFFER_ACTIVE                   = ' '&lt;br /&gt; I_CALLBACK_PROGRAM                = V_REPID&lt;br /&gt;*   I_CALLBACK_PF_STATUS_SET          = ' '&lt;br /&gt;*   I_CALLBACK_USER_COMMAND           = 'F_USER_COMMAND'&lt;br /&gt; I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'&lt;br /&gt;*   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '&lt;br /&gt;*   I_CALLBACK_HTML_END_OF_LIST       = ' '&lt;br /&gt;*   I_STRUCTURE_NAME                  =&lt;br /&gt;*   I_BACKGROUND_ID                   = ' '&lt;br /&gt; I_GRID_TITLE                      = I_TITLE_EKPO&lt;br /&gt;*   I_GRID_SETTINGS                   =&lt;br /&gt;*   IS_LAYOUT                         =&lt;br /&gt; IT_FIELDCAT                       = I_FIELDCAT[]&lt;br /&gt;*   IT_EXCLUDING                      =&lt;br /&gt;*   IT_SPECIAL_GROUPS                 =&lt;br /&gt;*   IT_SORT                           =&lt;br /&gt;*   IT_FILTER                         =&lt;br /&gt;*   IS_SEL_HIDE                       =&lt;br /&gt;*   I_DEFAULT                         =&lt;br /&gt; I_SAVE                            = 'A'&lt;br /&gt;*   IS_VARIANT                        =&lt;br /&gt; IT_EVENTS                         = V_EVENTS&lt;br /&gt;TABLES&lt;br /&gt;  T_OUTTAB                          = IT_EKPO&lt;br /&gt;EXCEPTIONS&lt;br /&gt; PROGRAM_ERROR                     = 1&lt;br /&gt; OTHERS                            = 2&lt;br /&gt;        .&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>sap abap program for Example of a Simple ALV Grid Report</title><link>http://freesapabapnotes.blogspot.com/2009/02/sap-abap-program-for-example-of-simple.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:14:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-8246801006556340712</guid><description>&lt;pre&gt;&lt;span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;REPORT  ZTUFI091                                .&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Report  ZDEMO_ALVGRID                                               *&lt;br /&gt;*&amp;amp;                                                                     *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;                                                                     *&lt;br /&gt;*&amp;amp; Example of a simple ALV Grid Report                                 *&lt;br /&gt;*&amp;amp; ...................................                                 *&lt;br /&gt;*&amp;amp;                                                                     *&lt;br /&gt;*&amp;amp; The basic requirement for this demo is to display a number of       *&lt;br /&gt;*&amp;amp; fields from the EKKO table.                                         *&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*REPORT  zdemo_alvgrid                 .&lt;br /&gt;&lt;br /&gt;TABLES:     ekko.&lt;br /&gt;&lt;br /&gt;type-pools: slis.                                 "ALV Declarations&lt;br /&gt;*Data Declaration&lt;br /&gt;*----------------&lt;br /&gt;TYPES: BEGIN OF t_ekko,&lt;br /&gt;ebeln TYPE ekpo-ebeln,&lt;br /&gt;ebelp TYPE ekpo-ebelp,&lt;br /&gt;statu TYPE ekpo-statu,&lt;br /&gt;aedat TYPE ekpo-aedat,&lt;br /&gt;matnr TYPE ekpo-matnr,&lt;br /&gt;menge TYPE ekpo-menge,&lt;br /&gt;meins TYPE ekpo-meins,&lt;br /&gt;netpr TYPE ekpo-netpr,&lt;br /&gt;peinh TYPE ekpo-peinh,&lt;br /&gt;END OF t_ekko.&lt;br /&gt;&lt;br /&gt;DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,&lt;br /&gt;    wa_ekko TYPE t_ekko.&lt;br /&gt;&lt;br /&gt;*ALV data declarations&lt;br /&gt;data: fieldcatalog type slis_t_fieldcat_alv with header line,&lt;br /&gt;    gd_tab_group type slis_t_sp_group_alv,&lt;br /&gt;    gd_layout    type slis_layout_alv,&lt;br /&gt;    gd_repid     like sy-repid,&lt;br /&gt;    gt_events     type slis_t_event,&lt;br /&gt;    gd_prntparams type slis_print_alv.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;************************************************************************&lt;br /&gt;*Start-of-selection.&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;&lt;br /&gt;perform data_retrieval.&lt;br /&gt;perform build_fieldcatalog.&lt;br /&gt;perform build_layout.&lt;br /&gt;perform build_events.&lt;br /&gt;perform build_print_params.&lt;br /&gt;perform display_alv_report.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_FIELDCATALOG&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Build Fieldcatalog for ALV Report&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form build_fieldcatalog.&lt;br /&gt;&lt;br /&gt;* There are a number of ways to create a fieldcat.&lt;br /&gt;* For the purpose of this example i will build the fieldcatalog manualy&lt;br /&gt;* by populating the internal table fields individually and then&lt;br /&gt;* appending the rows. This method can be the most time consuming but can&lt;br /&gt;* also allow you  more control of the final product.&lt;br /&gt;&lt;br /&gt;* Beware though, you need to ensure that all fields required are&lt;br /&gt;* populated. When using some of functionality available via ALV, such as&lt;br /&gt;* total. You may need to provide more information than if you were&lt;br /&gt;* simply displaying the result&lt;br /&gt;*               I.e. Field type may be required in-order for&lt;br /&gt;*                    the 'TOTAL' function to work.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'EBELN'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Purchase Order'.&lt;br /&gt;fieldcatalog-col_pos     = 0.&lt;br /&gt;fieldcatalog-outputlen   = 10.&lt;br /&gt;fieldcatalog-emphasize   = 'X'.&lt;br /&gt;fieldcatalog-key         = 'X'.&lt;br /&gt;*  fieldcatalog-do_sum      = 'X'.&lt;br /&gt;*  fieldcatalog-no_zero     = 'X'.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'EBELP'.&lt;br /&gt;fieldcatalog-seltext_m   = 'PO Item'.&lt;br /&gt;fieldcatalog-col_pos     = 1.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'STATU'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Status'.&lt;br /&gt;fieldcatalog-col_pos     = 2.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'AEDAT'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Item change date'.&lt;br /&gt;fieldcatalog-col_pos     = 3.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'MATNR'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Material Number'.&lt;br /&gt;fieldcatalog-col_pos     = 4.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'MENGE'.&lt;br /&gt;fieldcatalog-seltext_m   = 'PO quantity'.&lt;br /&gt;fieldcatalog-col_pos     = 5.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'MEINS'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Order Unit'.&lt;br /&gt;fieldcatalog-col_pos     = 6.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'NETPR'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Net Price'.&lt;br /&gt;fieldcatalog-col_pos     = 7.&lt;br /&gt;fieldcatalog-outputlen   = 15.&lt;br /&gt;fieldcatalog-datatype     = 'CURR'.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;&lt;br /&gt;fieldcatalog-fieldname   = 'PEINH'.&lt;br /&gt;fieldcatalog-seltext_m   = 'Price Unit'.&lt;br /&gt;fieldcatalog-col_pos     = 8.&lt;br /&gt;append fieldcatalog to fieldcatalog.&lt;br /&gt;clear  fieldcatalog.&lt;br /&gt;endform.                    " BUILD_FIELDCATALOG&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_LAYOUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Build layout for ALV grid report&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form build_layout.&lt;br /&gt;gd_layout-no_input          = 'X'.&lt;br /&gt;gd_layout-colwidth_optimize = 'X'.&lt;br /&gt;gd_layout-totals_text       = 'Totals'(201).&lt;br /&gt;*  gd_layout-totals_only        = 'X'.&lt;br /&gt;*  gd_layout-f2code            = 'DISP'.  "Sets fcode for when double&lt;br /&gt;*                                         "click(press f2)&lt;br /&gt;*  gd_layout-zebra             = 'X'.&lt;br /&gt;*  gd_layout-group_change_edit = 'X'.&lt;br /&gt;*  gd_layout-header_text       = 'helllllo'.&lt;br /&gt;endform.                    " BUILD_LAYOUT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  DISPLAY_ALV_REPORT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Display report using ALV grid&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form display_alv_report.&lt;br /&gt;gd_repid = sy-repid.&lt;br /&gt;call function 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;     exporting&lt;br /&gt;          i_callback_program      = gd_repid&lt;br /&gt;          i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM&lt;br /&gt;          i_callback_user_command = 'USER_COMMAND'&lt;br /&gt;*            i_grid_title           = outtext&lt;br /&gt;          is_layout               = gd_layout&lt;br /&gt;          it_fieldcat             = fieldcatalog[]&lt;br /&gt;*            it_special_groups       = gd_tabgroup&lt;br /&gt;          it_events               = gt_events&lt;br /&gt;          is_print                = gd_prntparams&lt;br /&gt;          i_save                  = 'X'&lt;br /&gt;*            is_variant              = z_template&lt;br /&gt;     tables&lt;br /&gt;          t_outtab                = it_ekko&lt;br /&gt;     exceptions&lt;br /&gt;          program_error           = 1&lt;br /&gt;          others                  = 2.&lt;br /&gt;if sy-subrc &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;endif.&lt;br /&gt;endform.                    " DISPLAY_ALV_REPORT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  DATA_RETRIEVAL&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Retrieve data form EKPO table and populate itab it_ekko&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form data_retrieval.&lt;br /&gt;&lt;br /&gt;select ebeln ebelp statu aedat matnr menge meins netpr peinh&lt;br /&gt;up to 10 rows&lt;br /&gt;from ekpo&lt;br /&gt;into table it_ekko.&lt;br /&gt;endform.                    " DATA_RETRIEVAL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;* Form  TOP-OF-PAGE                                                 *&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;* ALV Report Header                                                 *&lt;br /&gt;*-------------------------------------------------------------------*&lt;br /&gt;Form top-of-page.&lt;br /&gt;*ALV Header declarations&lt;br /&gt;data: t_header type slis_t_listheader,&lt;br /&gt;    wa_header type slis_listheader,&lt;br /&gt;    t_line like wa_header-info,&lt;br /&gt;    ld_lines type i,&lt;br /&gt;    ld_linesc(10) type c.&lt;br /&gt;&lt;br /&gt;* Title&lt;br /&gt;wa_header-typ  = 'H'.&lt;br /&gt;wa_header-info = 'EKKO Table Report'.&lt;br /&gt;append wa_header to t_header.&lt;br /&gt;clear wa_header.&lt;br /&gt;&lt;br /&gt;* Date&lt;br /&gt;wa_header-typ  = 'S'.&lt;br /&gt;wa_header-key = 'Date: '.&lt;br /&gt;CONCATENATE  sy-datum+6(2) '.'&lt;br /&gt;             sy-datum+4(2) '.'&lt;br /&gt;             sy-datum(4) INTO wa_header-info.   "todays date&lt;br /&gt;append wa_header to t_header.&lt;br /&gt;clear: wa_header.&lt;br /&gt;&lt;br /&gt;* Total No. of Records Selected&lt;br /&gt;describe table it_ekko lines ld_lines.&lt;br /&gt;ld_linesc = ld_lines.&lt;br /&gt;concatenate 'Total No. of Records Selected: ' ld_linesc&lt;br /&gt;                  into t_line separated by space.&lt;br /&gt;wa_header-typ  = 'A'.&lt;br /&gt;wa_header-info = t_line.&lt;br /&gt;append wa_header to t_header.&lt;br /&gt;clear: wa_header, t_line.&lt;br /&gt;&lt;br /&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;br /&gt;     exporting&lt;br /&gt;          it_list_commentary = t_header.&lt;br /&gt;*            i_logo             = 'Z_LOGO'.&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*------------------------------------------------------------------*&lt;br /&gt;*       FORM USER_COMMAND                                          *&lt;br /&gt;*------------------------------------------------------------------*&lt;br /&gt;*       --&gt; R_UCOMM                                                *&lt;br /&gt;*       --&gt; RS_SELFIELD                                            *&lt;br /&gt;*------------------------------------------------------------------*&lt;br /&gt;FORM user_command USING r_ucomm LIKE sy-ucomm&lt;br /&gt;                rs_selfield TYPE slis_selfield.&lt;br /&gt;&lt;br /&gt;* Check function code&lt;br /&gt;CASE r_ucomm.&lt;br /&gt;  WHEN '&amp;amp;IC1'.&lt;br /&gt;*   Check field clicked on within ALVgrid report&lt;br /&gt;  IF rs_selfield-fieldname = 'EBELN'.&lt;br /&gt;*     Read data table, using index of row user clicked on&lt;br /&gt;    READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.&lt;br /&gt;*     Set parameter ID for transaction screen field&lt;br /&gt;    SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.&lt;br /&gt;*     Sxecute transaction ME23N, and skip initial data entry screen&lt;br /&gt;    CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDCASE.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_EVENTS&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Build events table&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form build_events.&lt;br /&gt;data: ls_event type slis_alv_event.&lt;br /&gt;&lt;br /&gt;call function 'REUSE_ALV_EVENTS_GET'&lt;br /&gt;     exporting&lt;br /&gt;          i_list_type = 0&lt;br /&gt;     importing&lt;br /&gt;          et_events   = gt_events[].&lt;br /&gt;read table gt_events with key name =  slis_ev_end_of_page&lt;br /&gt;                         into ls_event.&lt;br /&gt;if sy-subrc = 0.&lt;br /&gt;  move 'END_OF_PAGE' to ls_event-form.&lt;br /&gt;  append ls_event to gt_events.&lt;br /&gt;endif.&lt;br /&gt;&lt;br /&gt;  read table gt_events with key name =  slis_ev_end_of_list&lt;br /&gt;                         into ls_event.&lt;br /&gt;if sy-subrc = 0.&lt;br /&gt;  move 'END_OF_LIST' to ls_event-form.&lt;br /&gt;  append ls_event to gt_events.&lt;br /&gt;endif.&lt;br /&gt;endform.                    " BUILD_EVENTS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  BUILD_PRINT_PARAMS&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*       Setup print parameters&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;form build_print_params.&lt;br /&gt;gd_prntparams-reserve_lines = '3'.   "Lines reserved for footer&lt;br /&gt;gd_prntparams-no_coverpage = 'X'.&lt;br /&gt;endform.                    " BUILD_PRINT_PARAMS&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  END_OF_PAGE&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;form END_OF_PAGE.&lt;br /&gt;data: listwidth type i,&lt;br /&gt;      ld_pagepos(10) type c,&lt;br /&gt;      ld_page(10)    type c.&lt;br /&gt;&lt;br /&gt;write: sy-uline(50).&lt;br /&gt;skip.&lt;br /&gt;write:/40 'Page:', sy-pagno .&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp;      Form  END_OF_LIST&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;form END_OF_LIST.&lt;br /&gt;data: listwidth type i,&lt;br /&gt;      ld_pagepos(10) type c,&lt;br /&gt;      ld_page(10)    type c.&lt;br /&gt;&lt;br /&gt;skip.&lt;br /&gt;write:/40 'Page:', sy-pagno .&lt;br /&gt;endform.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>ABAP Example Program ALV Grid Control</title><link>http://freesapabapnotes.blogspot.com/2009/02/abap-example-program-alv-grid-control.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:14:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-2627663880760701632</guid><description>&lt;p&gt;You need to create a screen 100 for calling it, and in the Element list of the sceen supply OK_CODE of type OK &amp;amp; in the layout, place a Custom - control with name DILEEP_TEST1. &lt;/p&gt;&lt;p&gt;Then activate modules STATUS_0100 and USER_COMMAND_0100 in the flow logic .&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;REPORT ZTEST_DIL4 .&lt;br /&gt;TABLES ZMSTKSUM.&lt;br /&gt;DATA : OK_CODE LIKE SY-UCOMM,&lt;br /&gt;     TAB_DISPLAY TYPE TABLE OF ZMSTKSUM,&lt;br /&gt;     C_CONTAINER TYPE SCRFNAME VALUE 'DILEEP_TEST1',&lt;br /&gt;     ALV_GRID TYPE REF TO CL_GUI_ALV_GRID,&lt;br /&gt;     C_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.&lt;br /&gt;&lt;br /&gt;SELECT-OPTIONS : S_WERKS FOR ZMSTKSUM-WERKS.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;br /&gt;&lt;br /&gt;SELECT * FROM ZMSTKSUM INTO TABLE TAB_DISPLAY WHERE WERKS IN S_WERKS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CALL SCREEN 100.&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;*&amp;amp;      Module  STATUS_0100  OUTPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;MODULE STATUS_0100 OUTPUT.&lt;br /&gt;SET PF-STATUS 'MAIN'.&lt;br /&gt;*  SET TITLEBAR 'xxx'.&lt;br /&gt;IF C_CUSTOM_CONTAINER IS INITIAL.&lt;br /&gt;CREATE OBJECT C_CUSTOM_CONTAINER EXPORTING CONTAINER_NAME = C_CONTAINER&lt;br /&gt;.&lt;br /&gt;  CREATE OBJECT ALV_GRID EXPORTING I_PARENT = C_CUSTOM_CONTAINER.&lt;br /&gt;&lt;br /&gt;  CALL METHOD ALV_GRID-&gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;br /&gt;    EXPORTING&lt;br /&gt;*    I_BUFFER_ACTIVE               =&lt;br /&gt;*    I_BYPASSING_BUFFER            =&lt;br /&gt;      I_STRUCTURE_NAME              = 'ZMSTKSUM'&lt;br /&gt;*    IS_VARIANT                    =&lt;br /&gt;*    I_SAVE                        =&lt;br /&gt;*    I_DEFAULT                     = 'X'&lt;br /&gt;*    IS_LAYOUT                     =&lt;br /&gt;*    IS_PRINT                      =&lt;br /&gt;*    IT_SPECIAL_GROUPS             =&lt;br /&gt;*    IT_TOOLBAR_EXCLUDING          =&lt;br /&gt;    CHANGING&lt;br /&gt;      IT_OUTTAB                     = TAB_DISPLAY&lt;br /&gt;*    IT_FIELDCATALOG               =&lt;br /&gt;*    IT_SORT                       =&lt;br /&gt;*    IT_FILTER                     =&lt;br /&gt;*  EXCEPTIONS&lt;br /&gt;*    INVALID_PARAMETER_COMBINATION = 1&lt;br /&gt;*    PROGRAM_ERROR                 = 2&lt;br /&gt;*    others                        = 3&lt;br /&gt;      .&lt;br /&gt;  IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;ENDIF.&lt;br /&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;*&amp;amp;      Module  USER_COMMAND_0100  INPUT&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;*       text&lt;br /&gt;*----------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;MODULE USER_COMMAND_0100 INPUT.&lt;br /&gt;CASE OK_CODE.&lt;br /&gt;  WHEN 'EXIT'.&lt;br /&gt;    LEAVE PROGRAM.&lt;br /&gt;&lt;br /&gt;ENDCASE.&lt;br /&gt;ENDMODULE.                 " USER_COMMAND_0100  INPUT&lt;/span&gt;&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>What Are The Events In abap ALV</title><link>http://freesapabapnotes.blogspot.com/2009/02/what-are-events-in-abap-alv.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:13:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-5500204350704074085</guid><description>&lt;p&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;What are the events in alvs and which events not used in alvs?&lt;/span&gt;&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Events in alv and their FM    The main events in alv and their FM and why we use these: &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;1. SLIS_PRINT_ALV. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;2. SLIS_T_LISTHEADER. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;3. SLIS_T_EVENT. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;4. SLIS_T_SORTINFO_ALV. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;5. SLIS_T_LAYOUT_ALV. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;6. SLIS_T_FIELDCAT_ALV. &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and in classic reports what is the sequence of events:   === Events are &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;At selection-screen output. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Initialization. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;At selection-screen on field &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;At selection-screen on end of field &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;At selection-screen on Radiobutton Group R1. (If you have any radio buttons) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;At selection-screen on block b1. (If you have any blocks) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Start-of-selection. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Get node. (if the data is retreived from a logical database) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Get node late. (if the data is retreived from a logical database) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Top-of-page. (if the write statement is in the end-of-selection event or we can say that before the first write statement) &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;end-of-selection. &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and fuction modules are &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;LISTHEADER - Is used to print the header information in the ALV List. Name, Date, Time, ALV Name and other details are called as Header information. EVENT - Basically this is the FM to handle Event's. When the user needs to do some event operation like when double clicking the a particular field we need to perform some operation. These events are captured by this FM. LAYOUT - This FM is used to define the layout of the List. There are many options available in this FM to define the Layout style. FIELDCAT - These are used to populate the List header. We can change them according to our req. &lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;User-defined Text Output Event&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Application&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      print_end_of_list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Define output text to be printed at the end of the entire list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      print_top_of_list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Define output text to be printed at the beginning of the entire list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      print_end_of_page&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Define output text to be printed at the end of each page&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      print_top_of_page&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Define output text to be printed at the beginning of each page&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      subtotal_text&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Define self-defined subtotals texts&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Mouse-controlled Actions in the Grid Control Event&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Application&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      button_click&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Query a click on a pushbutton in the ALV Grid Control&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      double_click&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Query a double-click on a cell of the ALV Grid control &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      hotspot_click&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Query a hotspot click on columns defined for this purpose in advance&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      onDrag&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Collect information when elements of the ALV Grid Control are dragged &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      onDrop&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Process information when elements of the ALV Grid Control are dropped &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      onDropComplete&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Perform final actions after successful Drag&amp;amp;Drop &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      onDropGetFlavor&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Distinguish between options for Drag&amp;amp;Drop behavior&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Processing of Self-defined and Standard Functions Event&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Application&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      before_user_command&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Query self-defined and standard function codes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      user_command&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Query self-defined function codes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      after_user_command&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Query self-defined and standard function codes&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Definition of Self-defined Functions Event&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Application&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      toolbar&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Change, delete or add GUI elements in the toolbar&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      menu_button&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Define menus for menu buttons in the toolbar&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      context_menu_request&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Change context menu&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      onf1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;    Define self-defined F1 help&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;All of these can be found under type group SLIS.&lt;/span&gt; &lt;/p&gt;&lt;p&gt;* Events&lt;br /&gt;SLIS_EV_ITEM_DATA_EXPAND        TYPE SLIS_FORMNAME VALUE 'ITEM_DATA_EXPAND',&lt;br /&gt;SLIS_EV_REPREP_SEL_MODIFY TYPE SLIS_FORMNAME VALUE 'REPREP_SEL_MODIFY', SLIS_EV_CALLER_EXIT_AT_START TYPE SLIS_FORMNAME VALUE 'CALLER_EXIT',&lt;br /&gt;SLIS_EV_USER_COMMAND              TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',&lt;br /&gt;SLIS_EV_TOP_OF_PAGE                     TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',&lt;br /&gt;SLIS_EV_DATA_CHANGED                TYPE SLIS_FORMNAME VALUE 'DATA_CHANGED',&lt;br /&gt;SLIS_EV_TOP_OF_COVERPAGE       TYPE SLIS_FORMNAME VALUE 'TOP_OF_COVERPAGE',&lt;br /&gt;SLIS_EV_END_OF_COVERPAGE       TYPE SLIS_FORMNAME VALUE 'END_OF_COVERPAGE',&lt;br /&gt;SLIS_EV_FOREIGN_TOP_OF_PAGE TYPE SLIS_FORMNAME&lt;br /&gt;VALUE 'FOREIGN_TOP_OF_PAGE', SLIS_EV_FOREIGN_END_OF_PAGE TYPE SLIS_FORMNAME&lt;br /&gt;VALUE 'FOREIGN_END_OF_PAGE',&lt;br /&gt;SLIS_EV_PF_STATUS_SET                  TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',&lt;br /&gt;SLIS_EV_LIST_MODIFY                      TYPE SLIS_FORMNAME VALUE 'LIST_MODIFY',&lt;br /&gt;SLIS_EV_TOP_OF_LIST                       TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',&lt;br /&gt;SLIS_EV_END_OF_PAGE                    TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE',&lt;br /&gt;SLIS_EV_END_OF_LIST                      TYPE SLIS_FORMNAME VALUE 'END_OF_LIST',&lt;br /&gt;SLIS_EV_AFTER_LINE_OUTPUT TYPE SLIS_FORMNAME VALUE 'AFTER_LINE_OUTPUT', SLIS_EV_BEFORE_LINE_OUTPUT TYPE SLIS_FORMNAME VALUE 'BEFORE_LINE_OUTPUT',&lt;br /&gt;SLIS_EV_SUBTOTAL_TEXT                TYPE SLIS_FORMNAME VALUE 'SUBTOTAL_TEXT'. &lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>abap program for Creation Of Active Icon</title><link>http://freesapabapnotes.blogspot.com/2009/02/abap-program-for-creation-of-active.html</link><category>ALV Sample Programs</category><pubDate>Thu, 12 Feb 2009 17:13:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-8780312013462453201</guid><description>&lt;pre&gt;REPORT CREATION_OF_ACTIVE_ICON.&lt;/pre&gt;  &lt;pre&gt;INITIALIZATION.&lt;br /&gt;IMPORT mytab-activetab FROM MEMORY ID 'TABSTRIP'.&lt;br /&gt;CASE mytab-activetab.&lt;br /&gt;WHEN 'UCOMM1'. mytab-dynnr = 100.&lt;br /&gt;WHEN 'UCOMM2'. mytab-dynnr = 200.&lt;br /&gt;WHEN 'UCOMM3'. mytab-dynnr = 300.&lt;br /&gt;WHEN OTHERS.&lt;br /&gt;tabb1-dynnr = 100.&lt;br /&gt;ENDCASE.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;EXPORT: tabb1-activetab TO MEMORY ID 'TABSTRIP'.&lt;br /&gt;&lt;br /&gt;SHORT VERSION.&lt;br /&gt;&lt;br /&gt;INITIALIZATION.&lt;br /&gt;IMPORT mytab FROM MEMORY ID 'TABSTRIP'.&lt;br /&gt;&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;EXPORT: mytab TO MEMORY ID 'TABSTRIP'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SYNTAX FOR CREATING THE EXISTING CONTEXT MENU.::&lt;br /&gt;&lt;br /&gt;FORM on_ctmenu_text USING menu TYPE REF TO cl_ctmenu.&lt;br /&gt;CALL METHOD menu-&gt;load_gui_status&lt;br /&gt;                    EXPORTING program = prog&lt;br /&gt;                              status  = 'CON_MENU'&lt;br /&gt;                              menu    = menu .&lt;br /&gt;CALL METHOD  menu-&gt;set_default_function&lt;br /&gt;                    EXPORTING fcode = 'list'.&lt;br /&gt;ENDFORM.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATING A NEW CONTEXT MENU::&lt;br /&gt;&lt;br /&gt;FORM on_ctmenu_text USING menu TYPE REF TO cl_ctmenu.&lt;br /&gt;DATA new_menu TYPE REF TO cl_ctmenu.&lt;br /&gt;CREATE OBJECT new_menu.&lt;br /&gt;CALL METHOD new_menu-&gt;add_function&lt;br /&gt;                    EXPORTING fcode = 'list'&lt;br /&gt;                              text  = text-001.&lt;br /&gt;&lt;br /&gt;CALL METHOD  new_menu-&gt;add_function&lt;br /&gt;                     EXPORTING fcode = 'add'&lt;br /&gt;                               text  = text-002.  CALL METHOD&lt;br /&gt;new_menu-&gt;add_function&lt;br /&gt;                     EXPORTING fcode = 'delete'&lt;br /&gt;                              text  = text-003.&lt;br /&gt;&lt;br /&gt;CALL METHOD   new_menu-&gt;add_submenu&lt;br /&gt;                     EXPORTING menu = new_menu&lt;br /&gt;                               text = text-005.&lt;br /&gt;ENDFORM&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SYNTAX FOR STATUS ICON:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'ICON_CREATE'&lt;br /&gt; EXPORTING&lt;br /&gt;  NAME = 'icon name'&lt;br /&gt;  TEXT   = 'text to be displayed'&lt;br /&gt;  INFO   = 'tooltip text'•    &lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>using alv grid real time implementation</title><link>http://freesapabapnotes.blogspot.com/2009/02/using-alv-grid-real-time-implementation.html</link><category>SAP ALV Grid Tutorial</category><pubDate>Thu, 12 Feb 2009 17:12:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-4819328200565354906</guid><description>REPORT ZALV .&lt;br /&gt;&lt;br /&gt;type-pools : slis.&lt;br /&gt;tables : spfli,SFLIGHT.&lt;br /&gt;&lt;br /&gt;data : begin of itab occurs 0,&lt;br /&gt;carrid like spfli-carrid,&lt;br /&gt;connid like spfli-connid,&lt;br /&gt;end of itab.&lt;br /&gt;CONSTANTS:&lt;br /&gt;GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.&lt;br /&gt;&lt;br /&gt;data : g_fieldcat type slis_t_fieldcat_alv,&lt;br /&gt;GS_LAYOUT TYPE SLIS_LAYOUT_ALV,&lt;br /&gt;g_repid like sy-repid,&lt;br /&gt;GT_EVENTS TYPE SLIS_T_EVENT,&lt;br /&gt;g_layout type slis_layout_alv,&lt;br /&gt;GS_KEYINFO TYPE SLIS_KEYINFO_ALV,&lt;br /&gt;G_TABNAME_HEADER TYPE SLIS_TABNAME,&lt;br /&gt;G_TABNAME_ITEM TYPE SLIS_TABNAME.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;data : itab1 like sflight occurs 0 with header line.&lt;br /&gt;&lt;br /&gt;g_repid = sy-repid.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;select carrid connid into corresponding fields of table itab from&lt;br /&gt;spfli.&lt;br /&gt;&lt;br /&gt;G_TABNAME_HEADER = 'ITAB'.&lt;br /&gt;G_TABNAME_ITEM = 'ITAB1'.&lt;br /&gt;&lt;br /&gt;CLEAR GS_KEYINFO.&lt;br /&gt;GS_KEYINFO-HEADER01 = 'CARRID'.&lt;br /&gt;GS_KEYINFO-ITEM01 = 'CARRID'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;LOOP AT ITAB.&lt;br /&gt;SELECT * FROM SFLIGHT WHERE CARRID = ITAB-CARRID.&lt;br /&gt;  MOVE-CORRESPONDING SFLIGHT TO ITAB1.&lt;br /&gt;  APPEND ITAB1.&lt;br /&gt;  CLEAR ITAB1.&lt;br /&gt;ENDSELECT.&lt;br /&gt;IF SY-SUBRC EQ 0.&lt;br /&gt;  EXIT.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDLOOP.&lt;br /&gt;&lt;br /&gt;PERFORM E03_EVENTTAB_BUILD USING GT_EVENTS[].&lt;br /&gt;&lt;br /&gt;perform pc_fld using :&lt;br /&gt;1 1 'CARRID' 'CARRIER' 10 ' H' 'ITAB',&lt;br /&gt;1 2 'CONNID' 'CONNECTIONID' 04 ' H' 'ITAB',&lt;br /&gt;2 1 'FLDATE' 'FLIGHT DET' 10 ' H' 'ITAB1',&lt;br /&gt;2 2 'PRICE' 'PRICING DET' 20 ' H' 'ITAB1'.&lt;br /&gt;&lt;br /&gt;GS_LAYOUT-F2CODE = '&amp;amp;ETA'.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;br /&gt;EXPORTING&lt;br /&gt;* I_INTERFACE_CHECK = ' '&lt;br /&gt;I_CALLBACK_PROGRAM = g_repid&lt;br /&gt;* I_CALLBACK_PF_STATUS_SET = ' '&lt;br /&gt;i_callback_user_command = 'ABCDEF'&lt;br /&gt;IS_LAYOUT = GS_LAYOUT&lt;br /&gt;IT_FIELDCAT = G_FIELDCAT&lt;br /&gt;* IT_EXCLUDING =&lt;br /&gt;* IT_SPECIAL_GROUPS =&lt;br /&gt;* IT_SORT =&lt;br /&gt;* IT_FILTER =&lt;br /&gt;* IS_SEL_HIDE =&lt;br /&gt;* I_SCREEN_START_COLUMN = 0&lt;br /&gt;* I_SCREEN_START_LINE = 0&lt;br /&gt;* I_SCREEN_END_COLUMN = 0&lt;br /&gt;* I_SCREEN_END_LINE = 0&lt;br /&gt;* I_DEFAULT = 'X'&lt;br /&gt;* I_SAVE = ' '&lt;br /&gt;* IS_VARIANT =&lt;br /&gt;IT_EVENTS = GT_EVENTS[]&lt;br /&gt;* IT_EVENT_EXIT =&lt;br /&gt;*I_TABNAME_HEADER = G_TABNAME_HEADER&lt;br /&gt;*I_TABNAME_ITEM = G_TABNAME_ITEM&lt;br /&gt;* I_STRUCTURE_NAME_HEADER =&lt;br /&gt;* I_STRUCTURE_NAME_ITEM =&lt;br /&gt;*IS_KEYINFO = GS_KEYINFO&lt;br /&gt;* IS_PRINT =&lt;br /&gt;* IS_REPREP_ID =&lt;br /&gt;* I_BUFFER_ACTIVE =&lt;br /&gt;* I_BYPASSING_BUFFER =&lt;br /&gt;* IMPORTING&lt;br /&gt;* E_EXIT_CAUSED_BY_CALLER =&lt;br /&gt;* ES_EXIT_CAUSED_BY_USER =&lt;br /&gt;TABLES&lt;br /&gt;T_OUTTAB = ITAB&lt;br /&gt;*T_OUTTAB_ITEM = ITAB1&lt;br /&gt;* EXCEPTIONS&lt;br /&gt;* PROGRAM_ERROR = 1&lt;br /&gt;* OTHERS = 2&lt;br /&gt;.&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* -----------------------------------------------------------*&lt;br /&gt;form ABCDEF using r_ucomm like sy-ucomm rs_selfield type&lt;br /&gt;slis_selfield.&lt;br /&gt;* -----------------------------------------------------------*&lt;br /&gt;case r_ucomm.&lt;br /&gt;  when '&amp;amp;IC1'.&lt;br /&gt;    read table itab index rs_selfield-tabindex.&lt;br /&gt;    if sy-subrc eq 0.&lt;br /&gt;      write : / 'sdfdsf'.&lt;br /&gt;    endif.&lt;br /&gt;    CLEAR r_ucomm.&lt;br /&gt;endcase.&lt;br /&gt;&lt;br /&gt;endform.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;amp; Form pc_fld&lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*&lt;br /&gt;* text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* --&gt;P_1 text&lt;br /&gt;* --&gt;P_1 text&lt;br /&gt;* --&gt;P_0057 text&lt;br /&gt;* --&gt;P_0058 text&lt;br /&gt;* --&gt;P_10 text&lt;br /&gt;* --&gt;P_0060 text&lt;br /&gt;* --&gt;P_0061 text&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;FORM pc_fld USING L P F D O R T.&lt;br /&gt;&lt;br /&gt;DATA : T_FLD TYPE SLIS_FIELDCAT_ALV.&lt;br /&gt;&lt;br /&gt;CLEAR T_FLD.&lt;br /&gt;&lt;br /&gt;MOVE : L TO T_FLD-ROW_POS.&lt;br /&gt;MOVE : P TO T_FLD-COL_POS.&lt;br /&gt;MOVE : F TO T_FLD-FIELDNAME.&lt;br /&gt;MOVE D TO : T_FLD-SELTEXT_L,&lt;br /&gt;T_FLD-SELTEXT_M,&lt;br /&gt;T_FLD-SELTEXT_S.&lt;br /&gt;MOVE 'L' TO T_FLD-DDICTXT.&lt;br /&gt;MOVE O TO T_FLD-OUTPUTLEN.&lt;br /&gt;MOVE T TO T_FLD-TABNAME.&lt;br /&gt;MOVE ' ' TO T_FLD-DO_SUM.&lt;br /&gt;&lt;br /&gt;APPEND T_FLD TO G_FIELDCAT.&lt;br /&gt;&lt;br /&gt;ENDFORM. " pc_fld&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM E03_EVENTTAB_BUILD                                       *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........                                                      *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  E03_LT_EVENTS                                                 *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM E03_EVENTTAB_BUILD USING E03_LT_EVENTS TYPE SLIS_T_EVENT.&lt;br /&gt;DATA: LS_EVENT TYPE SLIS_ALV_EVENT.&lt;br /&gt;*&lt;br /&gt;CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;br /&gt;     EXPORTING&lt;br /&gt;          I_LIST_TYPE = 0&lt;br /&gt;     IMPORTING&lt;br /&gt;          ET_EVENTS   = E03_LT_EVENTS.&lt;br /&gt;READ TABLE E03_LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE&lt;br /&gt;INTO LS_EVENT.&lt;br /&gt;IF SY-SUBRC = 0.&lt;br /&gt;  MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.&lt;br /&gt;  APPEND LS_EVENT TO E03_LT_EVENTS.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDFORM.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item><item><title>Adding custom buttons on ALV grid controls</title><link>http://freesapabapnotes.blogspot.com/2009/02/adding-custom-buttons-on-alv-grid.html</link><category>ALV grid controls</category><pubDate>Thu, 12 Feb 2009 17:11:00 +0530</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-3089299837398041622.post-6483254199857956301</guid><description>&lt;p&gt;This report shows you how to add a custom button to your ALV grid control.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;    &lt;p class="Sub-Heading"&gt;&lt;span&gt;DATA&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* Predefine a local class for event handling to allow the&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* declaration of a reference variable before the class is defined.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;CLASS lcl_event_receiver DEFINITION DEFERRED.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;DATA:&lt;span&gt;  &lt;/span&gt;custom_container1 TYPE REF TO cl_gui_custom_container,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;       &lt;/span&gt;cont_on_main&lt;span&gt;   &lt;/span&gt;TYPE scrfname VALUE 'ALV_GRID',&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;       &lt;/span&gt;grid1&lt;span&gt;  &lt;/span&gt;TYPE REF TO cl_gui_alv_grid,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;       &lt;/span&gt;event_receiver TYPE REF TO lcl_event_receiver,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;       &lt;/span&gt;okcode LIKE sy-ucomm.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;DATA:&lt;span&gt;   &lt;/span&gt;gt_fieldcat&lt;span&gt;         &lt;/span&gt;TYPE slis_t_fieldcat_alv,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;gt_fieldcat1&lt;span&gt;        &lt;/span&gt;TYPE lvc_t_fcat,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;gs_layout&lt;span&gt;       &lt;/span&gt;&lt;span&gt;    &lt;/span&gt;TYPE slis_layout_alv,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;gs_layout1&lt;span&gt;          &lt;/span&gt;TYPE lvc_s_layo,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;gs_print&lt;span&gt;            &lt;/span&gt;TYPE slis_print_alv,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;gt_sort&lt;span&gt;             &lt;/span&gt;TYPE slis_t_sortinfo_alv,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;gt_sp_group&lt;span&gt;         &lt;/span&gt;TYPE slis_t_sp_group_alv,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;gt_events&lt;span&gt;           &lt;/span&gt;TYPE slis_t_event,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;gt_list_top_of_page TYPE slis_t_listheader.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;DATA:t_out TYPE TABLE OF zstruct,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;     &lt;/span&gt;t_out_wa LIKE zstruct.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;****************************************************************&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* LOCAL CLASSES: Definition&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;****************************************************************&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*===============================================================&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* class lcl_event_receiver: local class to&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;                         &lt;/span&gt;define and handle own functions.&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* Definition:&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* ~~~~~~~~~~~&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;CLASS lcl_event_receiver DEFINITION.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;PUBLIC SECTION.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;METHODS:&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;handle_toolbar&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;FOR EVENT toolbar OF cl_gui_alv_grid&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;            &lt;/span&gt;IMPORTING e_object e_interactive,&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;handle_user_command&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;FOR EVENT user_command OF cl_gui_alv_grid&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;            &lt;/span&gt;IMPORTING e_ucomm.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;PRIVATE SECTION.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;ENDCLASS.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;****************************************************************&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* LOCAL CLASSES: Implementation&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;****************************************************************&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*===============================================================&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* class lcl_event_receiver (Implementation)&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;CLASS lcl_event_receiver IMPLEMENTATION.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;METHOD handle_toolbar.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* § 2.In event handler method for event TOOLBAR: Append own functions&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;   &lt;/span&gt;by using event parameter E_OBJECT.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;DATA: ls_toolbar &lt;span&gt; &lt;/span&gt;TYPE stb_button.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*....................................................................&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* E_OBJECT of event TOOLBAR is of type REF TO CL_ALV_EVENT_TOOLBAR_SET.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* This class has got one attribute, namly MT_TOOLBAR, which&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* is a table of type TTB_BUTTON. One line of this table is&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* defined by the Structure STB_BUTTON (see data deklaration above).&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* A remark to the flag E_INTERACTIVE:&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;         &lt;/span&gt;'e_interactive' is set, if this event is raised due to&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;         &lt;/span&gt;the call of 'set_toolbar_interactive' by the user.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;         &lt;/span&gt;You can distinguish this way if the event was raised&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;         &lt;/span&gt;by yourself or by ALV&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;         &lt;/span&gt;(e.g. in method 'refresh_table_display').&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;         &lt;/span&gt;An application of this feature is still unknown... :-)&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* append a separator to normal toolbar&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;CLEAR ls_toolbar.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE 3 TO ls_toolbar-butn_type.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;APPEND ls_toolbar TO e_object-&gt;mt_toolbar.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* append an icon to show booking table&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;CLEAR ls_toolbar.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE 'COMMENT' TO ls_toolbar-function.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE icon_annotation TO ls_toolbar-icon.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE 'Insert Comment'(001) TO ls_toolbar-quickinfo.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE 'Notes'(004) TO ls_toolbar-text.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE ' ' TO ls_toolbar-disabled.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;APPEND ls_toolbar TO e_object-&gt;mt_toolbar.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE 'MATNR' TO ls_toolbar-function.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE icon_material TO ls_toolbar-icon.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE 'View Material'(002) TO ls_toolbar-quickinfo.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE 'Material'(003) TO ls_toolbar-text.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;MOVE ' ' TO ls_toolbar-disabled.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;APPEND ls_toolbar TO e_object-&gt;mt_toolbar.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;ENDMETHOD.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*-------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;METHOD handle_user_command.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* § 3.In event handler method for event USER_COMMAND: Query your&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;span&gt;   &lt;/span&gt;function codes defined in step 2 and react accordingly.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;DATA: lt_rows TYPE lvc_t_row.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;CASE e_ucomm.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;      &lt;/span&gt;WHEN 'COMMENT'.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;CALL METHOD grid1-&gt;get_selected_rows&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                 &lt;/span&gt;IMPORTING et_index_rows = lt_rows.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;CALL METHOD cl_gui_cfw=&gt;flush.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;IF sy-subrc NE 0.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* add your handling, for example&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;          &lt;/span&gt;CALL FUNCTION 'POPUP_TO_INFORM'&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;               &lt;/span&gt;EXPORTING&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                    &lt;/span&gt;titel = g_repid&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                    &lt;/span&gt;txt2&lt;span&gt;  &lt;/span&gt;= sy-subrc&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                    &lt;/span&gt;txt1&lt;span&gt;  &lt;/span&gt;= 'Error in Flush'(500).&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;ELSE.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;          &lt;/span&gt;PERFORM get_comment TABLES lt_rows.&lt;span&gt;  &lt;/span&gt;“Perform action&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;ENDIF.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;      &lt;/span&gt;WHEN 'MATNR'.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;CALL METHOD grid1-&gt;get_selected_rows&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                 &lt;/span&gt;IMPORTING et_index_rows = lt_rows.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;CALL METHOD cl_gui_cfw=&gt;flush.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;IF sy-subrc NE 0.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* add your handling, for example&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;          &lt;/span&gt;CALL FUNCTION 'POPUP_TO_INFORM'&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;               &lt;/span&gt;EXPORTING&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                    &lt;/span&gt;titel = g_repid&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                    &lt;/span&gt;txt2&lt;span&gt;  &lt;/span&gt;= sy-subrc&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                    &lt;/span&gt;txt1&lt;span&gt;  &lt;/span&gt;= 'Error in Flush'(500).&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;ELSE.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;            &lt;/span&gt;READ TABLE lt_rows INDEX 1.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;            &lt;/span&gt;IF sy-subrc = 0.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;                 &lt;/span&gt;READ TABLE t_out INTO t_out_wa INDEX lt_rows-index.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;                 &lt;/span&gt;IF sy-subrc = 0.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;                     &lt;/span&gt;SET PARAMETER ID 'MAT' FIELD t_out_wa-matnr.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;                     &lt;/span&gt;CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN. "View Material&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;                 &lt;/span&gt;ELSE.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;                     &lt;/span&gt;MESSAGE i999(b1) WITH 'Entry not found!'.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;                 &lt;/span&gt;ENDIF.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;            &lt;/span&gt;ELSE.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;                 &lt;/span&gt;MESSAGE i999(b1) WITH 'Please select a line first!'.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span&gt;            &lt;/span&gt;ENDIF.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;ENDIF.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;ENDCASE.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;ENDMETHOD.&lt;span&gt;                           &lt;/span&gt;"handle_user_command&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*-----------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;ENDCLASS.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* lcl_event_receiver (Implementation)&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*===================================================================&lt;/span&gt;&lt;/p&gt;  &lt;p class="Sub-Heading"&gt;&lt;span&gt;PBO&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;process before output.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt; &lt;/span&gt;MODULE STATUS_2000.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt; &lt;/span&gt;module init_data.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt; &lt;/span&gt;module create_container.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&amp;amp;&lt;span&gt;      &lt;/span&gt;Module&lt;span&gt;  &lt;/span&gt;create_container&lt;span&gt;  &lt;/span&gt;OUTPUT&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&amp;amp;---------------------------------------------------------------------*&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;module create_container output.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;if custom_container1 is initial.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* create a custom container control for our ALV Control&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;create object custom_container1&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;exporting&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;            &lt;/span&gt;container_name = cont_on_main&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;        &lt;/span&gt;exceptions&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;            &lt;/span&gt;cntl_error = 1&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;            &lt;/span&gt;cntl_system_error = 2&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;      &lt;/span&gt;&lt;span&gt;      &lt;/span&gt;create_error = 3&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;            &lt;/span&gt;lifetime_error = 4&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;            &lt;/span&gt;lifetime_dynpro_dynpro_link = 5.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;if sy-subrc ne 0.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* add your handling, for example&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;      &lt;/span&gt;call function 'POPUP_TO_INFORM'&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;           &lt;/span&gt;exporting&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                &lt;/span&gt;titel = g_repid&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;           &lt;/span&gt;&lt;span&gt;     &lt;/span&gt;txt2&lt;span&gt;  &lt;/span&gt;= sy-subrc&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                &lt;/span&gt;txt1&lt;span&gt;  &lt;/span&gt;= 'The control could not be created'(001).&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;endif.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* create an instance of alv control&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;create object grid1&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;           &lt;/span&gt;exporting i_parent = custom_container1.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* allow to select single lines - Multilines = A&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;gs_layout1-sel_mode = 'B'.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;t_out[] = t_out_mat[].&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;gt_fieldcat1[] = gt_fieldcat[].&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* ZSTRUCT needs to be a structure or table in the data dictionary.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* The data elements are used for the column headings of your table control.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* T_OUT is your table for data.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;call method grid1-&gt;set_table_for_first_display&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;         &lt;/span&gt;exporting i_structure_name = 'ZSTRUCT'&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;                   &lt;/span&gt;is_layout&lt;span&gt;        &lt;/span&gt;= gs_layout1&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;         &lt;/span&gt;changing&lt;span&gt;  &lt;/span&gt;it_outtab&lt;span&gt;        &lt;/span&gt;= t_out.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* -&gt;Create Object to receive events and link them to handler methods.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* When the ALV Control raises the event for the specified instance&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* the corresponding method is automatically called.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;*&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;create object event_receiver.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;set handler event_receiver-&gt;handle_user_command for grid1.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;set handler event_receiver-&gt;handle_toolbar for grid1.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: blue;"&gt;* § 4.Call method 'set_toolbar_interactive' to raise event TOOLBAR.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;    &lt;/span&gt;call method grid1-&gt;set_toolbar_interactive.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;endif.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;&lt;span&gt;  &lt;/span&gt;call method cl_gui_control=&gt;set_focus exporting control = grid1.&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0.0001pt; text-align: left;" class="MsoNormal" align="left"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9pt; font-family: &amp;quot;Arial monospaced for SAP&amp;quot;; color: black;"&gt;endmodule.&lt;span&gt;      &lt;/span&gt;&lt;span&gt;           &lt;/span&gt;" create_container&lt;span&gt;  &lt;/span&gt;OUTPUT&lt;/span&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><author>allsap.sites@gmail.com (SAP TECHNOLOGY)</author></item></channel></rss>