<?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: control break processing in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865696#M672090</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;at new at end at first &amp;amp; at last are control break state ments.&lt;/P&gt;&lt;P&gt;before you take up control break statements u need to check two conditions.First the internal table should be checked for existing values which means internal tabe should not be empty.Then it must be soretd on the basis of key fields so that the out put will be relavent.then loop at the internal table.Once can have a control on only at new and at end.but no control on at first and at last.at new triggers not only with respect to change in the values of that columns but also triggers even if there is a change with respect any of the columns to the left of it.&lt;/P&gt;&lt;P&gt;at end and at new behave in the same way.if we want to carry out sub totals then keep then in at new and totals with respect to totals use at end and grand totals with at last.Just look at the following sameple which helps you understand in total.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;table structure:&lt;/P&gt;&lt;P&gt;material number     batch   movement    quantity&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     262              10&lt;/P&gt;&lt;P&gt;121                        bcd     261              40&lt;/P&gt;&lt;P&gt;121                        bcd     262              10&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Movement:261---goods issue&lt;/P&gt;&lt;P&gt;Movement:262---goods return&lt;/P&gt;&lt;P&gt;if the data has come in this way then we need to sort the itab like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort itab by material no(matnr) batch(charg) movement(bwart) and quantity(erfmg).&lt;/P&gt;&lt;P&gt;then the table data looks like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;material number     batch   movement    quantity&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     262              10&lt;/P&gt;&lt;P&gt;121                        bcd     261              40&lt;/P&gt;&lt;P&gt;121                        bcd     262              10&lt;/P&gt;&lt;P&gt;CREATE ANOTHER TABLE(ITAB1) OF THE FOLLOWING STRUCTURE :&lt;/P&gt;&lt;P&gt;MATERIAL     BATCH    QUANTITY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;then i need to calculate the quantity per movement,per batch per material then (qty per material per batch per movement)&lt;/P&gt;&lt;P&gt; data : v_261 type mseg-erfmg,&lt;/P&gt;&lt;P&gt;          v_262 type mseg-erfmg,&lt;/P&gt;&lt;P&gt;          v_net type mseg-erfmg ,&lt;/P&gt;&lt;P&gt;          v_total type mseg-erfmg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt;  at new bwart.&lt;/P&gt;&lt;P&gt;      sum.&lt;/P&gt;&lt;P&gt;      case itab-bwart.&lt;/P&gt;&lt;P&gt;         when '261'.&lt;/P&gt;&lt;P&gt;             v_261 = itab-erfmg.(which gives the total value for quantity under the   &lt;/P&gt;&lt;P&gt;                                            movemnet --261)&lt;/P&gt;&lt;P&gt;          when '262'.&lt;/P&gt;&lt;P&gt;               v_262 = itab-erfmg..(which gives the total value for quantity under the   &lt;/P&gt;&lt;P&gt;                                            movemnet --262)&lt;/P&gt;&lt;P&gt;             &lt;/P&gt;&lt;P&gt;      endcase.   &lt;/P&gt;&lt;P&gt;  end at.&lt;/P&gt;&lt;P&gt;  at end of charg.&lt;/P&gt;&lt;P&gt;       v_net = v_261 - v_262.(which gives the sub total(material consumed) for the  &lt;/P&gt;&lt;P&gt;                                        batch   'ABC'  )&lt;/P&gt;&lt;P&gt;        ITAB1-MATNR = ITAB-MATNR.&lt;/P&gt;&lt;P&gt;        ITAB1-CHARG = ITAB-CHARG.&lt;/P&gt;&lt;P&gt;        ITAB1-ERFMG = V_NET.&lt;/P&gt;&lt;P&gt;        APPEND ITAB1.&lt;/P&gt;&lt;P&gt;        CLEAR : V_261,V_262,V_NET,ITAB1.&lt;/P&gt;&lt;P&gt;   endat.&lt;/P&gt;&lt;P&gt;  CLEAR ITAB.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;AT THIS JUNCTURE WE HAVE THE TABLE(ITAB1 WITH THE FOLLOWING VALUES:&lt;/P&gt;&lt;P&gt;ITAB1.&lt;/P&gt;&lt;P&gt;material number     batch      quantity   &lt;/P&gt;&lt;P&gt;121                        abc        20&lt;/P&gt;&lt;P&gt;121                        bcd        30&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ITAB1-QUANTITY:&lt;/P&gt;&lt;P&gt;(V_261 = 30; V_262 = 10 ; V_NET = V_261 - V_262)  FOR THE BATCH :ABC&lt;/P&gt;&lt;P&gt;(V_261 = 40; V_262 = 10 ; V_NET = V_261 - V_262)  FOR THE BATCH :BCD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now to find the grand total like total issued qty for the material:&lt;/P&gt;&lt;P&gt;loop at itab1.&lt;/P&gt;&lt;P&gt;    at last.&lt;/P&gt;&lt;P&gt;       sum.(Adds all the numeric values in the table)&lt;/P&gt;&lt;P&gt;       v_total = itab1-erfmg.(The value here will be 50)&lt;/P&gt;&lt;P&gt;    endat. &lt;/P&gt;&lt;P&gt;   clear itab1.  &lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;at new triggers:when ever new value comes.&lt;/P&gt;&lt;P&gt;at end triggers :when ever the value changes&lt;/P&gt;&lt;P&gt;at first:for the first time it triggers(Generally to display comman header  for values in the control brak statements out put)&lt;/P&gt;&lt;P&gt;at last:triggers for the last time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope my explanation gives you proper under standing.In case this serves ur purpose give me proper rating by giving marks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Sep 2007 08:51:24 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-24T08:51:24Z</dc:date>
    <item>
      <title>control break processing</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865693#M672087</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;how and where  can we use the following statements&lt;/P&gt;&lt;P&gt;1. at first/endat.&lt;/P&gt;&lt;P&gt;2.at last/endat .&lt;/P&gt;&lt;P&gt;3.at new/endat .&lt;/P&gt;&lt;P&gt;4. sum .&lt;/P&gt;&lt;P&gt;5.on change of/endon&lt;/P&gt;&lt;P&gt;Can anyone also provide me defination of these .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 07:40:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865693#M672087</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T07:40:39Z</dc:date>
    </item>
    <item>
      <title>Re: control break processing</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865694#M672088</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;these all statements are can oly be used in Loops ...u cant use it anywhere else in the program..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check the help on this statements u will get the sample programs for it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward points please...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 07:42:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865694#M672088</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T07:42:19Z</dc:date>
    </item>
    <item>
      <title>Re: control break processing</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865695#M672089</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;You must use these statements for logical processing within the loop. These are used for display of headings at the top, sums etc. Just check out the sample code&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZFI_BA_ANALYSIS                                             *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZFI_BA_ANALYSIS NO STANDARD PAGE HEADING LINE-SIZE 132&lt;/P&gt;&lt;P&gt;                                                 LINE-COUNT 65.&lt;/P&gt;&lt;P&gt;*TABLE DECLARATION&lt;/P&gt;&lt;P&gt;TABLES: BKPF,BSEG.&lt;/P&gt;&lt;P&gt;*TYPE POOLS&lt;/P&gt;&lt;P&gt;TYPE-POOLS: ABAP,SLIS,KKBLO.&lt;/P&gt;&lt;P&gt;*INTERNAL TABLE DECLARATION&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF IT_BKPF OCCURS 0,&lt;/P&gt;&lt;P&gt;      MFD,&lt;/P&gt;&lt;P&gt;      BUKRS LIKE BKPF-BUKRS,&lt;/P&gt;&lt;P&gt;      BELNR LIKE BKPF-BELNR,&lt;/P&gt;&lt;P&gt;      BELNR1 LIKE BKPF-XBLNR,&lt;/P&gt;&lt;P&gt;      GJAHR LIKE BKPF-GJAHR,&lt;/P&gt;&lt;P&gt;      BLART LIKE BKPF-BLART,&lt;/P&gt;&lt;P&gt;      BKTXT LIKE BKPF-BKTXT,&lt;/P&gt;&lt;P&gt;      XBLNR LIKE BKPF-XBLNR,&lt;/P&gt;&lt;P&gt;      USNAM LIKE BKPF-USNAM,&lt;/P&gt;&lt;P&gt;END OF IT_BKPF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF IT_BSEG OCCURS 0,&lt;/P&gt;&lt;P&gt;     BUKRS LIKE BSEG-BUKRS,&lt;/P&gt;&lt;P&gt;     BELNR LIKE BSEG-BELNR,&lt;/P&gt;&lt;P&gt;     GJAHR LIKE BSEG-GJAHR,&lt;/P&gt;&lt;P&gt;     DMBTR LIKE BSEG-DMBTR,&lt;/P&gt;&lt;P&gt;     HKONT LIKE BSEG-HKONT,&lt;/P&gt;&lt;P&gt;     SHKZG LIKE BSEG-SHKZG,&lt;/P&gt;&lt;P&gt;     ZUONR LIKE BSEG-ZUONR,&lt;/P&gt;&lt;P&gt;     GSBER LIKE BSEG-GSBER,&lt;/P&gt;&lt;P&gt;     END OF IT_BSEG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF IT_BKPF1 OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE IT_BKPF.&lt;/P&gt;&lt;P&gt;DATA: END OF IT_BKPF1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF IT_OUTPUT OCCURS 0,&lt;/P&gt;&lt;P&gt;      HKONT LIKE BSEG-HKONT,&lt;/P&gt;&lt;P&gt;      GSBER LIKE BSEG-GSBER,&lt;/P&gt;&lt;P&gt;      GJAHR LIKE BKPF-GJAHR,&lt;/P&gt;&lt;P&gt;      BELNR LIKE BKPF-BELNR,&lt;/P&gt;&lt;P&gt;      ZUONR LIKE BSEG-ZUONR,&lt;/P&gt;&lt;P&gt;      XBLNR LIKE BKPF-XBLNR,&lt;/P&gt;&lt;P&gt;      BKTXT LIKE BKPF-BKTXT,&lt;/P&gt;&lt;P&gt;      DMBTR LIKE BSEG-DMBTR,&lt;/P&gt;&lt;P&gt;      USNAM LIKE BKPF-USNAM,&lt;/P&gt;&lt;P&gt;      END OF IT_OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF IT_OUTPUT1 OCCURS 0,&lt;/P&gt;&lt;P&gt;      GSBER LIKE BSEG-GSBER,&lt;/P&gt;&lt;P&gt;      HKONT LIKE BSEG-HKONT,&lt;/P&gt;&lt;P&gt;      GJAHR LIKE BKPF-GJAHR,&lt;/P&gt;&lt;P&gt;      BELNR LIKE BKPF-BELNR,&lt;/P&gt;&lt;P&gt;      ZUONR LIKE BSEG-ZUONR,&lt;/P&gt;&lt;P&gt;      XBLNR LIKE BKPF-XBLNR,&lt;/P&gt;&lt;P&gt;      BKTXT LIKE BKPF-BKTXT,&lt;/P&gt;&lt;P&gt;      DMBTR LIKE BSEG-DMBTR,&lt;/P&gt;&lt;P&gt;      USNAM LIKE BKPF-USNAM,&lt;/P&gt;&lt;P&gt;      END OF IT_OUTPUT1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF IT_USNAM OCCURS 0,&lt;/P&gt;&lt;P&gt;        SIGN,&lt;/P&gt;&lt;P&gt;        OPTION(2),&lt;/P&gt;&lt;P&gt;        LOW LIKE BKPF-USNAM,&lt;/P&gt;&lt;P&gt;        HIGH LIKE BKPF-USNAM,&lt;/P&gt;&lt;P&gt;      END OF IT_USNAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA DECLARATION&lt;/P&gt;&lt;P&gt;DATA: LINES LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;DATA: TOT_BA LIKE BSEG-WRBTR,&lt;/P&gt;&lt;P&gt;      TOT_GL LIKE BSEG-WRBTR,&lt;/P&gt;&lt;P&gt;      GRATOT LIKE BSEG-DMBTR .&lt;/P&gt;&lt;P&gt;DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,&lt;/P&gt;&lt;P&gt;      LS_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV,&lt;/P&gt;&lt;P&gt;      LS_SLIS_LAYO TYPE SLIS_LAYOUT_ALV.&lt;/P&gt;&lt;P&gt;DATA: AMOUNT(17).&lt;/P&gt;&lt;P&gt;DATA: DATEFROM(10),&lt;/P&gt;&lt;P&gt;      DATETO(10),&lt;/P&gt;&lt;P&gt;      DATEYEARF(4),&lt;/P&gt;&lt;P&gt;      DATEYEART(4).&lt;/P&gt;&lt;P&gt;DATA: PAGE TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: P_BUKRS LIKE BKPF-BUKRS OBLIGATORY,&lt;/P&gt;&lt;P&gt;            P_GJAHR LIKE BKPF-GJAHR OBLIGATORY,&lt;/P&gt;&lt;P&gt;            P_USNAM LIKE BKPF-USNAM,&lt;/P&gt;&lt;P&gt;            P_GSBER LIKE BSEG-GSBER OBLIGATORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:SO_DOTYP FOR BKPF-BLART,&lt;/P&gt;&lt;P&gt;               SO_POSTD FOR BKPF-BUDAT OBLIGATORY,&lt;/P&gt;&lt;P&gt;               SO_CPUDT FOR BKPF-CPUDT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK BLK1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.&lt;/P&gt;&lt;P&gt;PARAMETERS: P_RD1 RADIOBUTTON GROUP GRP1 DEFAULT 'X',&lt;/P&gt;&lt;P&gt;            P_RD2 RADIOBUTTON GROUP GRP1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK BLK2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;  IF SY-BATCH &amp;lt;&amp;gt; 'X' AND SY-UCOMM EQ 'ONLI'.&lt;/P&gt;&lt;P&gt;    MESSAGE 'Program can only be executed in background' TYPE 'E'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON SO_POSTD.&lt;/P&gt;&lt;P&gt;  CLEAR: DATEYEARF , DATEYEART.&lt;/P&gt;&lt;P&gt;  MOVE SO_POSTD-LOW+0(4) TO DATEYEARF.&lt;/P&gt;&lt;P&gt;  MOVE SO_POSTD-HIGH+0(4) TO DATEYEART.&lt;/P&gt;&lt;P&gt;  IF SO_POSTD-LOW+4(2) GE 4.&lt;/P&gt;&lt;P&gt;    DATEYEARF = DATEYEART + 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF SO_POSTD-HIGH+4(2) GE 4.&lt;/P&gt;&lt;P&gt;    DATEYEART = DATEYEART + 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF SO_POSTD-HIGH IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    IF DATEYEARF NE DATEYEART.&lt;/P&gt;&lt;P&gt;     MESSAGE 'YOU CAN ENTER DOCUMENTS OF ONE FISCAL YEAR ONLY' TYPE 'E'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF DATEYEARF NE P_GJAHR.&lt;/P&gt;&lt;P&gt;    MESSAGE 'PLEASE CORRECT THE FISCAL YEAR ENTRY' TYPE 'E'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CLEAR PAGE.&lt;/P&gt;&lt;P&gt;  PERFORM GETCUSBUS.&lt;/P&gt;&lt;P&gt;  PERFORM GETDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM PROCDATA. " TO FILL UP O/P TABLE&lt;/P&gt;&lt;P&gt;  PERFORM DISPLAY.  " Report Display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_BACKGROUND.&lt;/P&gt;&lt;P&gt;  WRITE: 1(80) 'Mahindra &amp;amp; Mahindra Ltd' CENTERED ,&lt;/P&gt;&lt;P&gt;  100(10) SY-DATUM CENTERED .&lt;/P&gt;&lt;P&gt;  WRITE: /10 'Intra Company transactions for Company code',P_BUKRS,&lt;/P&gt;&lt;P&gt;         'Business Area', P_GSBER,'for period',&lt;/P&gt;&lt;P&gt;         DATEFROM .&lt;/P&gt;&lt;P&gt;  IF DATETO IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE: 'to', DATETO .&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  WRITE:/(110) SY-ULINE.&lt;/P&gt;&lt;P&gt;  SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;  WRITE: /1(119) SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: /(1) SY-VLINE , 2(10) 'Doc Numb' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;        12(1) SY-VLINE, 13(4) 'F. Y.' ,17(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;  IF P_RD2 EQ 'X'.&lt;/P&gt;&lt;P&gt;    WRITE: 18(12) 'GL Account' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;          29(1) SY-VLINE , 30(4) 'B/L' CENTERED&lt;/P&gt;&lt;P&gt;          INTENSIFIED ON, 34(1) SY-VLINE .&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE: 18(4) 'B/L' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;           22(1) SY-VLINE , 23(12) 'GL Account' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;           34(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  WRITE:35(17) 'Amount' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;      52(1) SY-VLINE , 53(15) 'Assignment' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;     68(1) SY-VLINE , 69(25) 'Header Text' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;     94(1) SY-VLINE , 95(16) 'Reference' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;          111(1) SY-VLINE , 112(7) 'User' CENTERED INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;          119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: /1(119) SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GETCUSBUS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GETCUSBUS .&lt;/P&gt;&lt;P&gt;  CLEAR: DATEFROM , DATETO.&lt;/P&gt;&lt;P&gt;  CLEAR: IT_USNAM , IT_USNAM[].&lt;/P&gt;&lt;P&gt;  IF P_USNAM IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE: 'I' TO IT_USNAM-SIGN,&lt;/P&gt;&lt;P&gt;          'EQ' TO IT_USNAM-OPTION,&lt;/P&gt;&lt;P&gt;          P_USNAM TO IT_USNAM-LOW.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR SO_DOTYP.&lt;/P&gt;&lt;P&gt;  MOVE: 'E' TO SO_DOTYP-SIGN,&lt;/P&gt;&lt;P&gt;        'EQ' TO SO_DOTYP-OPTION,&lt;/P&gt;&lt;P&gt;        'ZZ' TO SO_DOTYP-LOW.&lt;/P&gt;&lt;P&gt;  APPEND SO_DOTYP.&lt;/P&gt;&lt;P&gt;  CONCATENATE SO_POSTD-LOW&lt;EM&gt;6(2) '.' SO_POSTD-LOW&lt;/EM&gt;4(2) '.'&lt;/P&gt;&lt;P&gt; SO_POSTD-LOW+0(4) INTO DATEFROM.&lt;/P&gt;&lt;P&gt;  IF SO_POSTD-HIGH IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    CONCATENATE SO_POSTD-HIGH&lt;EM&gt;6(2) '.' SO_POSTD-HIGH&lt;/EM&gt;4(2) '.'&lt;/P&gt;&lt;P&gt;  SO_POSTD-HIGH+0(4) INTO DATETO.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GETCUSBUS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GETDATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GETDATA .&lt;/P&gt;&lt;P&gt;  CLEAR: IT_BKPF,IT_BKPF[].&lt;/P&gt;&lt;P&gt;  SELECT * FROM BKPF INTO CORRESPONDING FIELDS OF TABLE IT_BKPF&lt;/P&gt;&lt;P&gt;                                WHERE BUKRS EQ P_BUKRS&lt;/P&gt;&lt;P&gt;                                  AND GJAHR EQ P_GJAHR&lt;/P&gt;&lt;P&gt;                                  AND USNAM IN IT_USNAM&lt;/P&gt;&lt;P&gt;                                  AND BLART IN SO_DOTYP&lt;/P&gt;&lt;P&gt;                                  AND BUDAT IN SO_POSTD&lt;/P&gt;&lt;P&gt;                                  AND CPUDT IN SO_CPUDT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    CLEAR: IT_BSEG , IT_BSEG[].&lt;/P&gt;&lt;P&gt;    SELECT * FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG&lt;/P&gt;&lt;P&gt;    FOR ALL ENTRIES IN IT_BKPF WHERE BUKRS EQ P_BUKRS&lt;/P&gt;&lt;P&gt;                                 AND BELNR EQ IT_BKPF-BELNR&lt;/P&gt;&lt;P&gt;                                 AND GJAHR EQ IT_BKPF-GJAHR&lt;/P&gt;&lt;P&gt;                                 AND GSBER EQ P_GSBER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      CLEAR LINES.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_BKPF.&lt;/P&gt;&lt;P&gt;        LINES = SY-TABIX.&lt;/P&gt;&lt;P&gt;        READ TABLE IT_BSEG WITH KEY BUKRS = P_BUKRS&lt;/P&gt;&lt;P&gt;                                    BELNR = IT_BKPF-BELNR&lt;/P&gt;&lt;P&gt;                                    GJAHR = IT_BKPF-GJAHR.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;          DELETE IT_BKPF INDEX LINES.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          CLEAR IT_BKPF-BELNR1.&lt;/P&gt;&lt;P&gt;          MOVE IT_BKPF-BELNR TO IT_BKPF-BELNR1.&lt;/P&gt;&lt;P&gt;          MODIFY IT_BKPF INDEX LINES TRANSPORTING BELNR1.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT * FROM BKPF INTO CORRESPONDING FIELDS OF TABLE IT_BKPF1&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN IT_BKPF WHERE BUKRS EQ P_BUKRS&lt;/P&gt;&lt;P&gt;                                   AND GJAHR EQ IT_BKPF-GJAHR&lt;/P&gt;&lt;P&gt;                                   AND BLART EQ 'ZZ'&lt;/P&gt;&lt;P&gt;                                   AND XBLNR EQ IT_BKPF-BELNR1.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;        CLEAR LINES.&lt;/P&gt;&lt;P&gt;        LOOP AT IT_BKPF.&lt;/P&gt;&lt;P&gt;          LINES = SY-TABIX.&lt;/P&gt;&lt;P&gt;          READ TABLE IT_BKPF1 WITH KEY BUKRS = P_BUKRS&lt;/P&gt;&lt;P&gt;                                       XBLNR = IT_BKPF-BELNR&lt;/P&gt;&lt;P&gt;                                       GJAHR = IT_BKPF-GJAHR.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;            DELETE IT_BKPF INDEX LINES.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR: IT_BSEG,IT_BSEG[].&lt;/P&gt;&lt;P&gt;        SELECT * FROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEG&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN IT_BKPF WHERE BUKRS EQ P_BUKRS&lt;/P&gt;&lt;P&gt;                                        AND BELNR EQ IT_BKPF-BELNR&lt;/P&gt;&lt;P&gt;                                        AND GJAHR EQ IT_BKPF-GJAHR&lt;/P&gt;&lt;P&gt;                                        AND GSBER NE P_GSBER.&lt;/P&gt;&lt;P&gt;        .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;       MESSAGE 'NO ZZ DOCUEMNTS POSTED FOR THE GIVEN CRITERAI' TYPE 'E'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE 'NO DATA FOUND FOR THE GIVEN CRITERIA' TYPE 'E'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE 'NO DATA FOUND FOR THE GIVEN CRITERIA' TYPE 'E'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GETDATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  DISPLAY&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DISPLAY .&lt;/P&gt;&lt;P&gt;*FILLING UP FIELD CATALOG.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-FIELDNAME = 'BELNR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_L = 'Document Number'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_M = 'Document Num'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_S = 'Doc. Num'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND LS_FIELDCAT TO LS_FIELDCATALOG.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-FIELDNAME = 'ZUONR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_L = 'Assignment'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_M = 'Assign.'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_S = 'Asg'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND LS_FIELDCAT TO LS_FIELDCATALOG.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-FIELDNAME = 'XBLNR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_L = 'Reference'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_M = 'Refer.'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_S = 'Ref'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND LS_FIELDCAT TO LS_FIELDCATALOG.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-FIELDNAME = 'BKTXT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_L = 'Document Header Text'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_M = 'Doc. Hea. Text'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_S = 'Doc. Hea'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND LS_FIELDCAT TO LS_FIELDCATALOG.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-FIELDNAME = 'WRBTR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_L = 'Total Value'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_M = 'Tot. Val.'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_S = 'T.V.'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND LS_FIELDCAT TO LS_FIELDCATALOG.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-FIELDNAME = 'HKONT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_L = 'General Ledger Account'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_M = 'G.L Account'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_S = 'G.L'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND LS_FIELDCAT TO LS_FIELDCATALOG.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-FIELDNAME = 'GSBER'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-TABNAME = 'IT_OUTPUT'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_L = 'Business Area'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_M = 'Bus. Area'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_FIELDCAT-SELTEXT_S = 'B.A'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND LS_FIELDCAT TO LS_FIELDCATALOG.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     I_CALLBACK_PROGRAM     = 'ZFI_BA_ANALYSIS'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     I_CALLBACK_TOP_OF_PAGE = 'B.A. Document Display'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IT_FIELDCAT            = LS_FIELDCATALOG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     T_OUTTAB               = IT_OUTPUT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PROGRAM_ERROR          = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     OTHERS                 = 2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CLEAR: TOT_BA, TOT_GL ,GRATOT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF P_RD1 EQ 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IT_OUTPUT1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT NEW GSBER.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR 5.&lt;/P&gt;&lt;P&gt;        WRITE: /1 SY-VLINE ,2 'For Business Area' ,&lt;/P&gt;&lt;P&gt;               IT_OUTPUT1-GSBER , 119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE: /(1) SY-VLINE,2(10) IT_OUTPUT1-BELNR LEFT-JUSTIFIED&lt;/P&gt;&lt;P&gt;                COLOR COL_KEY , 12(1) SY-VLINE , 13(4) IT_OUTPUT1-GJAHR.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NORMAL.&lt;/P&gt;&lt;P&gt;      WRITE:17(1) SY-VLINE , 18(4) IT_OUTPUT1-GSBER CENTERED ,&lt;/P&gt;&lt;P&gt;            22(1) SY-VLINE , 23(12) IT_OUTPUT1-HKONT CENTERED ,&lt;/P&gt;&lt;P&gt;            34(1) SY-VLINE , 35(17) IT_OUTPUT1-DMBTR RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            52(1) SY-VLINE , 53(15) IT_OUTPUT1-ZUONR(10) LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            68(1) SY-VLINE , 69(25) IT_OUTPUT1-BKTXT(20) LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            94(1) SY-VLINE , 95(16) IT_OUTPUT1-XBLNR LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            111(1) SY-VLINE ,112(7) IT_OUTPUT1-USNAM LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      TOT_BA = TOT_BA + IT_OUTPUT1-DMBTR.&lt;/P&gt;&lt;P&gt;      TOT_GL = TOT_GL + IT_OUTPUT1-DMBTR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF HKONT.&lt;/P&gt;&lt;P&gt;       WRITE: /(1) SY-VLINE , 12(1) SY-VLINE, 13(10) 'Subtotal' COLOR 4,&lt;/P&gt;&lt;P&gt;               22(1) SY-VLINE, 23(12) IT_OUTPUT1-HKONT COLOR 4,&lt;/P&gt;&lt;P&gt;              34(1) SY-VLINE , 35(17) TOT_GL COLOR 4,&lt;/P&gt;&lt;P&gt;              52(1) SY-VLINE , 68(1) SY-VLINE , 94(1) SY-VLINE ,&lt;/P&gt;&lt;P&gt;              111(1) SY-VLINE , 119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR TOT_GL.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF GSBER.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_TOTAL.&lt;/P&gt;&lt;P&gt;        WRITE: /(1) SY-VLINE , 2 'Total for Business Area' ,&lt;/P&gt;&lt;P&gt;          IT_OUTPUT1-GSBER, 35(17) TOT_BA COLOR COL_TOTAL,&lt;/P&gt;&lt;P&gt;          119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        GRATOT = GRATOT +  TOT_BA.&lt;/P&gt;&lt;P&gt;        CLEAR TOT_BA.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    WRITE: /(1) SY-VLINE , 12(1) SY-VLINE , 17(1) SY-VLINE ,&lt;/P&gt;&lt;P&gt;                 18(12) 'Grand Total' COLOR COL_TOTAL INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;                 29(1) SY-VLINE,&lt;/P&gt;&lt;P&gt;                 35(17) GRATOT  COLOR COL_TOTAL INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;                52(1) SY-VLINE , 68(1) SY-VLINE , 94(1) SY-VLINE ,&lt;/P&gt;&lt;P&gt;                111(1) SY-VLINE , 119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IT_OUTPUT.&lt;/P&gt;&lt;P&gt;      AT NEW HKONT.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR 5.&lt;/P&gt;&lt;P&gt;        WRITE: /1 SY-VLINE , 2 'For GL Account' ,&lt;/P&gt;&lt;P&gt;        IT_OUTPUT-HKONT , 119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;      WRITE: /(1) SY-VLINE,2(10) IT_OUTPUT-BELNR LEFT-JUSTIFIED&lt;/P&gt;&lt;P&gt;              COLOR COL_KEY, 12(1) SY-VLINE , 13(4) IT_OUTPUT-GJAHR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NORMAL.&lt;/P&gt;&lt;P&gt;      WRITE:17(1) SY-VLINE , 18(12) IT_OUTPUT-HKONT CENTERED ,&lt;/P&gt;&lt;P&gt;            29(1) SY-VLINE , 30(4) IT_OUTPUT-GSBER CENTERED ,&lt;/P&gt;&lt;P&gt;            34(1) SY-VLINE , 35(17) IT_OUTPUT-DMBTR RIGHT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            52(1) SY-VLINE , 53(15) IT_OUTPUT-ZUONR(15) LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            68(1) SY-VLINE , 69(25) IT_OUTPUT-BKTXT(20) LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            94(1) SY-VLINE , 95(16) IT_OUTPUT-XBLNR LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            111(1) SY-VLINE , 112(7) IT_OUTPUT-USNAM LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;            119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      TOT_BA = TOT_BA + IT_OUTPUT-DMBTR.&lt;/P&gt;&lt;P&gt;      TOT_GL = TOT_GL + IT_OUTPUT-DMBTR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF GSBER.&lt;/P&gt;&lt;P&gt;        WRITE: /(1) SY-VLINE , 12(1) SY-VLINE , 17(1) SY-VLINE ,&lt;/P&gt;&lt;P&gt;              18(12) 'Subtotal' COLOR 4, 29(1) SY-VLINE ,&lt;/P&gt;&lt;P&gt;              30(4) IT_OUTPUT-GSBER COLOR 4, 34(1) SY-VLINE ,&lt;/P&gt;&lt;P&gt;              35(17) TOT_BA COLOR 4,&lt;/P&gt;&lt;P&gt;              52(1) SY-VLINE , 68(1) SY-VLINE , 94(1) SY-VLINE ,&lt;/P&gt;&lt;P&gt;              111(1) SY-VLINE , 119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR TOT_BA.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF HKONT.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR COL_TOTAL.&lt;/P&gt;&lt;P&gt;       WRITE: /(1) SY-VLINE , 2 'Total for GL Account', IT_OUTPUT-HKONT,&lt;/P&gt;&lt;P&gt;                35(17) TOT_GL , 119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;        FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;        GRATOT = GRATOT +  TOT_GL.&lt;/P&gt;&lt;P&gt;        CLEAR TOT_GL.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: /(1) SY-VLINE ,&lt;/P&gt;&lt;P&gt;            18(12) 'Grand Total' COLOR COL_TOTAL INTENSIFIED ON ,&lt;/P&gt;&lt;P&gt;            35(17) GRATOT COLOR COL_TOTAL INTENSIFIED ON,&lt;/P&gt;&lt;P&gt;            119(1) SY-VLINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: /1(119) SY-ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DISPLAY&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  PROCDATA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM PROCDATA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF P_RD1 EQ 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IT_BKPF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT IT_BSEG WHERE BUKRS EQ IT_BKPF-BUKRS&lt;/P&gt;&lt;P&gt;                        AND BELNR EQ IT_BKPF-BELNR&lt;/P&gt;&lt;P&gt;                        AND GJAHR EQ IT_BKPF-GJAHR.&lt;/P&gt;&lt;P&gt;        MOVE: IT_BKPF-BELNR TO IT_OUTPUT1-BELNR,&lt;/P&gt;&lt;P&gt;              IT_BKPF-BKTXT TO IT_OUTPUT1-BKTXT,&lt;/P&gt;&lt;P&gt;              IT_BKPF-XBLNR TO IT_OUTPUT1-XBLNR,&lt;/P&gt;&lt;P&gt;              IT_BKPF-USNAM TO IT_OUTPUT1-USNAM,&lt;/P&gt;&lt;P&gt;              IT_BKPF-GJAHR TO IT_OUTPUT1-GJAHR,&lt;/P&gt;&lt;P&gt;              IT_BSEG-HKONT TO IT_OUTPUT1-HKONT,&lt;/P&gt;&lt;P&gt;              IT_BSEG-ZUONR TO IT_OUTPUT1-ZUONR,&lt;/P&gt;&lt;P&gt;              IT_BSEG-GSBER TO IT_OUTPUT1-GSBER.&lt;/P&gt;&lt;P&gt;        CLEAR AMOUNT.&lt;/P&gt;&lt;P&gt;        IF IT_BSEG-SHKZG EQ 'H'.&lt;/P&gt;&lt;P&gt;          IT_OUTPUT1-DMBTR = IT_BSEG-DMBTR * ( -1 ).&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          IT_OUTPUT1-DMBTR = IT_BSEG-DMBTR.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        APPEND IT_OUTPUT1.&lt;/P&gt;&lt;P&gt;        CLEAR IT_OUTPUT1.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT IT_OUTPUT1 BY GSBER HKONT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IT_BKPF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT IT_BSEG WHERE BUKRS EQ IT_BKPF-BUKRS&lt;/P&gt;&lt;P&gt;                        AND BELNR EQ IT_BKPF-BELNR&lt;/P&gt;&lt;P&gt;                        AND GJAHR EQ IT_BKPF-GJAHR.&lt;/P&gt;&lt;P&gt;        MOVE: IT_BKPF-BELNR TO IT_OUTPUT-BELNR,&lt;/P&gt;&lt;P&gt;              IT_BKPF-BKTXT TO IT_OUTPUT-BKTXT,&lt;/P&gt;&lt;P&gt;              IT_BKPF-XBLNR TO IT_OUTPUT-XBLNR,&lt;/P&gt;&lt;P&gt;              IT_BKPF-USNAM TO IT_OUTPUT-USNAM,&lt;/P&gt;&lt;P&gt;              IT_BKPF-GJAHR TO IT_OUTPUT-GJAHR,&lt;/P&gt;&lt;P&gt;              IT_BSEG-HKONT TO IT_OUTPUT-HKONT,&lt;/P&gt;&lt;P&gt;              IT_BSEG-ZUONR TO IT_OUTPUT-ZUONR,&lt;/P&gt;&lt;P&gt;              IT_BSEG-GSBER TO IT_OUTPUT-GSBER.&lt;/P&gt;&lt;P&gt;        IF IT_BSEG-SHKZG EQ 'H'.&lt;/P&gt;&lt;P&gt;          IT_OUTPUT-DMBTR = IT_BSEG-DMBTR * ( -1 ).&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          IT_OUTPUT-DMBTR = IT_BSEG-DMBTR.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        APPEND IT_OUTPUT.&lt;/P&gt;&lt;P&gt;        CLEAR IT_OUTPUT.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT IT_OUTPUT BY HKONT GSBER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " PROCDATA&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 07:54:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865695#M672089</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T07:54:46Z</dc:date>
    </item>
    <item>
      <title>Re: control break processing</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865696#M672090</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;at new at end at first &amp;amp; at last are control break state ments.&lt;/P&gt;&lt;P&gt;before you take up control break statements u need to check two conditions.First the internal table should be checked for existing values which means internal tabe should not be empty.Then it must be soretd on the basis of key fields so that the out put will be relavent.then loop at the internal table.Once can have a control on only at new and at end.but no control on at first and at last.at new triggers not only with respect to change in the values of that columns but also triggers even if there is a change with respect any of the columns to the left of it.&lt;/P&gt;&lt;P&gt;at end and at new behave in the same way.if we want to carry out sub totals then keep then in at new and totals with respect to totals use at end and grand totals with at last.Just look at the following sameple which helps you understand in total.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;table structure:&lt;/P&gt;&lt;P&gt;material number     batch   movement    quantity&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     262              10&lt;/P&gt;&lt;P&gt;121                        bcd     261              40&lt;/P&gt;&lt;P&gt;121                        bcd     262              10&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Movement:261---goods issue&lt;/P&gt;&lt;P&gt;Movement:262---goods return&lt;/P&gt;&lt;P&gt;if the data has come in this way then we need to sort the itab like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort itab by material no(matnr) batch(charg) movement(bwart) and quantity(erfmg).&lt;/P&gt;&lt;P&gt;then the table data looks like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;material number     batch   movement    quantity&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     261              10&lt;/P&gt;&lt;P&gt;121                        abc     262              10&lt;/P&gt;&lt;P&gt;121                        bcd     261              40&lt;/P&gt;&lt;P&gt;121                        bcd     262              10&lt;/P&gt;&lt;P&gt;CREATE ANOTHER TABLE(ITAB1) OF THE FOLLOWING STRUCTURE :&lt;/P&gt;&lt;P&gt;MATERIAL     BATCH    QUANTITY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;then i need to calculate the quantity per movement,per batch per material then (qty per material per batch per movement)&lt;/P&gt;&lt;P&gt; data : v_261 type mseg-erfmg,&lt;/P&gt;&lt;P&gt;          v_262 type mseg-erfmg,&lt;/P&gt;&lt;P&gt;          v_net type mseg-erfmg ,&lt;/P&gt;&lt;P&gt;          v_total type mseg-erfmg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt;  at new bwart.&lt;/P&gt;&lt;P&gt;      sum.&lt;/P&gt;&lt;P&gt;      case itab-bwart.&lt;/P&gt;&lt;P&gt;         when '261'.&lt;/P&gt;&lt;P&gt;             v_261 = itab-erfmg.(which gives the total value for quantity under the   &lt;/P&gt;&lt;P&gt;                                            movemnet --261)&lt;/P&gt;&lt;P&gt;          when '262'.&lt;/P&gt;&lt;P&gt;               v_262 = itab-erfmg..(which gives the total value for quantity under the   &lt;/P&gt;&lt;P&gt;                                            movemnet --262)&lt;/P&gt;&lt;P&gt;             &lt;/P&gt;&lt;P&gt;      endcase.   &lt;/P&gt;&lt;P&gt;  end at.&lt;/P&gt;&lt;P&gt;  at end of charg.&lt;/P&gt;&lt;P&gt;       v_net = v_261 - v_262.(which gives the sub total(material consumed) for the  &lt;/P&gt;&lt;P&gt;                                        batch   'ABC'  )&lt;/P&gt;&lt;P&gt;        ITAB1-MATNR = ITAB-MATNR.&lt;/P&gt;&lt;P&gt;        ITAB1-CHARG = ITAB-CHARG.&lt;/P&gt;&lt;P&gt;        ITAB1-ERFMG = V_NET.&lt;/P&gt;&lt;P&gt;        APPEND ITAB1.&lt;/P&gt;&lt;P&gt;        CLEAR : V_261,V_262,V_NET,ITAB1.&lt;/P&gt;&lt;P&gt;   endat.&lt;/P&gt;&lt;P&gt;  CLEAR ITAB.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;AT THIS JUNCTURE WE HAVE THE TABLE(ITAB1 WITH THE FOLLOWING VALUES:&lt;/P&gt;&lt;P&gt;ITAB1.&lt;/P&gt;&lt;P&gt;material number     batch      quantity   &lt;/P&gt;&lt;P&gt;121                        abc        20&lt;/P&gt;&lt;P&gt;121                        bcd        30&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ITAB1-QUANTITY:&lt;/P&gt;&lt;P&gt;(V_261 = 30; V_262 = 10 ; V_NET = V_261 - V_262)  FOR THE BATCH :ABC&lt;/P&gt;&lt;P&gt;(V_261 = 40; V_262 = 10 ; V_NET = V_261 - V_262)  FOR THE BATCH :BCD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now to find the grand total like total issued qty for the material:&lt;/P&gt;&lt;P&gt;loop at itab1.&lt;/P&gt;&lt;P&gt;    at last.&lt;/P&gt;&lt;P&gt;       sum.(Adds all the numeric values in the table)&lt;/P&gt;&lt;P&gt;       v_total = itab1-erfmg.(The value here will be 50)&lt;/P&gt;&lt;P&gt;    endat. &lt;/P&gt;&lt;P&gt;   clear itab1.  &lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;at new triggers:when ever new value comes.&lt;/P&gt;&lt;P&gt;at end triggers :when ever the value changes&lt;/P&gt;&lt;P&gt;at first:for the first time it triggers(Generally to display comman header  for values in the control brak statements out put)&lt;/P&gt;&lt;P&gt;at last:triggers for the last time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope my explanation gives you proper under standing.In case this serves ur purpose give me proper rating by giving marks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 08:51:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865696#M672090</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T08:51:24Z</dc:date>
    </item>
    <item>
      <title>Re: control break processing</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865697#M672091</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;The AT statement introduces a statement block that you end with the ENDAT statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT &amp;lt;level&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;lt;statement block&amp;gt;&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can react to the following control level changes:&lt;/P&gt;&lt;P&gt;&amp;lt;u&amp;gt;&amp;lt;level&amp;gt;              Meaning&amp;lt;/u&amp;gt;&lt;/P&gt;&lt;P&gt;FIRST                   First line of the internal table&lt;/P&gt;&lt;P&gt;LAST                    Last line of the internal table&lt;/P&gt;&lt;P&gt;NEW &amp;lt;f&amp;gt;              Beginning of a group of lines with the same contents in the   field &amp;lt;f&amp;gt; and in the fields left of &amp;lt;f&amp;gt;&lt;/P&gt;&lt;P&gt;END Of &amp;lt;f&amp;gt;          End of a group of lines with the same contents in the field &amp;lt;f&amp;gt; and in the fields left of &amp;lt;f&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can use control level statements to react to control breaks in internal tables instead of programming them yourself with logical expressions. Within the loop, you must order the ATENDAT statement blocks according to the hierarchy of the control levels. If the internal table has the columns &amp;lt;f1&amp;gt;, &amp;lt;f2&amp;gt;, ...., and if it is sorted by these columns, you must program the loop as follows:&lt;/P&gt;&lt;P&gt;LOOP AT &amp;lt;itab&amp;gt;.&lt;/P&gt;&lt;P&gt;AT FIRST. ... ENDAT.&lt;/P&gt;&lt;P&gt;AT NEW &amp;lt;f1&amp;gt;. ...... ENDAT.&lt;/P&gt;&lt;P&gt;AT NEW &amp;lt;f2&amp;gt;. ...... ENDAT.&lt;/P&gt;&lt;P&gt;.......&lt;/P&gt;&lt;P&gt;&amp;lt;single line processing&amp;gt;&lt;/P&gt;&lt;P&gt;.......&lt;/P&gt;&lt;P&gt;AT END OF &amp;lt;f2&amp;gt;. ... ENDAT.&lt;/P&gt;&lt;P&gt;AT END OF &amp;lt;f1&amp;gt;. ... ENDAT.&lt;/P&gt;&lt;P&gt;AT LAST. .... ENDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;The innermost hierarchy level &amp;lt;single line processing&amp;gt; processes the table lines that do not correspond to a control level change. You do not have to use all control level statements. But you must place the used ones in the above sequence. You should not use control level statements in loops where the line selection is restricted by WHERE or FROM and TO. Neither should the table be modified during the loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If a control level field &amp;lt;fi&amp;gt; is not known until runtime, you can specify it dynamically as (&amp;lt;ni&amp;gt;) where &amp;lt;ni&amp;gt; contains the field of &amp;lt;fi&amp;gt;. If &amp;lt;ni&amp;gt; is empty at runtime, the criterion for changing the control level is ignored. You can restrict the search to partial fields [Page 196] by specifying offset and length.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you are working with a work area &amp;lt;wa&amp;gt;, it does not contain the current line in the AT... ENDAT statement block. All character fields to the right of the current group key are filled with asterisks (*). All other fields to the right of the current group key contain their initial value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Within an AT...ENDAT block, you can calculate the contents of the numeric fields of the corresponding control level using the SUM statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can only use this statement within a LOOP. If you use SUM in an AT - ENDAT block, the system calculates totals for the numeric fields of all lines in the current line group and writes them to the corresponding fields in the work area (see example in ). If you use the SUM statement outside an AT - ENDAT block (single entry processing), the system calculates totals for the numeric fields of all lines of the internal table in each loop pass and writes them to the corresponding fields of the work area. It therefore only makes sense to use the SUM statement in&lt;/P&gt;&lt;P&gt;AT...ENDAT blocks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the table contains a nested table, you cannot use the SUM statement. Neither can you use it if you are using a field symbol instead of a work area in the LOOP statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ex.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF LINE,&lt;/P&gt;&lt;P&gt;CARRID TYPE SBOOK-CARRID,&lt;/P&gt;&lt;P&gt;CONNID TYPE SBOOK-CONNID,&lt;/P&gt;&lt;P&gt;FLDATE TYPE SBOOK-FLDATE,&lt;/P&gt;&lt;P&gt;CUSTTYPE TYPE SBOOK-CUSTTYPE,&lt;/P&gt;&lt;P&gt;CLASS TYPE SBOOK-CLASS,&lt;/P&gt;&lt;P&gt;BOOKID TYPE SBOOK-BOOKID,&lt;/P&gt;&lt;P&gt;END OF LINE.&lt;/P&gt;&lt;P&gt;DATA ITAB LIKE SORTED TABLE OF LINE WITH UNIQUE KEY TABLE&lt;/P&gt;&lt;P&gt;LINE.&lt;/P&gt;&lt;P&gt;SELECT CARRID CONNID FLDATE CUSTTYPE CLASS BOOKID&lt;/P&gt;&lt;P&gt;FROM SBOOK INTO CORRESPONDING FIELDS OF TABLE ITAB.&lt;/P&gt;&lt;P&gt;LOOP AT ITAB INTO LINE.&lt;/P&gt;&lt;P&gt;AT FIRST.&lt;/P&gt;&lt;P&gt;WRITE / 'List of Bookings'.&lt;/P&gt;&lt;P&gt;ULINE.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;AT NEW CARRID.&lt;/P&gt;&lt;P&gt;WRITE: / 'Carrid:', LINE-CARRID.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;AT NEW CONNID.&lt;/P&gt;&lt;P&gt;WRITE: / 'Connid:', LINE-CONNID.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;AT NEW FLDATE.&lt;/P&gt;&lt;P&gt;WRITE: / 'Fldate:', LINE-FLDATE.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;AT NEW CUSTTYPE.&lt;/P&gt;&lt;P&gt;WRITE: / 'Custtype:', LINE-CUSTTYPE.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;WRITE: / LINE-BOOKID, LINE-CLASS.&lt;/P&gt;&lt;P&gt;AT END OF CLASS.&lt;/P&gt;&lt;P&gt;ULINE.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bhaskar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 11:10:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/control-break-processing/m-p/2865697#M672091</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T11:10:16Z</dc:date>
    </item>
  </channel>
</rss>

