<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ALV in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116625#M107628</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try something like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:begin of itab occurs 0.&lt;/P&gt;&lt;P&gt;     fld1 like ztab-fld1,&lt;/P&gt;&lt;P&gt;     ...&lt;/P&gt;&lt;P&gt;     ..&lt;/P&gt;&lt;P&gt;     amount like ztab-amount,&lt;/P&gt;&lt;P&gt;     end of itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*if u want the subtotals at every change of field1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt; at end of fld1.&lt;/P&gt;&lt;P&gt; sum.&lt;/P&gt;&lt;P&gt; itab-amount = itab-amount.&lt;/P&gt;&lt;P&gt; append itab.&lt;/P&gt;&lt;P&gt; clear itab.&lt;/P&gt;&lt;P&gt;endat.   &lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 25 Jan 2006 05:54:22 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-01-25T05:54:22Z</dc:date>
    <item>
      <title>ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116623#M107626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; How do i find the subtotal of a field in ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Prakash&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Jan 2006 05:40:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116623#M107626</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-25T05:40:47Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116624#M107627</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;u have to fill sort info and pass that to i_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in slis_alv_sort or lvc_s_sort u can find&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Jan 2006 05:43:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116624#M107627</guid>
      <dc:creator>hymavathi_oruganti</dc:creator>
      <dc:date>2006-01-25T05:43:58Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116625#M107628</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try something like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:begin of itab occurs 0.&lt;/P&gt;&lt;P&gt;     fld1 like ztab-fld1,&lt;/P&gt;&lt;P&gt;     ...&lt;/P&gt;&lt;P&gt;     ..&lt;/P&gt;&lt;P&gt;     amount like ztab-amount,&lt;/P&gt;&lt;P&gt;     end of itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*if u want the subtotals at every change of field1 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt; at end of fld1.&lt;/P&gt;&lt;P&gt; sum.&lt;/P&gt;&lt;P&gt; itab-amount = itab-amount.&lt;/P&gt;&lt;P&gt; append itab.&lt;/P&gt;&lt;P&gt; clear itab.&lt;/P&gt;&lt;P&gt;endat.   &lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Jan 2006 05:54:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116625#M107628</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-25T05:54:22Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116626#M107629</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;You can use SLIS_SORTINFO_ALV&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Ex.&lt;/P&gt;&lt;P&gt;  DATA: L_SORT TYPE SLIS_SORTINFO_ALV.&lt;/P&gt;&lt;P&gt;  L_SORT-TABNAME = 'T_ALV'.&lt;/P&gt;&lt;P&gt;  L_SORT-FIELDNAME = 'PSPID'.&lt;/P&gt;&lt;P&gt;  L_SORT-UP = 'X'.&lt;/P&gt;&lt;P&gt;  L_SORT-SUBTOT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND L_SORT TO T_SORT.&lt;/P&gt;&lt;P&gt;  CLEAR L_SORT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sumanth.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Jan 2006 05:55:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116626#M107629</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-25T05:55:36Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116627#M107630</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How do i find the subtotal of a field in Hierarchical ALV Report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Prakash&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jan 2006 11:21:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116627#M107630</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-30T11:21:49Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116628#M107631</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no difference. you just need to pass the Sort table info. &lt;/P&gt;&lt;P&gt;for examples just check the below code...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT ZTEST_HIER NO STANDARD PAGE HEADING
                   LINE-SIZE 132
                   LINE-COUNT 64
                   MESSAGE-ID Z00.

*..Type Definitions for ALV Report
TYPE-POOLS SLIS.

*----------------------------------------------------------------------*
* Table/Structure declarations.                                        *
*----------------------------------------------------------------------*
TABLES : VBRK,   " Billing: Header Data
         VBRP,   " Billing: Item Data
         T001,   " Comapny Codes
         TVKOT,  " Sales Organizations: Texts
         MAKT.   " Material Descriiptions

*----------------------------------------------------------------------*
*.. Internal Tables declaration                                        *
*----------------------------------------------------------------------*

*----- Internal table to store billing docs which are not cancelled
DATA : BEGIN OF IT_VBRK OCCURS 0,
         VBELN LIKE VBRK-VBELN,    " Billing document
         WAERK LIKE VBRK-WAERK,    " SD document currency
         VKORG LIKE VBRK-VKORG,    " Sales organization
         VTEXT LIKE TVKOT-VTEXT,   " Sales organization text
         FKDAT LIKE VBRK-FKDAT,    " Billing date
         BUKRS LIKE VBRK-BUKRS,    " Company Code
         BUTXT LIKE T001-BUTXT,    " Company Code text
         NETWR LIKE VBRK-NETWR,    " Net value in document currency
       END OF IT_VBRK.

*-----Internal table to stroe ITEM DETAILS
DATA: BEGIN OF IT_VBRP OCCURS 0,
       VBELN2 LIKE VBRP-VBELN,     " Billing document
        POSNR LIKE VBRP-POSNR,     " Billing item
        FKIMG LIKE VBRP-FKIMG,     " Actual billed quantity
        VRKME LIKE VBRP-VRKME,     " Sales unit
        NETWR LIKE VBRP-NETWR,     " Net value of the billing item
        MATNR LIKE VBRP-MATNR,     " Material number
        ARKTX LIKE VBRP-ARKTX,     " Short text for sales order item
END OF IT_VBRP.

*----------------------------------------------------------------------*
*                    Variable / Flag Declerations                      *
*----------------------------------------------------------------------*

DATA : FG_COLOR    VALUE ' ',  " FLAG TO CHANGE THE COLOR OF THE RECORD
       FG_NO_DATA  VALUE ' '.  " FLAG TO CHECK THE DATA

DATA : V_REPID   TYPE SYREPID.

*----------------------------------------------------------------------*
*                      ALV Type declaration                            *
*----------------------------------------------------------------------*

DATA : IT_FIELDCAT TYPE STANDARD TABLE OF
                   SLIS_FIELDCAT_ALV  WITH HEADER LINE.

DATA : IT_SORT TYPE SLIS_T_SORTINFO_ALV,
       WA_SORT TYPE SLIS_SORTINFO_ALV.

DATA : IT_EVENT TYPE SLIS_T_EVENT,
       WA_EVENT LIKE LINE OF IT_EVENT.

DATA : IT_HEADINGS TYPE STANDARD TABLE OF
                   SLIS_LISTHEADER WITH HEADER LINE.

DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA : WA_KEYINFO TYPE SLIS_KEYINFO_ALV.

*----------------------------------------------------------------------*
* Selection Screen.                                                    *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS :  S_VBELN FOR VBRK-VBELN,            " Billing doc no
                  S_FKDAT FOR VBRK-FKDAT OBLIGATORY, " Billing date
                  S_MATNR FOR VBRP-MATNR.            " Material no

SELECTION-SCREEN END OF BLOCK B1.

*----------------------------------------------------------------------*
* Event:Initialization                                                 *
*----------------------------------------------------------------------*
INITIALIZATION.
  V_REPID = SY-REPID.
  S_FKDAT-LOW  = SY-DATUM - 200.
  S_FKDAT-HIGH = SY-DATUM.
  APPEND S_FKDAT.

*----------------------------------------------------------------------*
* AT Selection Screen.                                                 *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.

  PERFORM VALIDATE_VBELN.
  PERFORM VALIDATE_MATNR.

*----------------------------------------------------------------------*
* Event: Start-of-Selection                                            *
*----------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM GET_VBRK_DATA.
  PERFORM GET_VBRP_DATA.

*----------------------------------------------------------------------*
* Event: End-of-Selection                                            *
*----------------------------------------------------------------------*
END-OF-SELECTION.

  PERFORM GET_EVENTS.
  PERFORM SORT_TAB.
  PERFORM FIELDCATALOG.
  PERFORM LIST_DISPLAY.

*//////////////////////////////////////////////////////////////////////*
*
*                          FORM DEFINITIONS                            *
*
*//////////////////////////////////////////////////////////////////////

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  list_display
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM LIST_DISPLAY.

  WA_LAYOUT-INFO_FIELDNAME = 'COLOR'.
  WA_LAYOUT-TOTALS_TEXT = 'GRAND TOTAL'.
  WA_LAYOUT-ZEBRA = 'X'.

  WA_LAYOUT-KEY_HOTSPOT = 'X'.
  WA_KEYINFO-HEADER01 = 'VBELN'.
  WA_KEYINFO-ITEM01 = 'VBELN2'.

  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
*    I_INTERFACE_CHECK              = ' '
      I_CALLBACK_PROGRAM             = V_REPID
*    I_CALLBACK_PF_STATUS_SET       = ' '
*    I_CALLBACK_USER_COMMAND        = ' '
      IS_LAYOUT                      = WA_LAYOUT
      IT_FIELDCAT                    = IT_FIELDCAT[]
*    IT_EXCLUDING                   =
*    IT_SPECIAL_GROUPS              =
      IT_SORT                        = IT_SORT
*    IT_FILTER                      =
*    IS_SEL_HIDE                    =
*    I_SCREEN_START_COLUMN          = 0
*    I_SCREEN_START_LINE            = 0
*    I_SCREEN_END_COLUMN            = 0
*    I_SCREEN_END_LINE              = 0
*    I_DEFAULT                      = 'X'
*    I_SAVE                         = ' '
*    IS_VARIANT                     =
*    IT_EVENTS                      =
*    IT_EVENT_EXIT                  =
      I_TABNAME_HEADER              = 'IT_VBRK'
      I_TABNAME_ITEM                = 'IT_VBRP'
*    I_STRUCTURE_NAME_HEADER        =
*    I_STRUCTURE_NAME_ITEM          =
      IS_KEYINFO                    = WA_KEYINFO
*    IS_PRINT                       =
*    IS_REPREP_ID                   =
*    I_BUFFER_ACTIVE                =
*    I_BYPASSING_BUFFER             =
*  IMPORTING
*    E_EXIT_CAUSED_BY_CALLER        =
*    ES_EXIT_CAUSED_BY_USER         =
    TABLES
      T_OUTTAB_HEADER               = IT_VBRK
      T_OUTTAB_ITEM                 = IT_VBRP
*  EXCEPTIONS
*    PROGRAM_ERROR                  = 1
*    OTHERS                         = 2
            .
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDFORM.                    " list_display

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  fieldcatalog
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM FIELDCATALOG.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
   EXPORTING
      I_PROGRAM_NAME             = V_REPID
      I_INTERNAL_TABNAME         = 'IT_VBRK'
*   I_STRUCTURE_NAME             =
*   I_CLIENT_NEVER_DISPLAY       = 'X'
      I_INCLNAME                 = V_REPID
*   I_BYPASSING_BUFFER           =
*   I_BUFFER_ACTIVE              =
    CHANGING
      CT_FIELDCAT                = IT_FIELDCAT[]
   EXCEPTIONS
     INCONSISTENT_INTERFACE      = 1
     PROGRAM_ERROR               = 2
     OTHERS                      = 3
            .
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

*..Changing the fieldcatlog as required
  LOOP AT IT_FIELDCAT.
    CASE IT_FIELDCAT-FIELDNAME.
      WHEN 'VBELN'.
        IT_FIELDCAT-SELTEXT_L = 'Billing doc no'.
        IT_FIELDCAT-SELTEXT_M = 'Bill No'.
        IT_FIELDCAT-SELTEXT_S = 'Bill'.
        IT_FIELDCAT-OUTPUTLEN = '15'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                        OUTPUTLEN
                                  WHERE FIELDNAME = 'VBELN'.
      WHEN 'WAERK'.
        IT_FIELDCAT-SELTEXT_L = 'SD document Currency'.
        IT_FIELDCAT-SELTEXT_M = 'Document Currency'.
        IT_FIELDCAT-SELTEXT_S = 'Currency'.
        IT_FIELDCAT-OUTPUTLEN = '15'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'WAERK'.
      WHEN 'VKORG'.
        IT_FIELDCAT-SELTEXT_L = 'Sales Organisation'.
        IT_FIELDCAT-SELTEXT_M = 'Sales Org'.
        IT_FIELDCAT-SELTEXT_S = 'S,Org'.
        IT_FIELDCAT-OUTPUTLEN = '15'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'VKORG'.
      WHEN 'VTEXT'.
        IT_FIELDCAT-SELTEXT_L = 'Sales Organisation Name'.
        IT_FIELDCAT-SELTEXT_M = 'Sales Org Text'.
        IT_FIELDCAT-SELTEXT_S = 'S,Org'.
        IT_FIELDCAT-OUTPUTLEN = '30'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'VTEXT'.
      WHEN 'FKDAT'.
        IT_FIELDCAT-SELTEXT_L = 'Billing Date'.
        IT_FIELDCAT-SELTEXT_M = 'Bill.Date'.
        IT_FIELDCAT-SELTEXT_S = 'BDate'.
        IT_FIELDCAT-OUTPUTLEN = '15'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'FKDAT'.
      WHEN 'BUKRS'.
        IT_FIELDCAT-SELTEXT_L = 'Company Code'.
        IT_FIELDCAT-SELTEXT_M = 'Company'.
        IT_FIELDCAT-SELTEXT_S = 'Comp'.
        IT_FIELDCAT-OUTPUTLEN = '15'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'BUKRS'.
      WHEN 'BUTXT'.
        IT_FIELDCAT-SELTEXT_L = 'Company Name'.
        IT_FIELDCAT-SELTEXT_M = 'Comp Text'.
        IT_FIELDCAT-SELTEXT_S = 'Comp'.
        IT_FIELDCAT-OUTPUTLEN = '25'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'BUTXT'.
      WHEN 'NETWR'.
        IT_FIELDCAT-SELTEXT_L = 'Net value in docu currency'.
        IT_FIELDCAT-SELTEXT_M = 'Net value in currency'.
        IT_FIELDCAT-SELTEXT_S = 'Net Value'.
        IT_FIELDCAT-OUTPUTLEN = '20'.
        IT_FIELDCAT-DO_SUM    = 'X'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                        DO_SUM
                                  WHERE FIELDNAME = 'NETWR'.
    ENDCASE.

  ENDLOOP.

  PERFORM FIELDCAT_SECLIST.


ENDFORM.                    " fieldcatalog

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  sort_tab
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM SORT_TAB.

  CLEAR WA_SORT.
  WA_SORT-FIELDNAME = 'VBELN'.
  WA_SORT-SPOS = '1'.
  WA_SORT-UP = 'X'.
  WA_SORT-SUBTOT = 'X'.

  APPEND WA_SORT TO IT_SORT.

ENDFORM.                    " sort_tab
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_events
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_EVENTS.

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
            I_LIST_TYPE     = 1
       IMPORTING
            ET_EVENTS       = IT_EVENT
       EXCEPTIONS
            LIST_TYPE_WRONG = 1
            OTHERS          = 2.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  READ TABLE IT_EVENT INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
  WA_EVENT-FORM = 'DISPLAY_HEADER'.
  MODIFY IT_EVENT FROM WA_EVENT INDEX SY-TABIX.


ENDFORM.                    " get_events
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  DISPLAY_HEADER
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_HEADER.

  WRITE : /3   'Date : ',
           10  SY-DATUM USING EDIT MASK '__/__/____',
           35  'xxxx xxxx Pvt. Ltd',
           80  'Time : ',
           90  SY-UZEIT,
          /3   'User : ',
           10  SY-UNAME,
           30  SY-TITLE,
           80  'Page  : ',
           90 SY-PAGNO.

ENDFORM.                    " DISPLAY_HEADER
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  VALIDATE_VBELN
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM VALIDATE_VBELN.

* Validating Billing doc no
  SELECT VBELN
    INTO VBRK-VBELN
   UP TO 1 ROWS
    FROM VBRK
   WHERE VBELN IN S_VBELN.
  ENDSELECT.

  IF SY-SUBRC NE 0.
    MESSAGE E010. " Invalid billing doc no
  ENDIF.

ENDFORM.                    " VALIDATE_VBELN
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  VALIDATE_MATNR
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM VALIDATE_MATNR.

* Validating material no
  SELECT MATNR
    INTO VBRP-MATNR
   UP TO 1 ROWS
    FROM VBRP
   WHERE MATNR IN S_MATNR.
  ENDSELECT.

  IF SY-SUBRC NE 0.
    MESSAGE E018.    " Invalid material number
  ENDIF.

ENDFORM.                    " VALIDATE_MATNR
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_VBRK_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_VBRK_DATA.

* To get Billing doc detials based on selections
  SELECT V~VBELN
         V~WAERK
         V~VKORG
         V~FKDAT
         V~BUKRS
         V~NETWR
         T~VTEXT
         C~BUTXT
    INTO CORRESPONDING FIELDS OF TABLE IT_VBRK
    FROM VBRK AS V
   INNER JOIN VBRP AS P
      ON V~VBELN = P~VBELN
   INNER JOIN TVKOT AS T
      ON V~VKORG = T~VKORG
   INNER JOIN T001 AS C
      ON V~BUKRS = C~BUKRS
   WHERE V~VBELN IN S_VBELN
     AND V~FKDAT IN S_FKDAT
     AND P~MATNR IN S_MATNR.

  SORT IT_VBRK.
  DELETE ADJACENT DUPLICATES FROM IT_VBRK COMPARING VBELN.

  IF SY-SUBRC NE 0.
    FG_NO_DATA = 'X'.
  ENDIF.

ENDFORM.                    " GET_VBRK_DATA
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GENERATE_SECLIST
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GENERATE_SECLIST USING R_UCOMM     LIKE SY-UCOMM
                            RS_SELFIELD TYPE SLIS_SELFIELD.

  CASE R_UCOMM.
    WHEN '&amp;amp;IC1'. "DOUBLE CLICK
      READ TABLE IT_VBRK INDEX RS_SELFIELD-TABINDEX.


  ENDCASE.

ENDFORM.                    " GENERATE_SECLIST
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  FIELDCAT_SECLIST
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM FIELDCAT_SECLIST.


  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
     EXPORTING
        I_PROGRAM_NAME           = V_REPID
        I_INTERNAL_TABNAME       = 'IT_VBRP'
*   I_STRUCTURE_NAME             =
*   I_CLIENT_NEVER_DISPLAY       = 'X'
        I_INCLNAME               = V_REPID
*   I_BYPASSING_BUFFER           =
*   I_BUFFER_ACTIVE              =
      CHANGING
        CT_FIELDCAT              = IT_FIELDCAT[]
     EXCEPTIONS
       INCONSISTENT_INTERFACE    = 1
       PROGRAM_ERROR             = 2
       OTHERS                    = 3
              .
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

*..Changing the fieldcatlog as required

  LOOP AT IT_FIELDCAT.
    CASE IT_FIELDCAT-FIELDNAME.
      WHEN 'VBELN2'.
         IT_FIELDCAT-NO_OUT = 'X'.
         IT_FIELDCAT-KEY = SPACE.
         MODIFY IT_FIELDCAT TRANSPORTING NO_OUT
                                         KEY
                                  WHERE FIELDNAME = 'VBELN2'.


      WHEN 'POSNR'.
        IT_FIELDCAT-SELTEXT_L = 'Billing Iem no'.
        IT_FIELDCAT-SELTEXT_M = 'Bill Item No'.
        IT_FIELDCAT-SELTEXT_S = 'Item No'.
        IT_FIELDCAT-OUTPUTLEN = '15'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                        OUTPUTLEN
                                  WHERE FIELDNAME = 'POSNR'.
      WHEN 'FKIMG'.
        IT_FIELDCAT-SELTEXT_L = 'Actual billed quantity'.
        IT_FIELDCAT-SELTEXT_M = 'Billed Quantity'.
        IT_FIELDCAT-SELTEXT_S = 'Bill.Qty'.
        IT_FIELDCAT-OUTPUTLEN = '15'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'FKIMG'.
      WHEN 'VRKME'.
        IT_FIELDCAT-SELTEXT_L = 'Sales Unit'.
        IT_FIELDCAT-SELTEXT_M = 'Sale unit'.
        IT_FIELDCAT-SELTEXT_S = 'S.Unit'.
        IT_FIELDCAT-OUTPUTLEN = '15'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'VRKME'.
      WHEN 'NETWR'.
        IT_FIELDCAT-SELTEXT_L = 'Net value in docu currency'.
        IT_FIELDCAT-SELTEXT_M = 'Net value in currency'.
        IT_FIELDCAT-SELTEXT_S = 'Net Value'.
        IT_FIELDCAT-OUTPUTLEN = '20'.
        IT_FIELDCAT-DO_SUM    = 'X'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                        DO_SUM
                                 WHERE FIELDNAME = 'NETWR'.


      WHEN 'MATNR'.
        IT_FIELDCAT-SELTEXT_L = 'Material Number'.
        IT_FIELDCAT-SELTEXT_M = 'Mat. Number'.
        IT_FIELDCAT-SELTEXT_S = 'Mat. No'.
        IT_FIELDCAT-OUTPUTLEN = '30'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'MATNR'.

      WHEN 'ARKTX'.
        IT_FIELDCAT-SELTEXT_L = 'Text for sales order item'.
        IT_FIELDCAT-SELTEXT_M = 'Sale Order Text'.
        IT_FIELDCAT-SELTEXT_S = 'SO Item text'.
        IT_FIELDCAT-OUTPUTLEN = '30'.
        MODIFY IT_FIELDCAT TRANSPORTING SELTEXT_L
                                        SELTEXT_M
                                        SELTEXT_S
                                  WHERE FIELDNAME = 'ARKTX'.
    ENDCASE.

  ENDLOOP.

ENDFORM.                    " FIELDCAT_SECLIST
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  GET_VBRP_DATA
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_VBRP_DATA.

  SELECT VBELN
         POSNR
         FKIMG
         VRKME
         NETWR
         MATNR
         ARKTX
    INTO TABLE IT_VBRP
    FROM VBRP
     FOR ALL ENTRIES IN IT_VBRK
   WHERE VBELN EQ IT_VBRK-VBELN.

ENDFORM.                    " GET_VBRP_DATA&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jan 2006 11:30:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116628#M107631</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-30T11:30:10Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116629#M107632</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Prakash,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Declare sort table and work area as follows&lt;/P&gt;&lt;P&gt;DATA : I_SORT TYPE SLIS_T_SORTINFO_ALV,      &lt;/P&gt;&lt;P&gt;       WA_SORT TYPE SLIS_SORTINFO_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the subroutine for sorting if you want to subtotal on the materials.Use the logic given here. Pass this table to display list function module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CLEAR WA_SORT. &lt;/P&gt;&lt;P&gt; WA_SORT-FIELDNAME = 'MATNR'. &lt;/P&gt;&lt;P&gt; WA_SORT-SPOS = '1'. &lt;/P&gt;&lt;P&gt; WA_SORT-UP = 'X'. &lt;/P&gt;&lt;P&gt; WA_SORT-SUBTOT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND WA_SORT TO I_SORT.    &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sudheer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jan 2006 12:26:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/1116629#M107632</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-01-30T12:26:14Z</dc:date>
    </item>
  </channel>
</rss>

