How to use pf-status u2018menuu2019  in ALV report ?

Hi Friends,
How to use pf-status u2018menuu2019  in ALV report ?
I want to use back button ( F3). whenever press it should show
another report.
I used  subroutine
form SUB_ERROR_OUTPUT USING RT_EXTAB TYPE SLIS_T_EXTAB .
SET PF-STATUS 'ZMENU' EXCLUDING RT_EXTAB.  u201C( the button name is u201C back u201C)
CASE SY-UCOMM.
*WHEN '&F03'.
WHEN 'BACK'
( my coding is there ).
endcase.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PF_STATUS_SET          = 'SUB_ERROR_OUTPUT'
but it is  executing, working the back button but not showing another report .
any other procedure to use back button in alv report ?
plz any idea .
For correct answer  reword most.
Thanking you.

Purchase day Book .
Data to be down loaded / printed for EDP dept. CGL.
CGL - Requirement .
WRITTEN  BY : ADI.****
*CONSULTANT : SANJAY JAJOO..
AS PER DP REQUIREMENT.
-CHANGED BY    :    KRISHNA MOHAN  (15/01/2002)--
-CHANGE REQ BY :    JAJU S--
-DESCRIPTION   :    SUMMRY BY TAX CODE WISE & GL CODE WISE--
---MODIFIED LINES: -
---CHANGED BY    :    -
---CHANGE REQ BY :    -
---DESCRIPTION   :    -
---MODIFIED LINES: -
*---changed by    :    sanjay jajoo on 23/08
*---changed req by:    Ranka
*---Description   :    Inserting Range of period as sel field
  changed by    :    krishna mohan
  func. consultant:  sanjay jajoo
REPORT ZMMPURDB MESSAGE-ID 00
                LINE-SIZE 255
                LINE-COUNT 60
                NO STANDARD PAGE HEADING .
TABLES :   MKPF   ,  MSEG  ,SKAT,
           EKKO   ,  EKPO  , EKBE ,
           BSEG   ,  BKPF  , BSET ,
           T009B  ,  T001  , T007S ,
           T001W  ,  T001K ,LFA1.
******Table deactivated on 30/8/2000------jaju
*tables : zcgltaxatn .
DATA  : ZFILE1(65) VALUE '/DOWNLOAD/'.
DATA  : ZFILE2(65) .
DATA  : ZFILE(30) TYPE C VALUE '/DOWNLOAD/'.
DATA   : ZMON(2).
DATA : ZTOTAL(11) TYPE N.
DATA: ZTOT1 TYPE P DECIMALS 2.
DATA: ZTXT LIKE SKAT-TXT50.
TYPES: BEGIN OF COMPANY ,
HKONT LIKE BSEG-HKONT,
TOTAL LIKE BSEG-DMBTR,
END OF COMPANY.
DATA: COMP TYPE COMPANY,
      COMPTAB TYPE HASHED TABLE OF COMPANY WITH UNIQUE KEY HKONT
      WITH HEADER LINE.
DATA : NEXT LIKE BSEG-BUZEI.           "A.A. (28/03/2000)
DATA : DOC LIKE BSEG-BELNR.            "A.A. (28/03/2000)
DATA  S_GSBER.
DATA: CTR TYPE I.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-B01.
PARAMETERS : T_BUKRS LIKE T001-BUKRS OBLIGATORY MEMORY ID BUK .
***********CH--ID- ADI- 29 / 09 / 1999
SELECT-OPTIONS : ZGL FOR BSEG-HKONT OBLIGATORY.
***********CH--ID- ADI- 29 / 09 / 1999
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(9) TEXT-C01 .
PARAMETERS : POPER RADIOBUTTON GROUP RAD1 .
SELECTION-SCREEN COMMENT 13(7) TEXT-C02 .
PARAMETERS : MONTH RADIOBUTTON GROUP RAD1 .
SELECTION-SCREEN COMMENT 23(8) TEXT-C03 .
SELECTION-SCREEN POSITION 33 .
commented on 22/08 sanjay jajoo
*PARAMETERS :  T_MONAT LIKE BKPF-MONAT .
SELECTION-SCREEN END OF LINE.
PARAMETERS : T_GJAHR LIKE BKPF-GJAHR OBLIGATORY .
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS : S_DOCTYP FOR BKPF-BLART,
                 S_VENDOR FOR LFA1-LIFNR  MATCHCODE  OBJECT KRED,
                 S_MATNR FOR BSEG-MATNR NO-DISPLAY,
                T_BUDAT FOR MKPF-BUDAT NO-EXTENSION MODIF ID DAT,
                p_gsber FOR bseg-gsber  OBLIGATORY,
                 P_GSBER FOR BSEG-GSBER,
mod starts for inserting range of period - sanjay jajoo
                 T_MONAT FOR BKPF-MONAT OBLIGATORY.
mod ends
*SELECT-OPTIONS: br_blart FOR mkpf-blart.
*Select-options:  br_blart for bkpf-blart.
SELECTION-SCREEN END OF BLOCK B1 .
Start of Delete by B.Elan on 23/12/2005
*PARAMETERS : errors AS CHECKBOX .
*PARAMETERS : summary AS CHECKBOX .
*PARAMETERS : nodetail AS CHECKBOX .
**selection-screen skip 2.
*SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-b03.   "<<<
*Add
*PARAMETER : stax_reg RADIOBUTTON GROUP rad2 .                   "<<<
*Add
*PARAMETER : pur_db RADIOBUTTON GROUP rad2 .                     "<<<
*Add
*SELECTION-SCREEN END OF BLOCK b3 .     "<<< Add
*SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-b02.
*PARAMETERS : display RADIOBUTTON GROUP grp1 ,
            dload RADIOBUTTON GROUP grp1.
*PARAMETERS : fname1 LIKE rlgrap-filename .
*DATA : zdoc LIKE bseg-belnr.
*DATA : fname LIKE rlgrap-filename.
*SELECTION-SCREEN END OF BLOCK b2 .
End of Delete by B.Elan on 23/12/2005
Start of Insert by B.Elan on 23/12/2005
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(5) TEXT-C01.
PARAMETER : PUR_DB RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 10(25) TEXT-C06.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(5) TEXT-C01.
PARAMETERS : MAT_SM RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 10(25) TEXT-C04.
SELECTION-SCREEN COMMENT 35(5) TEXT-C01.
PARAMETERS : VEN_SM RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 44(20) TEXT-C05.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(5) TEXT-C01.
PARAMETERS : MAT_DT RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 10(25) TEXT-C07.
SELECTION-SCREEN COMMENT 35(5) TEXT-C01.
PARAMETERS : VEN_DT RADIOBUTTON GROUP RAD2.
SELECTION-SCREEN COMMENT 44(20) TEXT-C08.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
End of Insert by B.Elan on 23/12/2005
Hard coded values used in the program
added by krishna mohan on 09/02/02
DATA : BEGIN OF IT_MSEG OCCURS 0,
        BELNR LIKE BSEG-BELNR,
        MBLNR LIKE MSEG-MBLNR,
        EBELN LIKE BSEG-EBELN,
        EBELP LIKE BSEG-EBELP,
      END OF IT_MSEG.
mod ends
Start of Insert by B.Elan on 23/12/2005
*--vikky
DATA : BEGIN OF IT_FINAL OCCURS 0,
         MATNR LIKE MARA-MATNR,
         BLART LIKE BKPF-BLART,         "  doctype
         BELNR LIKE BSEG-BELNR,         "sr - nO  10
         XBLNR LIKE BKPF-XBLNR ,        " Bill-no  16
         NAME1_VENDOR(25),
         "lfa1-name1,   " Vendor Name 35
         HKONT LIKE BSEG-HKONT ,        " Alloc-cd  10
         MWSKZ LIKE EKPO-MWSKZ ,        " St-cd     2
         BUDAT LIKE BKPF-BUDAT ,        " Bill-dt  10
         DUE_DATE LIKE BSEG-ZFBDT ,     " Due date 10
         PON    LIKE EKKO-EBELN ,                           " PON 10
         MAKTX LIKE MAKT-MAKTX,         "Material text 40
         MBLNR LIKE MSEG-MBLNR,
         QTY(8) TYPE P DECIMALS 2  ,                        "Qty 11
         RATE(9) TYPE P DECIMALS 2  ,                       "Rate11
         DISCOUNT(7) TYPE P DECIMALS 2,  "DISCOUNT 11
         PROD-AMT(9) TYPE P DECIMALS 2,
                                                            "AMOUNT 13
         EXCISE(8) TYPE P DECIMALS 2 ,   "eXCISE TAX 11
         SALES(5) TYPE P DECIMALS 2 ,    "SALES TAX   11
         FREIGHT(9) TYPE P DECIMALS 2,   "FREIGHT     11
         OTHERS(11) TYPE P DECIMALS 2,    " OTHERS     11
         TOTAL(9) TYPE P DECIMALS 2,     "TOTAL       17
       END OF IT_FINAL.
*DATA : BEGIN OF IT_FINAL OCCURS 0,
        MATNR LIKE MARA-MATNR,
        BLART LIKE BKPF-BLART,         "  doctype
        BELNR LIKE BSEG-BELNR,         "sr - nO  10
        XBLNR LIKE BKPF-XBLNR ,        " Bill-no  16
        NAME1_VENDOR(25),
        "lfa1-name1,   " Vendor Name 35
        HKONT LIKE BSEG-HKONT ,        " Alloc-cd  10
        MWSKZ LIKE EKPO-MWSKZ ,        " St-cd     2
        BUDAT LIKE BKPF-BUDAT ,        " Bill-dt  10
        DUE_DATE LIKE BSEG-ZFBDT ,     " Due date 10
        PON    LIKE EKKO-EBELN ,                           " PON  10
        MAKTX LIKE MAKT-MAKTX,         "Material text 40
        MBLNR LIKE MSEG-MBLNR,
        QTY(13) TYPE P DECIMALS 2  ,                       "Qty 11
        RATE(13) TYPE P DECIMALS 2  ,                      "Rate 11
        DISCOUNT(13) TYPE P DECIMALS 2,  "DISCOUNT 11
        PROD-AMT(13) TYPE P DECIMALS 2,
                                                           "AMOUNT 13
        EXCISE(13) TYPE P DECIMALS 2 ,   "eXCISE TAX 11
        SALES(13) TYPE P DECIMALS 2 ,    "SALES TAX   11
        FREIGHT(13) TYPE P DECIMALS 2,   "FREIGHT     11
        OTHERS(13) TYPE P DECIMALS 2,    " OTHERS     11
        TOTAL(13) TYPE P DECIMALS 2,     "TOTAL       17
      END OF IT_FINAL.
*--vikky
DATA : BEGIN OF IT_FINAL_VN OCCURS 0,
           NAME1_VENDOR(25),
           "lfa1-name1,   " Vendor Name 35
           MATNR LIKE MARA-MATNR,
           BLART LIKE BKPF-BLART,         "  doctype
           BELNR LIKE BSEG-BELNR,         "sr - nO  10
           XBLNR LIKE BKPF-XBLNR ,        " Bill-no  16
           HKONT LIKE BSEG-HKONT ,        " Alloc-cd  10
           MWSKZ LIKE EKPO-MWSKZ ,        " St-cd     2
           BUDAT LIKE BKPF-BUDAT ,        " Bill-dt  10
           DUE_DATE LIKE BSEG-ZFBDT ,     " Due date 10
           PON    LIKE EKKO-EBELN ,                         " PON  10
           MAKTX LIKE MAKT-MAKTX,         "Material text 40
           MBLNR LIKE MSEG-MBLNR,
           QTY(8) TYPE P DECIMALS 2  ,                      "Qty 11
           RATE(9) TYPE P DECIMALS 2  ,                     "Rate 11
           DISCOUNT(7) TYPE P DECIMALS 2,  "DISCOUNT 11
           PROD-AMT(9) TYPE P DECIMALS 2,
                                                            "AMOUNT 13
           EXCISE(5) TYPE P DECIMALS 2 ,   "eXCISE TAX 11
           SALES(5) TYPE P DECIMALS 2 ,    "SALES TAX   11
           FREIGHT(5) TYPE P DECIMALS 2,   "FREIGHT     11
           OTHERS(9) TYPE P DECIMALS 2,    " OTHERS     11
           TOTAL(9) TYPE P DECIMALS 2,     "TOTAL       17
       END OF IT_FINAL_VN.
End of Insert by B.Elan on 23/12/2005
DATA: BEGIN OF ITAB_DISPLAY OCCURS 0,
        BLART LIKE BKPF-BLART,         "  doctype
        BELNR LIKE BSEG-BELNR,         "sr - nO  10
        XBLNR LIKE BKPF-XBLNR ,        " Bill-no  16
        NAME1_VENDOR(25),              "lfa1-name1,   " Vendor Name 35
        HKONT LIKE BSEG-HKONT ,        " Alloc-cd  10
        MWSKZ LIKE EKPO-MWSKZ ,        " St-cd     2
        BUDAT LIKE BKPF-BUDAT ,        " Bill-dt  10
        DUE_DATE LIKE BSEG-ZFBDT ,     " Due date 10
        PON    LIKE EKKO-EBELN ,                            " PON  10
        MAKTX LIKE MAKT-MAKTX,         "Material text 40
       QTY(8) TYPE P DECIMALS 2  ,                          "Qty 11
                                                            "qty 5
     RATE(5) TYPE P DECIMALS 2  ,                         "Rate 11
     mod starts on 21/08 for inc size to 7
       RATE(9) TYPE P DECIMALS 2  ,                         "Rate 11
                                                            "Rate 7
     mod ends -  sanjay jajoo 21/08
       DISCOUNT(7) TYPE P DECIMALS 2,  "DISCOUNT 11
       PROD-AMT(9) TYPE P DECIMALS 2,                       "AMOUNT 13
       EXCISE(5) TYPE P DECIMALS 2 ,   "eXCISE TAX 11
       SALES(5) TYPE P DECIMALS 2 ,    "SALES TAX   11
       FREIGHT(5) TYPE P DECIMALS 2,   "FREIGHT     11
       OTHERS(9) TYPE P DECIMALS 2,    " OTHERS     11 " added by vik on
*21.08.2008
       TOTAL(9) TYPE P DECIMALS 2,     "TOTAL       17
       TOTAL1(9) TYPE P DECIMALS 2,
       MATNR LIKE MARA-MATNR,
       EBELN LIKE EKPO-EBELN,
       EBELP LIKE EKPO-EBELP,
    END OF ITAB_DISPLAY.
DATA: BEGIN  OF ITAB_TOTAL1 OCCURS 0,
      HKONT LIKE BSEG-HKONT,
      TOTAL TYPE P DECIMALS 2,
      TXT50 LIKE SKAT-TXT50,
      END OF ITAB_TOTAL1.
DATA: BEGIN  OF ITAB_KONV OCCURS 0,
        KNUMV LIKE KONV-KNUMV,
        KPOSN LIKE KONV-KPOSN,
        STUNR LIKE KONV-STUNR,
        ZAEHK LIKE KONV-ZAEHK,
        KSCHL LIKE KONV-KSCHL,
        KWERT LIKE KONV-KWERT,
      END OF ITAB_KONV.
DATA:BEGIN OF ITAB_RATE_MODVAT OCCURS 0,
       EBELN LIKE EKPO-EBELN,
       EBELP LIKE EKPO-EBELP,
       MENGE LIKE EKPO-MENGE,
       BRTWR LIKE EKPO-BRTWR,
       KZWI5 LIKE EKPO-KZWI5,
       KNUMV LIKE EKKO-KNUMV,
       MATNR LIKE EKPO-MATNR,
       TXZ01 LIKE EKPO-TXZ01,
     END OF ITAB_RATE_MODVAT.
DATA: BEGIN OF ITAB_PO OCCURS 0,
        EBELN LIKE EKPO-EBELN,
        EBELP LIKE EKPO-EBELP,
      END OF ITAB_PO.
DATA: BEGIN OF ITAB_PO_ITEM OCCURS 0,
        BELNR LIKE BSEG-BELNR,
        EBELN LIKE BSEG-EBELN,
        BUZID LIKE BSEG-BUZID,
        XBLNR LIKE BKPF-XBLNR,
        MATNR LIKE BSEG-MATNR,
        EBELP LIKE BSEG-EBELP,
        MENGE LIKE BSEG-MENGE,
        WRBTR LIKE BSEG-WRBTR,
        EXCISE LIKE BSEG-DMBTR, " ADDED ON 21/01/02 FOR 27500 EXCISE
      SGTXT LIKE BSEG-SGTXT, " ADDED ON 24/01/02
        FLAG,
      END OF ITAB_PO_ITEM.
DATA:BEGIN OF I_LFA1 OCCURS 0,
       LIFNR LIKE BSEG-LIFNR,
     END OF I_LFA1.
DATA: BEGIN  OF I_VENDOR OCCURS 0,
        LIFNR LIKE LFA1-LIFNR,
        NAME1 LIKE LFA1-NAME1,
      END OF I_VENDOR.
DATA: BEGIN OF ITAB_PO_OTHERS OCCURS  0,
        BELNR LIKE BSEG-BELNR,
        MATNR LIKE BSEG-MATNR,
        EBELN LIKE BSEG-EBELN,
        EBELP LIKE BSEG-EBELP,
        MENGE LIKE BSEG-MENGE,
        WRBTR LIKE BSEG-WRBTR,
      END OF ITAB_PO_OTHERS.
DATA: BEGIN OF ITAB_FINAL OCCURS 0,
        BUKRS LIKE BSEG-BUKRS,
        BELNR LIKE BSEG-BELNR,
        GJAHR LIKE BSEG-GJAHR,
        BUZEI LIKE BSEG-BUZEI,
        BUZID LIKE BSEG-BUZID,
        SHKZG LIKE BSEG-SHKZG,
        EBELN LIKE BSEG-EBELN,
        EBELP LIKE BSEG-EBELP,
        MENGE LIKE BSEG-MENGE,
        WRBTR LIKE BSEG-WRBTR,
        MATNR LIKE BSEG-MATNR,
        HKONT LIKE BSEG-HKONT, " ADDED ON 21/01/02 FOR 27500 EXCISE
        SGTXT LIKE BSEG-SGTXT,         " ADDED ON 24/01/02 FOR SALES TAX
      END OF ITAB_FINAL.
DATA : BEGIN OF ITAB OCCURS 100 ,
           MWSKZ LIKE EKPO-MWSKZ ,     " St-cd
           HKONT LIKE BSEG-HKONT ,     " Alloc-cd
           MBLNR LIKE MKPF-MBLNR ,     " Sr-No
           LIFNR LIKE LFA1-LIFNR ,     " Supp-cd
           XBLNR LIKE BKPF-XBLNR ,     " Bill-no
           BUDAT LIKE BKPF-BUDAT ,     " Bill-dt
           DUE_DATE LIKE BSEG-ZFBDT ,  " Due date
           PON    LIKE EKKO-EBELN ,    " PON
           BELNR LIKE BKPF-BELNR ,     " CCI no
           DMBTR LIKE BSEG-DMBTR ,     " Prod-amount
           EXCISE LIKE BSEG-DMBTR ,    " Excise / ModVAT
           ST_INV LIKE BSEG-DMBTR ,    " Sales Tax Loaded on Inv.
           ST_SET LIKE BSEG-DMBTR ,    " Sales Tax setoff .
           OCT_TOT LIKE BSEG-DMBTR ,   " A,A, (29/03/2000) Octroi chargs
           PT_PABLE LIKE BSEG-DMBTR ,  " Purchase tax payable
           ST_TOT LIKE BSEG-DMBTR ,    " Sales Tax total
           OTHR_CHRG LIKE BSEG-DMBTR , " Other chagres
           NEBTR LIKE BSEG-NEBTR,      " Total-amount
           NAME1_VENDOR LIKE LFA1-NAME1,   " Vendor Name
     END OF ITAB.
DATA: BEGIN OF ITAB_DOC OCCURS 0,
        BELNR LIKE BKPF-BELNR,
        BLART LIKE BKPF-BLART,
      END OF ITAB_DOC.
DATA : BEGIN OF DOCTAB OCCURS 100 ,
         MWSKZ LIKE BSEG-MWSKZ ,
         HKONT LIKE BSEG-HKONT ,
         BELNR LIKE BKPF-BELNR ,
Changed By Pankaj              19.03.99
Included field fiscal year
         GJAHR LIKE BKPF-GJAHR ,
         BUDAT LIKE BKPF-BUDAT ,
         XBLNR LIKE BKPF-XBLNR ,
         LIFNR LIKE LFA1-LIFNR ,
         ZTERM LIKE BSEG-ZTERM ,
         AMOUNT LIKE BSEG-DMBTR ,
         DMBTR  LIKE BSEG-DMBTR ,
         OTHR_CHRG LIKE BSEG-DMBTR ,
         MBLNR LIKE MKPF-MBLNR ,
         MJAHR LIKE MSEG-MJAHR ,
         DUE_DATE LIKE BSEG-ZFBDT ,
         PON    LIKE EKKO-EBELN ,
         JMO1  LIKE BSEG-DMBTR ,
         JMO2  LIKE BSEG-DMBTR ,
         JIP1  LIKE BSEG-DMBTR ,
         JIP2  LIKE BSEG-DMBTR ,
************CH-ID-ADI-START-28 / 09 / 1999
         JIP4 LIKE BSEG-DMBTR ,
         ZTUT LIKE BSEG-DMBTR ,
*****************ABEY
         ZOCT LIKE BSEG-DMBTR ,
*****************END
************CH-ID-ADI-START-28 / 09 / 1999
         ZSET  LIKE BSEG-DMBTR ,
         ZPTX  LIKE BSEG-DMBTR ,
         BLART LIKE BKPF-BLART ,
      END OF DOCTAB .
Download for EDP    "EDP
DATA : BEGIN OF DOWNLOAD OCCURS 100 ,
       SIGN1(1) ,
       TOT_VAL(11) TYPE N,
       SIGN2(1) ,
       TAXABLE(11) TYPE N ,
       SIGN3(1) ,
       TOT_TAX(11) TYPE N ,
       SIGN4(1) ,
       SURCHARG(9) TYPE N ,
       SIGN5(1) ,
       ST_AMT(9) TYPE N ,
       SIGN6(1) ,
       OTH_CHRG(9) TYPE N ,
******************************ch-adi-start-28 / 09 / 1999
       SIGN7(1),
       TOT(9) TYPE N,
******************************ch-adi-end-28 / 09 / 1999
       TYPE(1) TYPE N ,
       STKY1(1) TYPE N ,
       STBR(2) ,
       STDV(2) ,
       STCC(1) ,
       STKY(1) ,
       STDC(2) TYPE N ,
       STTYP(1) ,
       STCODE(2) ,
       STRATE(2) TYPE N ,
       STRTT(2) TYPE N ,
       SERIAL_NO(6) TYPE N ,
       STACP(9) ,
       BLANK1(3) ,
       STYRMN(6) ,
       BLANK2(7) TYPE C .
DATA : END OF DOWNLOAD .
DATA : BEGIN OF GLTAB OCCURS 5 ,
           MWSKZ LIKE BSEG-MWSKZ,      " << ADD A.A. (01.02.2000)
           HKONT LIKE BSEG-HKONT ,
           DMBTR LIKE BSEG-DMBTR ,     " Prod-amount
           EXCISE LIKE BSEG-DMBTR ,    " Excise / ModVAT
           ST_INV LIKE BSEG-DMBTR ,    " Sales Tax Loaded on Inv.
           ST_SET LIKE BSEG-DMBTR ,    " Sales Tax setoff .
           PT_PABLE LIKE BSEG-DMBTR ,  " Purchase tax payable
           ST_TOT LIKE BSEG-DMBTR ,    " Sales Tax total
           OTHR_CHRG LIKE BSEG-DMBTR , " Other Charges
           NEBTR LIKE BSEG-NEBTR.      " Total-amount
DATA : END OF GLTAB .
DATA : BEGIN OF ERRORTAB OCCURS 5 .
        INCLUDE STRUCTURE ITAB .
DATA : END OF ERRORTAB .
*- Start of change by Raj on 3-Spet-05
DATA : V_TMPVAL TYPE P DECIMALS 2.
*- End of change by Raj on 3-Spet-05
DATA : STRING LIKE BKPF-AWKEY ,
       V_NO TYPE I,
       V_EBELN LIKE BSEG-EBELN,
       V_MATNR LIKE BSEG-MATNR. " ADDED ON 21/01/02 FOR BUZID = 'S'
Start of Insert by B.Elan on 23/12/2005
WORK AREA
DATA : WA_DISPLAY LIKE ITAB_DISPLAY.
DATA : V_UCOMM TYPE SY-UCOMM.
CONSTANTS : C_X TYPE C VALUE 'X'.
End of Insert by B.Elan on 23/12/2005
AT SELECTION-SCREEN ON T_BUKRS.
  SELECT SINGLE * FROM T001 WHERE BUKRS = T_BUKRS .
  IF SY-SUBRC NE 0 .
    MESSAGE E368 WITH T_BUKRS TEXT-M01 .
  ENDIF .
AT SELECTION-SCREEN ON T_MONAT.
PERFORM check_period_year USING 'X'.   " COMMENTED
AT SELECTION-SCREEN ON T_GJAHR.
PERFORM check_period_year USING ' '.   "COMMENTED
Start of Delete by B.Elan on 23/12/2005
*AT SELECTION-SCREEN ON RADIOBUTTON GROUP grp1 .
CLEAR fname .
DATA : BEGIN OF xt247 OCCURS 12 .
         INCLUDE STRUCTURE t247 .
DATA : END OF xt247 .
CHECK dload EQ 'X' .
REFRESH xt247 .
IF poper EQ 'X' .
   MESSAGE e368 WITH text-m05 .
ENDIF .
CALL FUNCTION 'MONTH_NAMES_GET'
   TABLES
     month_names           = xt247
   EXCEPTIONS
     month_names_not_found = 1
     OTHERS                = 2.
READ TABLE xt247 WITH KEY mnr = t_monat .
CONCATENATE 'STAXSUMM.' xt247-ktx INTO fname .
CONCATENATE  '
DOWNLOAD\'   fname    INTO fname1.
CONCATENATE  zfile1   fname    INTO   zfile2.
CONDENSE fname1 NO-GAPS.
CONDENSE zfile2 NO-GAPS.
CONCATENATE 'STAXSUMM.' xt247-ktx INTO fname .
End of Delete by B.Elan on 23/12/2005
AT SELECTION-SCREEN OUTPUT .
  LOOP AT SCREEN .
    IF SCREEN-NAME EQ 'FNAME' .
      SCREEN-INPUT = 0.
      MODIFY SCREEN .
    ENDIF .
    IF SCREEN-GROUP2 EQ 'DBS' .
      SCREEN-ACTIVE = 0 .
      MODIFY SCREEN .
      IF SCREEN-NAME EQ 'BR_BLART-LOW' .
Form the select option for the LDB .
        CLEAR BR_BLART . REFRESH BR_BLART .
        BR_BLART-SIGN = 'I' .
        BR_BLART-OPTION = 'EQ' .
        BR_BLART-LOW = 'RE' .
        APPEND BR_BLART .
        BR_BLART-SIGN = 'I' .
        BR_BLART-OPTION = 'EQ' .
        BR_BLART-LOW = 'SR' .
        APPEND BR_BLART .
        BR_BLART-SIGN = 'I' .
        BR_BLART-OPTION = 'EQ' .
        BR_BLART-LOW = 'SP' .
        APPEND BR_BLART .       " ADD ON 11122003 JAJ
        BR_BLART-SIGN = 'I' .
        BR_BLART-OPTION = 'EQ' .
       br_blart-low = 'VI' .
        BR_BLART-LOW = 'ST'.
        APPEND BR_BLART .
        BR_BLART-LOW = 'S1'.
        APPEND BR_BLART .
        BR_BLART-LOW = 'P1'.
        APPEND BR_BLART .
        BR_BLART-LOW = 'PM'.
        APPEND BR_BLART .
        BR_BLART-LOW = 'R1'.
        APPEND BR_BLART .
        BR_BLART-SIGN = 'I' .
        BR_BLART-OPTION = 'EQ' .
        BR_BLART-LOW = 'KR' .
        APPEND BR_BLART .
        BR_BLART-SIGN = 'I' .
        BR_BLART-OPTION = 'EQ' .
*************CH-ID-ADI---30 / 09 / 1999.
        BR_BLART-LOW = 'RA'.
        APPEND BR_BLART .
        BR_BLART-SIGN = 'I' .
        BR_BLART-OPTION = 'EQ' .
        BR_BLART-LOW = 'EM'.
        APPEND BR_BLART .
        BR_BLART-SIGN = 'I' .
        BR_BLART-OPTION = 'EQ' .
        BR_BLART-LOW = 'EI' .
        APPEND BR_BLART .
      ENDIF .
    ENDIF .
    CHECK SCREEN-GROUP1 EQ 'DAT' .
    SCREEN-INPUT = 0.
    MODIFY SCREEN .
  ENDLOOP .
START-OF-SELECTION .
Block 1 - Selection of accounting documents in the posting period
is done through the LDB
GET BKPF .
commented on 22/08
CHECK BKPF-MONAT = T_MONAT.
  CHECK BKPF-MONAT IN T_MONAT.
  CHECK BKPF-GJAHR = T_GJAHR.
  CHECK BKPF-STBLG IS INITIAL .        "<<<< Reversed
*CHECK bkpf-budat IN t_budat .
  CHECK BKPF-BUKRS EQ T_BUKRS .
  CHECK BKPF-BUKRS EQ T_BUKRS .
  CHECK BKPF-BSTAT EQ SPACE .          "<<< Sample docs
  CHECK BKPF-BLART EQ 'RE'             "MM-IV
    OR  BKPF-BLART EQ 'KR'             "FI-IV
  OR  bkpf-blart EQ 'VI'          "FI-IV Direct
*************CH-ID-ADI-30 / 09  / 1999
  OR  bkpf-blart EQ 'RA'           "CASH CCI
  OR  bkpf-blart EQ 'EM'           "MAINTAINANCE
  OR  bkpf-blart EQ 'EI' .        "IDT
    OR BKPF-BLART EQ  'P1'
    OR BKPF-BLART EQ 'PM'
    OR  BKPF-BLART EQ 'R1'
    OR  BKPF-BLART EQ 'S1'
    OR  BKPF-BLART EQ 'ST'
    OR  BKPF-BLART EQ 'SR'      " ADD ON 101203 JAJ
    OR  BKPF-BLART EQ 'SP'.
*************CH-ID-ADI-30 / 09  / 1999
  CLEAR DOCTAB .
  DOCTAB-BLART = BKPF-BLART .
  DOCTAB-BELNR = BKPF-BELNR .
  DOCTAB-BUDAT = BKPF-BUDAT .
  DOCTAB-XBLNR = BKPF-XBLNR .
Added By Pankaj                   19.03.99
Initializing fiscal year for document table
  DOCTAB-GJAHR = BKPF-GJAHR .
  APPEND DOCTAB.
Tax details
GET BSET .   " Commented because LDB gives wrong BSET entries
  " for some documents
  CASE BSET-KSCHL .
    WHEN 'JMO1' .
      DOCTAB-JMO1 = DOCTAB-JMO1 + BSET-HWSTE .
    WHEN 'JMO2' .
      DOCTAB-JMO2 = DOCTAB-JMO2 + BSET-HWSTE .
    WHEN 'JIP1' .
      DOCTAB-JIP1 = DOCTAB-JIP1 + BSET-HWSTE .
    WHEN 'JIP2' .
      DOCTAB-JIP2 = DOCTAB-JIP2 + BSET-HWSTE .
    WHEN 'ZSET' .
     break deven .
      DOCTAB-ZSET = DOCTAB-ZSET + BSET-HWSTE .
    WHEN 'ZPTX' .
      DOCTAB-ZPTX = DOCTAB-ZPTX + BSET-HWSTE .
  ENDCASE .
  DOCTAB-MWSKZ = BSET-MWSKZ.
  MODIFY DOCTAB INDEX SY-TABIX.
Item details
*changed by srinivas yerra.
GET BSEG .
  IF BSEG-KOART = 'K' .              "<<< Vendor Line
IF BSEG-KOART = 'K' .
*end of chnages by srinivas yerra.
    DOCTAB-LIFNR = BSEG-LIFNR .
    IF NOT BSEG-ZTERM IS INITIAL .
      DOCTAB-ZTERM = BSEG-ZTERM .
      DOCTAB-DUE_DATE = BSEG-ZFBDT + BSEG-ZBD1T .
    ENDIF .
    IF BSEG-SHKZG EQ 'H' .             "<< Add credits
      DOCTAB-AMOUNT = DOCTAB-AMOUNT + BSEG-DMBTR .
    ELSE .                             "<< Subtr debits
      DOCTAB-AMOUNT = DOCTAB-AMOUNT - BSEG-DMBTR .
    ENDIF .
  ENDIF .
  CASE BSEG-KTOSL .
    WHEN 'WRX' .
      DOCTAB-PON = BSEG-EBELN .
      IF DOCTAB-MWSKZ IS INITIAL .
        DOCTAB-MWSKZ = BSEG-MWSKZ .
      ENDIF .
    WHEN 'BSX' .
***********ABEY
      IF NEXT = BSEG-BUZEI
         AND
         DOC = BSEG-BELNR
         AND
         ( BSEG-BUZID = 'M'
           OR
           BSEG-HKONT = 50765 ).
        DOCTAB-ZOCT = DOCTAB-ZOCT + BSEG-DMBTR.
        IF BSEG-SHKZG EQ 'H' .         "<< Subtr credits
          DOCTAB-OTHR_CHRG = DOCTAB-OTHR_CHRG - BSEG-DMBTR .
        ELSE .                         "<< Add debits
          DOCTAB-OTHR_CHRG = DOCTAB-OTHR_CHRG + BSEG-DMBTR .
        ENDIF .
      ENDIF .
************END
      IF BSEG-SHKZG EQ 'S' .
        DOCTAB-DMBTR = DOCTAB-DMBTR + BSEG-DMBTR .
      ELSE .
        DOCTAB-DMBTR = DOCTAB-DMBTR - BSEG-DMBTR .
      ENDIF .
    WHEN 'OCT' OR 'FRE' OR 'FR1' OR SPACE .
*****CH-ID-ADI-30 / 09 /1999.
      IF ( ( BKPF-BLART = 'EM'  OR  BKPF-BLART = 'RA'  OR  BKPF-BLART =
      'EI')
       AND BSEG-KTOSL = SPACE ) OR  BSEG-MWSKZ = '9W' OR BSEG-MWSKZ =
       'K9' OR
                                                            BSEG-MWSKZ =
                                                            'X9'.
        DOCTAB-OTHR_CHRG = 0.
      ELSE.
*********CH-ID-ADI--01 / 10 / 1999
     Other Charges only for accounts other than vendor acc.
        CHECK BSEG-BUZID NE 'T' .
        CHECK BSEG-BUZID NE 'P' .
        IF BSEG-KOART NE 'K' .
*********ABEY (25/02/2000), (21/02/2000)
          IF BSEG-BUZID = 'F'
           OR BSEG-HKONT = 75461.
            NEXT = BSEG-BUZEI + 1.
            DOC = BSEG-BELNR.
            DOCTAB-ZOCT = DOCTAB-ZOCT + BSEG-DMBTR.
          ENDIF.
          IF BSEG-BUZEI = NEXT
             AND
             ( BSEG-BUZID = 'M'
               OR
               BSEG-HKONT = 50765 ).
            DOCTAB-ZOCT = DOCTAB-ZOCT + BSEG-DMBTR.
          ENDIF.
*********END
          IF BSEG-SHKZG EQ 'H' .       "<< Subtr credits
            DOCTAB-OTHR_CHRG = DOCTAB-OTHR_CHRG - BSEG-DMBTR .
          ELSE .                       "<< Add debits
            DOCTAB-OTHR_CHRG = DOCTAB-OTHR_CHRG + BSEG-DMBTR .
          ENDIF .
        ENDIF .
*****NEXT-LINE ADDED BY ADI
      ENDIF .
*************END.
  ENDCASE .
*CHANGED BY SRINIVAS YERRA
*MODIFY DOCTAB INDEX SY-TABIX.
  APPEND DOCTAB.
*END OF CHANGES.
PO History
GET EKBE .
  CHECK DOCTAB-BELNR EQ EKBE-BELNR .
  DOCTAB-MBLNR = EKBE-LFBNR .
  DOCTAB-MJAHR = EKBE-LFGJA .
  MODIFY DOCTAB INDEX SY-TABIX .
PERFORM show_indicator USING text-m02 .
*PERFORM convert_data.
END-OF-SELECTION .
Data read from LDB is converted into printable format.
  PERFORM SHOW_INDICATOR USING TEXT-M04 .
  PERFORM CONVERT_DATA .
Start of Delete by B.Elan on 23/12/2005
IF stax_reg EQ 'X' .                 "<<< Add
   SORT itab BY mwskz hkont belnr .
ELSE .                               "<<< Add
   SORT itab BY belnr .               "<<< Add
    SORT itab BY pon.
ENDIF .                              "<<< Add
Perform further operation based on user input
IF display EQ 'X' .
   PERFORM write_itab.
   PERFORM write_data .
ELSE .
  PERFORM download_data .
ENDIF .
End of Delete by B.Elan on 23/12/2005
Start of Insert by B.Elan on 23/12/2005
  SORT ITAB BY BELNR.
  PERFORM WRITE_DATA.
  IF MAT_SM = C_X.
    PERFORM WRITE_MATERIAL_SUMMARY.
  ELSEIF MAT_DT = C_X.
    PERFORM WRITE_MATERIAL_DETAILS.
  ELSEIF VEN_SM = C_X.
    PERFORM WRITE_VENDOR_SUMMARY.
  ELSEIF VEN_DT = C_X.
    PERFORM WRITE_VENDOR_DETAILS.
  ENDIF.
End of Insert by B.Elan on 23/12/2005
Start of Insert by B.Elan on 23/12/2005
AT USER-COMMAND.
  V_UCOMM = SY-UCOMM.
  CASE V_UCOMM.
    WHEN 'DETLS'.
      NEW-PAGE.
      PUR_DB = C_X.
      PERFORM CLEAR_DETAILS.
      PERFORM WRITE_DATA.
    WHEN 'MSUMRY'.
      PERFORM WRITE_MATERIAL_SUMMARY.
    WHEN 'MDETL'.
      PERFORM WRITE_MATERIAL_DETAILS.
    WHEN 'VSUMRY'.
      PERFORM WRITE_VENDOR_SUMMARY.
    WHEN 'VDETL'.
      PERFORM WRITE_VENDOR_DETAILS.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
  ENDCASE.
End of Insert by B.Elan on 23/12/2005
*- - - - - - - - - End Of Execution .- - - - - - - - - - - - - - - - - -
TOP-OF-PAGE .
  IF PUR_DB = C_X.
    PERFORM TOP_OF_PAGE.
    PERFORM TOP_OF_PAGE_PUR_DB.
  ELSEIF MAT_SM = C_X.
    PERFORM TOP_OF_PAGE.
    PERFORM TOP_OF_PAGE_MAT_SM.
  ELSEIF MAT_DT = C_X.
    PERFORM TOP_OF_PAGE.
    PERFORM TOP_OF_PAGE_MAT_DT.
  ELSEIF VEN_SM = C_X.
    PERFORM TOP_OF_PAGE.
    PERFORM TOP_OF_PAGE_VEN_SM.
  ELSEIF VEN_DT = C_X.
    PERFORM TOP_OF_PAGE.
    PERFORM TOP_OF_PAGE_VEN_DT.
  ENDIF.
TOP-OF-PAGE DURING LINE-SELECTION.
  CASE V_UCOMM.
    WHEN 'DETLS'.
      PERFORM TOP_OF_PAGE.
      PERFORM TOP_OF_PAGE_PUR_DB.
    WHEN 'MSUMRY'.
      PERFORM TOP_OF_PAGE.
      PERFORM TOP_OF_PAGE_MAT_SM.
    WHEN 'MDETL'.
      PERFORM TOP_OF_PAGE.
      PERFORM TOP_OF_PAGE_MAT_DT.
    WHEN 'VSUMRY'.
      PERFORM TOP_OF_PAGE.
      PERFORM TOP_OF_PAGE_VEN_SM.
    WHEN 'VDETL'.
      PERFORM TOP_OF_PAGE.
      PERFORM TOP_OF_PAGE_VEN_DT.
  ENDCASE.
*&      Form  WRITE_DATA
      text                                                           *
FORM WRITE_DATA.
  DATA:     V_SALES LIKE ITAB_DISPLAY-SALES,
            V_RATE LIKE ITAB_DISPLAY-RATE,
            V_DISCOUNT LIKE ITAB_DISPLAY-DISCOUNT,
            V_PROD-AMT LIKE ITAB_DISPLAY-PROD-AMT,
            V_EXCISE1 LIKE ITAB_DISPLAY-EXCISE,
            V_EXCISE LIKE ITAB_DISPLAY-EXCISE,
            V_PON LIKE ITAB_DISPLAY-PON,
            V_OTHERS LIKE ITAB_DISPLAY-OTHERS,
            V_FREIGHT LIKE ITAB_DISPLAY-FREIGHT.
  CLEAR ITAB .
Write the correct data i.e. tax code and G/L code both available .
  LOOP AT ITAB .
*************CH-ID-ADI-30 / 09 / 1999
    IF ( ITAB-MWSKZ = '9W' OR ITAB-MWSKZ = 'K9' OR ITAB-MWSKZ = 'X9' )
                                               AND ITAB-OTHR_CHRG NE 0 .
      ITAB-DMBTR = ITAB-OTHR_CHRG.
      ITAB-OTHR_CHRG = 0.
      MODIFY ITAB.
    ENDIF.
  ENDLOOP.
  LOOP AT ITAB.
    I_LFA1-LIFNR = ITAB-LIFNR.
    APPEND I_LFA1.
    CLEAR I_LFA1.
  ENDLOOP.
  SORT I_LFA1.
  DELETE ADJACENT DUPLICATES FROM I_LFA1 COMPARING ALL FIELDS.
  SELECT LIFNR
         NAME1
    FROM LFA1 INTO TABLE I_VENDOR
    FOR ALL ENTRIES IN I_LFA1 WHERE
                                   LIFNR = I_LFA1-LIFNR.
  FREE I_LFA1.
  LOOP AT ITAB.
    READ TABLE I_VENDOR WITH KEY LIFNR = ITAB-LIFNR .
    IF SY-SUBRC EQ 0.
      ITAB-NAME1_VENDOR = I_VENDOR-NAME1.
      MODIFY ITAB  TRANSPORTING NAME1_VENDOR.
    ENDIF.
  ENDLOOP.
  LOOP AT ITAB.
    IF NOT  ITAB-LIFNR IN S_VENDOR.
      DELETE ITAB.
    ENDIF.
  ENDLOOP.
  SELECT BUKRS  BELNR GJAHR BUZEI BUZID SHKZG EBELN EBELP ERFMG WRBTR
   MATNR HKONT SGTXT " ERFMG for MENGE,HKONT,SGTXT Added by KrishnaMohan
         INTO TABLE ITAB_FINAL
        FROM BSEG FOR ALL ENTRIES IN ITAB
        WHERE BUKRS = T_BUKRS AND                           "'1000' AND
              BELNR = ITAB-BELNR AND
*added by srinivas
             hkont in zgl and
*end
              GJAHR = T_GJAHR AND
*- Start of change by Raj on 030905
             buzid IN ('W', 'M', 'K', 'S', 'F' , 'P' ) AND
               BUZID IN ('W', 'M', 'K', 'S', 'F' , 'P' , 'T', ' ') AND
               " ADD T 090206  JAJ
               KOART <> 'K'   AND    " mod by vik on 21.08.2008" sjaj si
*- End of change by Raj on 030905
BUZID = P Added on 21/01/02 by Krishna Mohan
              GSBER IN P_GSBER AND
             gsber IN p_gsber OR gsber = ' ' AND
              MATNR IN S_MATNR.
  SELECT BELNR BLART INTO TABLE ITAB_DOC FROM BKPF
            FOR ALL ENTRIES IN ITAB_FINAL WHERE
                       BUKRS = T_BUKRS AND                  "'1000' AND
                       BELNR  = ITAB_FINAL-BELNR AND
                       GJAHR = T_GJAHR AND
                       BLART NOT IN ('WA' , 'WE').
  SORT ITAB_DOC BY BELNR BLART.
  LOOP AT ITAB_DOC.
    IF NOT ITAB_DOC-BLART IN S_DOCTYP .
      DELETE ITAB_DOC.
    ENDIF.
  ENDLOOP.
  LOOP AT ITAB_FINAL.
    READ TABLE ITAB_DOC WITH KEY BELNR = ITAB_FINAL-BELNR BINARY SEARCH.
    IF SY-SUBRC NE 0.
      DELETE ITAB_FINAL.
    ENDIF.
  ENDLOOP.
  DELETE ITAB_FINAL WHERE BUZID = 'K' AND BUZEI = '1'.
  LOOP AT ITAB_FINAL WHERE SHKZG = 'H'.
    ITAB_FINAL-WRBTR = ITAB_FINAL-WRBTR * ( -1 ).
    MODIFY ITAB_FINAL TRANSPORTING WRBTR.
  ENDLOOP.
  LOOP AT ITAB_FINAL WHERE BUZID = 'M'.
    IF ITAB_FINAL-SGTXT NE ' '.
      TRANSLATE ITAB_FINAL-SGTXT TO UPPER CASE.
      MODIFY ITAB_FINAL.
    ENDIF.
  ENDLOOP.
  LOOP AT ITAB_FINAL .
    IF ITAB_FINAL-BUZID = 'W'.
      CLEAR V_MATNR.
      V_EBELN = ITAB_FINAL-EBELN.
      V_MATNR = ITAB_FINAL-MATNR.
      ITAB_PO_ITEM-BELNR = ITAB_FINAL-BELNR.
      ITAB_PO_ITEM-BUZID = ITAB_FINAL-BUZID.
      ITAB_PO_ITEM-MATNR = ITAB_FINAL-MATNR.
      ITAB_PO_ITEM-EBELN = ITAB_FINAL-EBELN.
      ITAB_PO_ITEM-EBELP = ITAB_FINAL-EBELP.
      ITAB_PO_ITEM-MENGE = ITAB_FINAL-MENGE.
      ITAB_PO_ITEM-WRBTR = ITAB_FINAL-WRBTR.
      COLLECT ITAB_PO_ITEM.
      CLEAR ITAB_PO_ITEM.
    ELSEIF ITAB_FINAL-BUZID = 'M' OR ITAB_FINAL-BUZID = 'K' OR
                                      ITAB_FINAL-BUZID = 'S' OR
        ITAB_FINAL-BUZID = 'P' OR      " ADDED ON 21/01/02
*- Start of change by Raj on 030905
        ITAB_FINAL-BUZID = ' ' OR
         ITAB_FINAL-BUZID = 'T' OR   " ADD BY JAJ ON 090206
*- End of change by Raj on 030905
                                      ITAB_FINAL-BUZID = 'F'.
      IF ITAB_FINAL-MATNR IS INITIAL.
        ITAB_FINAL-MATNR = V_MATNR.
      ENDIF.
    CLEAR V_MATNR.
      ITAB_PO_OTHERS-BELNR = ITAB_FINAL-BELNR.
     ITAB_PO_OTHERS-MATNR = ITAB_FINAL-MATNR.
     ITAB_PO_OTHERS-EBELN = ITAB_FINAL-EBELN.
     ITAB_PO_OTHERS-EBELP = ITAB_FINAL-EBELP.
     ITAB_PO_OTHERS-MENGE = ITAB_FINAL-MENGE.
      ITAB_PO_OTHERS-WRBTR = ITAB_FINAL-WRBTR.
IF CONDITION,ADDED ON 21/01/02 FOR GETTING EXCISE WHEN CONDITION MEETS
ie TOTAL AMOUNT = EXCISE WHEN BUZID = S AND HKONT = 27500
*IF itab_final-buzid = 'S' AND ( itab_final-hkont = '0000027500' OR  "
*COMM BY JAJ ON 090206
      IF ITAB_FINAL-BUZID = 'S' OR ITAB_FINAL-BUZID = 'T' AND (
      ITAB_FINAL-HKONT = '0000027500' OR
                                    ITAB_FINAL-HKONT = '0000027515'
        OR  ITAB_FINAL-HKONT = '0000027550'       " jaj on 090206
       OR  ITAB_FINAL-HKONT = '0000027507' OR
        ITAB_FINAL-HKONT = '0000027508').  "Added on 050905 - Raj
        ITAB_FINAL-EBELN = V_EBELN.
to get ebeln value into header so that when there are 2 po's
and 2 W's excise can go into only one po which is v_ebeln
Start of insert by B.Elan on 10/02/2006
        READ TABLE ITAB_PO_ITEM WITH KEY BELNR = ITAB_FINAL-BELNR
                                         EBELN = ITAB_FINAL-EBELN
                                         MATNR = ITAB_FINAL-MATNR.
        ITAB_PO_ITEM-EXCISE = ITAB_PO_ITEM-EXCISE + ITAB_FINAL-WRBTR.
End of insert by B.Elan on 10/02/2006
Start of delete by B.Elan on 10/02/2006
      itab_po_item-excise = itab_final-wrbtr.
End of delete by B.Elan on 10/02/2006
        MODIFY ITAB_PO_ITEM TRANSPORTING EXCISE
              WHERE BELNR EQ ITAB_FINAL-BELNR AND
                    EBELN EQ ITAB_FINAL-EBELN.
        CLEAR ITAB_PO_ITEM.
      ELSE.
        COLLECT ITAB_PO_OTHERS.
      ENDIF.
      CLEAR ITAB_PO_OTHERS.
    ENDIF.
  ENDLOOP.
sateesh
  SORT ITAB_PO_ITEM BY BELNR EBELN.
  LOOP AT ITAB_PO_ITEM.
   AT NEW BELNR.
    AT NEW EBELN.
      READ TABLE ITAB_PO_ITEM INDEX SY-TABIX.
      ITAB_PO_ITEM-FLAG = 'X'.
      MODIFY ITAB_PO_ITEM INDEX SY-TABIX.
    ENDAT.
   ENDAT.
  ENDLOOP.
  LOOP AT ITAB_PO_ITEM.
    ITAB_PO_ITEM-EXCISE = 0.
    MODIFY ITAB_PO_ITEM TRANSPORTING EXCISE
     WHERE EXCISE > 0
       AND FLAG = SPACE.
  ENDLOOP.
end
  LOOP AT ITAB_PO_ITEM.
    ITAB_PO-EBELN = ITAB_PO_ITEM-EBELN.
    ITAB_PO-EBELP = ITAB_PO_ITEM-EBELP.
    APPEND ITAB_PO.
    CLEAR ITAB_PO.
  ENDLOOP.
  LOOP AT ITAB_PO_OTHERS.
    ITAB_PO-EBELN = ITAB_PO_OTHERS-EBELN.
    ITAB_PO-EBELP = ITAB_PO_OTHERS-EBELP.
    APPEND ITAB_PO.
    CLEAR ITAB_PO.
  ENDLOOP.
  SORT ITAB_PO.
  DELETE ADJACENT DUPLICATES FROM  ITAB_PO COMPARING ALL FIELDS.
  SELECT EKPO~EBELN
         EBELP
         MENGE
         BRTWR
         KZWI5
         EKKO~KNUMV
         EKPO~MATNR
         EKPO~TXZ01
         INTO TABLE ITAB_RATE_MODVAT
         FROM EKPO INNER JOIN EKKO
             ON EKPO~EBELN = EKKO~EBELN
    FOR ALL ENTRIES IN ITAB_PO WHERE
                    EKPO~EBELN = ITAB_PO-EBELN AND
                    EBELP = ITAB_PO-EBELP.
  SELECT KNUMV KPOSN STUNR ZAEHK KSCHL KWERT
    INTO TABLE ITAB_KONV
    FROM KONV
    FOR ALL ENTRIES IN ITAB_RATE_MODVAT
        WHERE KNUMV = ITAB_RATE_MODVAT-KNUMV AND
  KSCHL IN ('YT02', 'YF07', 'YOTH', 'YPF1', 'YD01', 'YD02', 'YD03' ) .
  SORT ITAB_KONV BY KNUMV KSCHL.
  SORT ITAB BY BELNR.
  SORT ITAB_RATE_MODVAT BY EBELN EBELP.
  SORT ITAB_PO_OTHERS BY BELNR MATNR.
  LOOP AT ITAB_PO_ITEM.
    ITAB_DISPLAY-BELNR = ITAB_PO_ITEM-BELNR.
    READ TABLE ITAB_DOC WITH KEY BELNR = ITAB_PO_ITEM-BELNR BINARY
    SEARCH.
    IF SY-SUBRC EQ 0.
      ITAB_DISPLAY-BLART = ITAB_DOC-BLART.
    ENDIF.
    READ TABLE ITAB WITH KEY BELNR = ITAB_PO_ITEM-BELNR BINARY SEARCH.
    IF SY-SUBRC EQ 0.
      ITAB_DISPLAY-XBLNR = ITAB-XBLNR.
      ITAB_PO_ITEM-XBLNR = ITAB-XBLNR.
      ITAB_DISPLAY-NAME1_VENDOR = ITAB-NAME1_VENDOR.
      ITAB_DISPLAY-HKONT = ITAB-HKONT.
      ITAB_DISPLAY-MWSKZ = ITAB-MWSKZ.
      ITAB_DISPLAY-BUDAT = ITAB-BUDAT.
      ITAB_DISPLAY-DUE_DATE   = ITAB-DUE_DATE.
     ITAB_DISPLAY-PON    =  ITAB_PO_ITEM-EBELN.
    ENDIF.
    ITAB_DISPLAY-QTY  =    ITAB_PO_ITEM-MENGE.
    READ TABLE ITAB_RATE_MODVAT WITH KEY EBELN = ITAB_PO_ITEM-EBELN
                                         EBELP = ITAB_PO_ITEM-EBELP
                                         BINARY SEARCH.
    IF SY-SUBRC EQ 0.
      ITAB_DISPLAY-PON    =  ITAB_PO_ITEM-EBELN.
      ITAB_DISPLAY-MATNR = ITAB_RATE_MODVAT-MATNR.
      ITAB_DISPLAY-MAKTX  =  ITAB_RATE_MODVAT-TXZ01.
      ITAB_DISPLAY-RATE = ITAB_RATE_MODVAT-BRTWR /
      ITAB_RATE_MODVAT-MENGE.
      ITAB_DISPLAY-PROD-AMT = ITAB_DISPLAY-RATE * ITAB_PO_ITEM-MENGE.
      IF ITAB_PO_ITEM-EXCISE NE 0.
        ITAB_DISPLAY-EXCISE = ITAB_PO_ITEM-EXCISE.
    ELSE.
*ITAB_DISPLAY-EXCISE = ( ITAB_PO_ITEM-MENGE * ITAB_RATE_MODVAT-KZWI5 ) /
                                  ITAB_RATE_MODVAT-MENGE.
*commentedon 210102 to get excise directly from BSEG - IV
      ENDIF.
    ENDIF.
    READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
                                  KPOSN = ITAB_RATE_MODVAT-EBELP
                                  KSCHL = 'YT02' .
    IF SY-SUBRC EQ 0.
      ITAB_DISPLAY-SALES  = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT ) /
                             ITAB_RATE_MODVAT-MENGE.
      READ TABLE ITAB_FINAL WITH KEY BELNR = ITAB_PO_ITEM-BELNR
                                     BUZID = 'M'
                                    SGTXT(9) = 'SALES TAX'.
      IF SY-SUBRC EQ 0.
      IF ITAB_FINAL-SGTXT(9) EQ 'SALES TAX'
         OR ITAB_FINAL-SGTXT(9) EQ 'sales tax'.
        ITAB_DISPLAY-SALES = ITAB_DISPLAY-SALES + ITAB_FINAL-WRBTR.
      ENDIF.
      ENDIF.
    ENDIF.
    READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
                                  KPOSN = ITAB_RATE_MODVAT-EBELP
                                  KSCHL = 'YF07'.
    IF SY-SUBRC EQ 0.
      ITAB_DISPLAY-FREIGHT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT ) /
                              ITAB_RATE_MODVAT-MENGE.
    ENDIF.
    READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
                                  KPOSN = ITAB_RATE_MODVAT-EBELP
                                  KSCHL = 'YD01' .
    IF SY-SUBRC EQ 0.
     ITAB_DISPLAY-DISCOUNT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT ) /
                                          ITAB_RATE_MODVAT-MENGE.
    ELSE.
      READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
                                    KPOSN = ITAB_RATE_MODVAT-EBELP
                                  KSCHL = 'YD02' .
      IF SY-SUBRC EQ 0.
       ITAB_DISPLAY-DISCOUNT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT )
ITAB_RATE_MODVAT-MENGE.
      ELSE.
        READ TABLE ITAB_KONV WITH KEY KNUMV = ITAB_RATE_MODVAT-KNUMV
                                      KPOSN = ITAB_RATE_MODVAT-EBELP
                                      KSCHL = 'YD03' .
        IF SY-SUBRC EQ 0.
         ITAB_DISPLAY-DISCOUNT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT
ITAB_RATE_MODVAT-MENGE.
        ENDIF.
      ENDIF.
    ENDIF.
    LOOP AT ITAB_KONV WHERE KNUMV = ITAB_RATE_MODVAT-KNUMV AND KPOSN =
                             ITAB_RATE_MODVAT-EBELP AND
                   (  KSCHL = 'YPF1' OR KSCHL = 'YOTH' ) .
      ITAB_KONV-KWERT = ( ITAB_PO_ITEM-MENGE * ITAB_KONV-KWERT ) /
                               ITAB_RATE_MODVAT-MENGE.
      ITAB_DISPLAY-OTHERS = ITAB_DISPLAY-OTHERS + ITAB_KONV-KWERT.
    ENDLOOP.
    READ TABLE ITAB_PO_OTHERS WITH KEY BELNR = ITAB_PO_ITEM-BELNR.
                                      EBELN = ITAB_PO_ITEM-EBELN.
                                      BINARY SEARCH.
sateesh as on 10092003
    IF SY-SUBRC NE 0. CLEAR ITAB_PO_OTHERS. ENDIF.
end
    IF NOT ITAB_PO_OTHERS-EBELN IS INITIAL.
      READ TABLE ITAB_PO_OTHERS WITH KEY EBELN = ITAB_PO_ITEM-EBELN
                                         EB

Similar Messages

  • How to use drill down ability in ALV report.

    Hi All,
    I have a ALV report and now i want to add  drill down functionality in this ALV report.
    See the requirement below.
    The Document Number, aka Accounting Document Number (BELNR) of each row will take the user to the appropriate document to edit as follows:
    For Parked documents:-
    If VBKPF-AWTYP (Reference Procedure) = “RMRP”, then the drilldown functionality should be to MIR4 using the Object ID in VBKPF- AWKEY.    In this scenario the Object ID represents a Invoice Document Number, not an Accounting Document Number.  Not the Object ID is a combination of Invoice Document Number and Fiscal Year
    If VBKPF-AWTYP = Any other value, then the drilldown functionality should be to FBV2 using the Object ID in VBKPF-AWKEY. In this scenario the Object ID represents a true Accounting Document Number.  Note the Object ID is a combination of Company Code (VBKPF-BUKRS), Accounting Document Number (VBKPF-BELNR) and Fiscal Year (VBKPF-GJAHR)
    For Posted, not Cleared documents:-
    Drilldown ability should be to FB02.   The combination of Company Code (BSIK-BUKRS), Accounting Document Number (BSIK-BELNR) and Fiscal Year (BSIK-GJAHR) will be used to open/drilldown to the correct document in FB02.
    For Cleared documents:-
    Drilldown ability should be to FB03.   The combination of Company Code (BSIK-BUKRS), Accounting Document Number (BSIK-BELNR) and Fiscal Year (BSIK-GJAHR) will be used to open/drilldown to the correct document in FB03.
    Its very urgent, pls help on this.
    Thanks!
    Vipin

    Hi Vipin,
    Please look at the reference code.
    You need to use the FM 'REUSE_ALV_EVENTS_GET' and in the user command event u need to pass the name of the form that u need to write.
    Please find the ollowing code:
    REPORT ZSOURAVICON NO STANDARD PAGE HEADING.
    type-pools: slis.
    tables: vbap.
    data: begin of itab occurs 0,
          chk,
          lights,
          vbeln like vbap-vbeln,
          posnr like vbap-posnr,
          matnr like vbap-matnr,
          kwmeng like vbap-kwmeng,
          end of itab.
    data: P_LIGNAM TYPE SLIS_FIELDNAME VALUE  'LIGHTS'.
    data: v_repid like sy-repid.
    data: t_fld type slis_t_fieldcat_alv,
          ws_fld like t_fld with header line,
          t_sort type slis_t_sortinfo_alv,
          ws_sort like t_sort with header line,
          ws_layout type slis_layout_alv,
          t_event type slis_t_event,
          ws_event like t_event with header line,
          c_topup TYPE slis_t_listheader,
          ws_topup like c_topup with header line.
    constants: c_top type slis_formname value 'TOP_OF_PAGE',
               c_pfs type slis_formname value 'PF_STATUS_SET',
               c_ucomm type slis_formname value 'USER_COMMAND'.
    initialization.
      v_repid = sy-repid.
    select vbeln posnr matnr kwmeng from vbap into corresponding fields of
                                             table itab.
      loop at itab.
        if itab-kwmeng lt 500.
          itab-lights = '2'.
        elseif itab-kwmeng = 500.
          itab-lights = '1'.
        else.
          itab-lights = '3'.
        endif.
        modify itab.
      endloop.
    HERE WE ARE POPULATING THE FIELD CATALOG
      ws_fld-col_pos = '3'.
      ws_fld-fieldname = 'VBELN'.
      ws_fld-KEY = 'X'.
      ws_fld-tabname = ITAB.
      ws_fld-reptext_ddic = 'SALES DOC'.
      append ws_fld to t_fld.
      clear ws_fld.
      ws_fld-col_pos = '4'.
      ws_fld-fieldname = 'POSNR'.
      ws_fld-tabname = 'ITAB'.
      ws_fld-reptext_ddic = 'SALES ITEM'.
      append ws_fld to t_fld.
      clear ws_fld.
      ws_fld-col_pos = '5'.
      ws_fld-fieldname = 'MATNR'.
      ws_fld-tabname = 'ITAB'.
      ws_fld-reptext_ddic = 'MATERIAL NO'.
      append ws_fld to t_fld.
      clear ws_fld.
      ws_fld-col_pos = '6'.
      ws_fld-fieldname = 'KWMENG'.
      ws_fld-tabname = 'ITAB'.
      ws_fld-reptext_ddic = 'UNIT'.
      ws_fld-do_sum = 'X'.
      append ws_fld to t_fld.
      clear ws_fld.
      ws_sort-spos = '1'.
      ws_sort-fieldname = 'MATNR'.
      ws_sort-tabname = 'ITAB'.
      ws_sort-subtot  = 'X'.
      append ws_sort to t_sort.
      clear ws_sort.
      ws_layout-zebra = 'X'.
    ws_layout-detail_popup = 'X'.
    ws_layout-f2code = '&ETA'.
      ws_layout-totals_text(60) = 'TOTAL'.
      ws_layout-subtotals_text(60) = 'SUB TOTAL'.
      ws_layout-box_fieldname = 'CHK'.
      ws_layout-lights_fieldname = P_LIGNAM.
      ws_layout-box_tabname = ITAB.
      ws_layout-edit = 'X'.
      clear ws_event.
      ws_event-name = c_top.
      ws_event-form = c_top.
      append ws_event to t_event.
      ws_event-name = c_pfs.
      ws_event-form = c_pfs.
      append ws_event to t_event.
      clear ws_event.
      ws_event-name = c_ucomm.
      ws_event-form = c_ucomm.
      append ws_event to t_event.
      clear ws_event.
      CLEAR ws_topup.
      ws_topup-typ  = 'H'.
      ws_topup-info = 'Purchase Order Report'.
      APPEND ws_topup TO c_topup.
      CLEAR ws_topup.
      ws_topup-typ  = 'H'.
      ws_topup-info = 'An ALV Report '.
      APPEND ws_topup TO c_topup.
      ws_topup-TYP = 'S'.
      ws_topup-KEY = 'CURRENT PROGRAM NAME:'.
      ws_topup-INFO = v_repid.
      APPEND ws_topup TO c_topup.
      CLEAR ws_topup.
      ws_topup-TYP = 'S'.
      ws_topup-KEY = 'DATE:'.
      write SY-DATUM to ws_topup-INFO.
      APPEND ws_topup to c_topup.
      CLEAR ws_topup.
      ws_topup-TYP = 'S'.
      ws_topup-KEY = 'TIME:'.
      write SY-UZEIT to ws_topup-INFO.
      APPEND ws_topup TO c_topup.
      CLEAR ws_topup.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
         I_CALLBACK_PROGRAM             = v_repid
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      I_STRUCTURE_NAME               =
         IS_LAYOUT                      = ws_layout
         IT_FIELDCAT                    = t_fld
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
         IT_SORT                        = t_sort
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
         IT_EVENTS                      = t_event
      IT_EVENT_EXIT                  =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
        TABLES
          T_OUTTAB                       = itab[]
    EXCEPTIONS
      PROGRAM_ERROR                  = 1
      OTHERS                         = 2
          FORM top_of_page                                              *
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary       = c_topup
          I_LOGO                   = 'LOGO'
      I_END_OF_LIST_GRID       =
    ENDFORM.
          FORM PF_STATUS_SET                                            *
    -->  RT_EXTAB                                                      *
    FORM PF_STATUS_SET using rt_extab type slis_t_extab.
      set pf-status 'STD'. "EXCLUDING RT_EXTAB.
    set pf-status 'STANDARD'.
    endform.
          FORM user_command                                             *
    form USER_COMMAND using r_ucomm like sy-ucomm
                            rs_selfield type slis_selfield.
      data: begin of itab_temp occurs 0,
            VBELN LIKE VBAP-VBELN,
            POSNR LIKE VBAP-POSNR,
            MATNR LIKE VBAP-MATNR,
            kwmeng like vbap-kwmeng,
            end of itab_temp.
      DATA: t_fld1  TYPE SLIS_T_FIELDCAT_ALV,
            ws_fld1  LIKE t_fld1  WITH HEADER LINE.
      case r_ucomm.
        when 'SHOW'.
          loop at itab where chk = 'X'.
            move-corresponding itab to itab_temp.
            append itab_temp.
            clear itab.
          endloop.
          ws_fld1-col_pos = '1'.
          ws_fld1-fieldname = 'VBELN'.
          ws_fld1-tabname = ITAB_TEMP.
          ws_fld1-reptext_ddic = 'SALES DOC'.
         ws_fld1-key = 'X'.
          append ws_fld1 to t_fld1.
          clear ws_fld1.
          ws_fld1-col_pos = '2'.
          ws_fld1-fieldname = 'POSNR'.
          ws_fld1-tabname = ITAB_TEMP.
          ws_fld1-reptext_ddic = 'SALES ITEM'.
         ws_fld1-key = ' '.
          append ws_fld1 to t_fld1.
          clear ws_fld1.
          ws_fld1-col_pos = '3'.
          ws_fld1-fieldname = 'MATNR'.
          ws_fld1-tabname = ITAB_TEMP.
          ws_fld1-reptext_ddic = 'MATERIAL NO'.
         ws_fld1-key = ' '.
          append ws_fld1 to t_fld1.
          clear ws_fld1.
          ws_fld1-col_pos = '4'.
          ws_fld1-fieldname = 'KWMENG'.
          ws_fld1-tabname = ITAB_TEMP.
          ws_fld1-reptext_ddic = 'UNIT'.
         ws_fld1-key = ' '.
          ws_fld1-do_sum = 'X'.
          append ws_fld1 to t_fld1.
          CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
            EXPORTING
             I_TITLE                       =  'my report'
            I_SELECTION                   = ' '
            I_ZEBRA                       = ' '
            I_SCREEN_START_COLUMN         = 0
            I_SCREEN_START_LINE           = 0
            I_SCREEN_END_COLUMN           = 0
            I_SCREEN_END_LINE             = 0
            I_CHECKBOX_FIELDNAME          =
            I_LINEMARK_FIELDNAME          =
            I_SCROLL_TO_SEL_LINE          = 'X'
              I_TABNAME                     = ITAB_TEMP
             I_STRUCTURE_NAME              = 'VBAP'
             IT_FIELDCAT                   = t_fld1
            IT_EXCLUDING                  =
             I_CALLBACK_PROGRAM            = v_repid
            I_CALLBACK_USER_COMMAND       =
             IS_PRIVATE                    = GS_PRIVATE
          IMPORTING
             ES_SELFIELD                   = RS_SELFIELD
             E_EXIT                        = G_EXIT
            TABLES
              T_OUTTAB                      = ITAB_TEMP[]
          EXCEPTIONS
            PROGRAM_ERROR                 = 1
            OTHERS                        = 2
          IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
      endcase.
    ENDFORM.
    Thanks and Regards,
    Saurabh

  • Can anyone tell me how to use GUI status in ALV report.

    Can anyone tell me how to use GUI status in ALV report. I want to use  buttons in ALV report.

    Juheb,
    see the link
    http://help.sap.com/saphelp_nw2004s/helpdata/en/5e/88d440e14f8431e10000000a1550b0/frameset.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf
    Adding a button on the ALV grid using OOPs
    check these sites.
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/webDynproABAP-ALVControllingStandard+Buttons&
    chk this.
    alv-pfstatus:
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_pfstatus.htm
    then how to capture that button click.
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_ucomm.htm
    REPORT ZTESTALV.
    TYPE-POOLS: SLIS.
    *- Fieldcatalog
    DATA: IT_FIELDCAT  TYPE LVC_T_FCAT,
          IT_FIELDCAT1  TYPE SLIS_T_FIELDCAT_ALV..
    *- For Events
    DATA:IT_EVENTS TYPE SLIS_T_EVENT.
    DATA:  X_FIELDCAT  TYPE LVC_S_FCAT,
            X_FIELDCAT1  TYPE SLIS_FIELDCAT_ALV.
    DATA:X_LAYOUT TYPE LVC_S_LAYO.
    "{ FOR DISABLE
    DATA: LS_EDIT TYPE LVC_S_STYL,
          LT_EDIT TYPE LVC_T_STYL.
    "} FOR DISABLE
    DATA: BEGIN OF IT_VBAP OCCURS 0,
          VBELN LIKE VBAP-VBELN,
          POSNR LIKE VBAP-POSNR,
          HANDLE_STYLE TYPE LVC_T_STYL, "FOR DISABLE
       <b>   BUTTON(10),</b>
         END OF IT_VBAP.
    DATA: LS_OUTTAB LIKE LINE OF IT_VBAP.
    SELECT VBELN
           POSNR
           UP TO 10 ROWS
          INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
          FROM VBAP.
    DATA:L_POS TYPE I VALUE 1.
    CLEAR: L_POS.
    L_POS = L_POS + 1.
    <b>X_FIELDCAT-SELTEXT = 'Button'.
    x_fieldcat-fieldname = 'BUTTON'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS    = L_POS.
    X_FIELDCAT-OUTPUTLEN = '10'.
    X_FIELDCAT-style = X_FIELDCAT-style bit-xor
                      cl_gui_alv_grid=>MC_STYLE_BUTTON bit-xor
                      cl_gui_alv_grid=>MC_STYLE_ENABLEd.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.</b>
    L_POS = L_POS + 1.
    X_FIELDCAT-SELTEXT = 'VBELN'.
    X_FIELDCAT-FIELDNAME = 'VBELN'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS    = L_POS.
    X_FIELDCAT-EDIT = 'X'.
    X_FIELDCAT-OUTPUTLEN = '10'.
    x_fieldcat-ref_field = 'VBELN'.
    x_fieldcat-ref_table = 'VBAK'.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    L_POS = L_POS + 1.
    X_FIELDCAT-SELTEXT = 'POSNR'.
    X_FIELDCAT-FIELDNAME = 'POSNR'.
    X_FIELDCAT-TABNAME = 'ITAB'.
    X_FIELDCAT-COL_POS    = L_POS.
    X_FIELDCAT-EDIT = 'X'.
    X_FIELDCAT-OUTPUTLEN = '5'.
    APPEND X_FIELDCAT TO IT_FIELDCAT.
    CLEAR X_FIELDCAT.
    L_POS = L_POS + 1.
    "{FOR DISABLE HERE 6ROW IS DISABLED
    SY-TABIX = 6.
    LS_EDIT-FIELDNAME = 'VBELN'.
    LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
    LS_EDIT-STYLE2 = SPACE.
    LS_EDIT-STYLE3 = SPACE.
    LS_EDIT-STYLE4 = SPACE.
    LS_EDIT-MAXLEN = 10.
    INSERT LS_EDIT INTO TABLE LT_EDIT.
    *LS_EDIT-FIELDNAME = 'POSNR'.
    *LS_EDIT-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
    *LS_EDIT-STYLE2 = SPACE.
    *LS_EDIT-STYLE3 = SPACE.
    *LS_EDIT-STYLE4 = SPACE.
    *LS_EDIT-MAXLEN = 6.
    *INSERT LS_EDIT INTO TABLE LT_EDIT.
    INSERT LINES OF LT_EDIT INTO TABLE LS_OUTTAB-HANDLE_STYLE.
    MODIFY IT_VBAP INDEX SY-TABIX FROM LS_OUTTAB  TRANSPORTING
                                      HANDLE_STYLE .
    X_LAYOUT-STYLEFNAME = 'HANDLE_STYLE'.
    "} UP TO HERE
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
      EXPORTING
        I_CALLBACK_PROGRAM = SY-REPID
        IS_LAYOUT_LVC      = X_LAYOUT
        IT_FIELDCAT_LVC    = IT_FIELDCAT
      TABLES
        T_OUTTAB           = IT_VBAP[]
      EXCEPTIONS
        PROGRAM_ERROR      = 1
        OTHERS             = 2.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Don't forget to reward if useful....

  • How to create field catalog using field-symbols in normal alv report?

    hi all,
    how to create field catalog using field-symbols in normal alv report? i.e, using function modules...reuse_alv_list_display/grid_display?
    regards,
    jack

    HI
    LIKE THIS
    TYPE-POOLS : slis.
    DATA : t_fieldcat TYPE slis_t_fieldcat_alv,
           st_fieldcat TYPE slis_fieldcat_alv.
    st_fieldcat-fieldname     = 'STATUS'.
      st_fieldcat-seltext_l     = 'STATUS INDICATOR'.
      st_fieldcat-outputlen     = 17.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'VBELN'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Sales Document No.'.
      st_fieldcat-outputlen     = 10.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUDAT'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Document Date'.
      st_fieldcat-outputlen     = 10.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'VBTYP'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Document Type'.
      st_fieldcat-outputlen     = 4.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUART'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Category'.
      st_fieldcat-outputlen     = 1.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'AUGRU'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Reason'.
      st_fieldcat-outputlen     = 3.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'NETWR'.
      st_fieldcat-do_sum        = 'X'.
      st_fieldcat-seltext_l     = 'Net Amount'.
      st_fieldcat-outputlen     = 15.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
      st_fieldcat-fieldname     = 'WAERK'.
      st_fieldcat-do_sum        = ' '.
      st_fieldcat-seltext_l     = 'Unit'.
      st_fieldcat-outputlen     = 5.
      APPEND st_fieldcat TO t_fieldcat.
      CLEAR st_fieldcat.
    *sortinfo
      st_sort-fieldname = 'AUART'.
      st_sort-up        = 'X'.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'VBTYP'.
      st_sort-up        = 'X'.
      st_sort-subtot    = ' '.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'WAERK'.
      st_sort-up        = 'X'.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
      st_sort-fieldname = 'VBELN'.
      st_sort-up        = ' '.
      st_sort-subtot    = 'X'.
      APPEND st_sort TO t_sort.
      CLEAR st_sort.
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type     = 0
       IMPORTING
         et_events       = it_eventcat
       EXCEPTIONS
         list_type_wrong = 1
         OTHERS          = 2.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
      IF grid = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
         I_INTERFACE_CHECK                 = ' '
         I_BYPASSING_BUFFER                = ' '
         I_BUFFER_ACTIVE                   = ' '
          i_callback_program                = g_program
          I_CALLBACK_PF_STATUS_SET          = 'SET_PF_STATUS'
         I_CALLBACK_USER_COMMAND           = ' '
          I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
         I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
         I_CALLBACK_HTML_END_OF_LIST       = ' '
         I_STRUCTURE_NAME                  =
         I_BACKGROUND_ID                   = ' '
         I_GRID_TITLE                      =
         I_GRID_SETTINGS                   =
         IS_LAYOUT                         =
           it_fieldcat                       = t_fieldcat
         IT_EXCLUDING                      =
         IT_SPECIAL_GROUPS                 =
          it_sort                           = t_sort
         IT_FILTER                         =
         IS_SEL_HIDE                       =
         I_DEFAULT                         = 'X'
         I_SAVE                            = ' '
         IS_VARIANT                        =
         IT_EVENTS                         =
         IT_EVENT_EXIT                     =
         IS_PRINT                          =
         IS_REPREP_ID                      =
         I_SCREEN_START_COLUMN             = 0
         I_SCREEN_START_LINE               = 0
         I_SCREEN_END_COLUMN               = 0
         I_SCREEN_END_LINE                 = 0
         I_HTML_HEIGHT_TOP                 = 0
         I_HTML_HEIGHT_END                 = 0
         IT_ALV_GRAPHICS                   =
         IT_HYPERLINK                      =
         IT_ADD_FIELDCAT                   =
         IT_EXCEPT_QINFO                   =
         IR_SALV_FULLSCREEN_ADAPTER        =
       IMPORTING
         E_EXIT_CAUSED_BY_CALLER           =
         ES_EXIT_CAUSED_BY_USER            =
          TABLES
            t_outtab                          = it_final
          EXCEPTIONS
            program_error                     = 1
            OTHERS                            = 2
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    REWARD IF USEFULL

  • How to use traffic lights concept in alv in webdynpro abap

    Hai ,
              How to use traffic lights concept for alv in webdynpro abap. If possible give me some code.

    Hi Ravi,
    You can create ICON  to get traffic light.
    Go through this step by step.. in this example
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/1190424a-0801-0010-84b5-ef03fd2d33d9?quicklink=index&overridelayout=true
    Please go through this...
    Re: Display ICON in the ALV table column
    Re: Image in ALV
    cheers,
    Kris.

  • How we can use call transaction xd03 in alv report

    hey guys i want now that how we can use call transaction xd03 in alv report by using various tables in report or coding.
    can you tell me about that by the way of coding so that it can be easy for me to understand and help ful to make report by using alv report with many tables. so please send me .
    Moderator message: it seems to be XD03 day today, please search for available information/documentation/previous discussions.
    Edited by: Thomas Zloch on Nov 25, 2011 1:24 PM

    Where?
    Max

  • How to create user defined button in alv report

    how to create user defined button in alv report
    thnks in advance.

    Hi,
    U can define it the the PF-STATUS ( Menu for ALV ).
    For that u have to define it in the EVENTCAT.
    form z_eventcat  using    p_i_eventcat type slis_t_event.
      data: i_event type slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
        exporting
          i_list_type     = 0
        importing
          et_events       = p_i_eventcat
        exceptions
          list_type_wrong = 1
          others          = 2.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
      clear i_event.
      read table p_i_eventcat with key name = slis_ev_top_of_page into
      i_event.
      if sy-subrc = 0.
        move 'TOP_OF_PAGE' to i_event-form.
        append i_event to p_i_eventcat.
      endif.
      read table p_i_eventcat with key name = slis_ev_pf_status_set into i_event.
      if sy-subrc = 0.
        move 'SET_PF_STATUS' to i_event-form.
        append i_event to p_i_eventcat.
      endif.
      clear i_event.
      read table p_i_eventcat into i_event with key name = slis_ev_user_command .
      if sy-subrc = 0.
        move 'USER_COMMAND' to i_event-form.
        append i_event to p_i_eventcat.
      endif.
    And in the DISPLAY
    call function 'REUSE_ALV_GRID_DISPLAY'
       exporting
         i_callback_program                = v_progname
         i_callback_pf_status_set          = 'SET_PF_STATUS'
         i_callback_user_command           = 'USER_COMMAND'
         i_callback_top_of_page            = 'TOP_OF_PAGE'
         i_grid_title                      = v_gridtitle
         i_save                            = 'A'
         is_layout                         = i_layout
         it_fieldcat                       = i_fieldcat[]
         it_sort                           = i_sortinfo
         it_events                         = i_eventcat
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        tables
          t_outtab                          = it_final
       exceptions
         program_error                     = 1
         others                            = 2
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    *MENU SETTINGS.
    form set_pf_status using rt_extab type slis_t_extab.
      set pf-status 'ALV_MENU'.
    endform.                    "SET_PF_STATUS
    endform.                    " Z_EVENTCAT
    Now double click on ALV MENU nad u can create a button in the application bar.
    Regards,
    Pritha.

  • How to get  the actual data in ALV report

    I am doing some upgradation work   in that i am using Submit  & And return and  also i am using some function modules like LIST FROM MEMORY , LIST TO TXT wnd WRITE LIST , it gives output in normal list format , But i need to print in ALV report .
    With the use of set table for 1st display i got the  ALV report   but not with actual data, (some junk value is showing) , So can any 1 suggest me how to get  the  actual data in ALV report, With the use of  Any Function Module or with Coding,
    with regards,

    Hi Saravana
    I am sure you must be getting the values in tables of table parameters from every FM.
    consolidate the values from tables of all FMs in one table and built ALV for that table only.
    I hope this way you can show the actual data in ALV.
    thanks
    Lalit

  • How to add the double headings in Alv Report.

    Hi All,
    Plz suggest me how to add the double headings in ALv Report.
    Ram

    Hi,
    Try out this program....
    REPORT  ypm_historycard_rep.
    TYPE-POOLS : slis.
    DATA : it_cbm TYPE STANDARD TABLE OF mara.
    DATA : it_layout TYPE STANDARD TABLE OF slis_layout_alv WITH HEADER LINE,
           wa_fcat TYPE slis_fieldcat_alv,
           it_fcat TYPE slis_t_fieldcat_alv.
    START-OF-SELECTION.
      SELECT  *
      FROM  mara
      INTO CORRESPONDING FIELDS OF TABLE  it_cbm
      where matnr = 'D80K7'.
    END-OF-SELECTION.
      it_layout-zebra = 'X'.
      it_layout-colwidth_optimize = 'X'.
      it_layout-f2code = '&ETA'.
      APPEND it_layout.
      DEFINE macro4fcat.
        wa_fcat-col_pos = &1.
        wa_fcat-fieldname = &2.
        wa_fcat-tabname = &3.
        wa_fcat-seltext_l = &4.
        append wa_fcat to it_fcat.
        clear wa_fcat.
      END-OF-DEFINITION.
      macro4fcat    '1'  'MATNR'         'IT_CBM'   'MATERIAL NO'    .
      DESCRIBE TABLE it_cbm.
      IF sy-ucomm = '&F03'.
        MESSAGE 'hi hello good morning "press enter button" this is quiz' TYPE 'S'.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
      i_callback_program                = sy-repid
    i_callback_html_top_of_page       = 'HTML_TOP_OF_PAGE'
      is_layout                         = it_layout
      it_fieldcat                       = it_fcat
       i_save                            = 'A'
      TABLES
      t_outtab                          = it_cbm
      EXCEPTIONS
      program_error                     = 1
      OTHERS                            = 2
      IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    *&      Form  html_top_of_page
    *       text
    *      -->TOP        text
    FORM html_top_of_page USING top TYPE REF TO cl_dd_document.
      DATA: l_text(255) TYPE c.
      DATA: text1(255)  TYPE c.
      DATA: t_header TYPE REF TO cl_dd_table_element ,
            wa_header TYPE REF TO cl_dd_table_area.
      CALL METHOD top->add_gap
        EXPORTING
          width = 10.
      CALL METHOD top->add_text
      EXPORTING
        text          = 'hello'
        sap_style     = 'HEADING'
    CALL METHOD top->add_gap
        EXPORTING
          width = 20.
      CALL METHOD top->add_text
      EXPORTING
        text          = 'HOW ARE YOU'
        sap_style     = 'HEADING'.
        CALL METHOD TOP->new_line
    *      EXPORTING
    *        repeat =
        CALL METHOD top->add_gap
        EXPORTING
          width = 50.
      CALL METHOD top->add_text
      EXPORTING
        text          = '____________________________________________________________'
        sap_style     = 'HEADING'.
        CALL METHOD TOP->new_line
    *      EXPORTING
    *        repeat =
        CALL METHOD top->add_gap
        EXPORTING
          width = 90.
      CALL METHOD top->add_text
      EXPORTING
        text          = 'YOU CAN TRY LIKE THIS'
        sap_style     = 'HEADING'.
    ENDFORM.                    "html_top_of_page
    Regards
    Debarshi

  • How to get the total pages in ALV report?

    Hi guys,
    Since I used page breaks can somebody please help me on how to get the total pages in ALV report?sincerely please...thanks guys.

    automatic display total page.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907
    r

  • How to create a radio button in ALV Reports

    Hi all,
    Best wishes to all..
    Kindly reply me to this question... that is "How to create a radio button in ALV Report"
    Thanks and Regards
    Anjali

    HI
    here is an example :
    PROGRAM ZUS_SDN_BCALV_GRID_DEMO_2.
    Based on: BCALV_GRID_DEMO.
    TYPE-POOLS: icon.
    TYPES: BEGIN OF ty_s_sflight.
    INCLUDE TYPE sflight.
    TYPES: button1    TYPE lvc_emphsz.
    TYPES: button2    TYPE lvc_emphsz.
    TYPES: button3    TYPE lvc_emphsz.
    TYPES: button4    TYPE lvc_emphsz.
    TYPES: END OF ty_s_sflight.
    DATA:
      gt_sflight    TYPE STANDARD TABLE OF ty_s_sflight,
      gt_fcat       TYPE lvc_t_fcat.
    DATA: ok_code LIKE sy-ucomm,
         gt_sflight TYPE TABLE OF sflight,
          g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',
          grid1  TYPE REF TO cl_gui_alv_grid,
          g_custom_container TYPE REF TO cl_gui_custom_container.
          CLASS lcl_eventhandler DEFINITION
    CLASS lcl_eventhandler DEFINITION.
      PUBLIC SECTION.
        CLASS-DATA:
          md_cnt    TYPE i.
        CLASS-METHODS:
          handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
            IMPORTING
              e_row_id
              e_column_id
              es_row_no
              sender.
    ENDCLASS.                    "lcl_eventhandler DEFINITION
          CLASS lcl_eventhandler IMPLEMENTATION
    CLASS lcl_eventhandler IMPLEMENTATION.
      METHOD handle_hotspot_click.
    define local data
        FIELD-SYMBOLS:
          <ls_entry>    TYPE ty_s_sflight,
          <ld_fld>      TYPE ANY.
        READ TABLE gt_sflight ASSIGNING <ls_entry> INDEX es_row_no-row_id.
        CHECK ( <ls_entry> IS ASSIGNED ).
      Set all radio buttons "unselected"
        <ls_entry>-button1 =  icon_wd_radio_button_empty.
        <ls_entry>-button2 =  icon_wd_radio_button_empty.
        <ls_entry>-button3 =  icon_wd_radio_button_empty.
        <ls_entry>-button4 =  icon_wd_radio_button_empty.
        ASSIGN COMPONENT e_column_id-fieldname OF STRUCTURE <ls_entry>
                                                  TO <ld_fld>.
        IF ( <ld_fld> IS ASSIGNED ).
        Set selected radio button "selected".
          <ld_fld> = icon_wd_radio_button.
        ENDIF.
      Force PAI followed by refresh of table display in PBO
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = 'DUMMY'
         IMPORTING
           RC       =
      ENDMETHOD.                    "handle_hotspot_click
    ENDCLASS.                    "lcl_eventhandler IMPLEMENTATION
    START-OF-SELECTION.
          MAIN                                                          *
      PERFORM select_data.
      CALL SCREEN 100.
          MODULE PBO OUTPUT                                             *
    MODULE pbo OUTPUT.
      SET PF-STATUS 'MAIN100'.
      IF g_custom_container IS INITIAL.
        CREATE OBJECT g_custom_container
               EXPORTING container_name = g_container.
        CREATE OBJECT grid1
               EXPORTING i_parent = g_custom_container.
        PERFORM build_fieldcatalog.
        CALL METHOD grid1->set_table_for_first_display
         EXPORTING
           i_structure_name = 'SFLIGHT'
          CHANGING
            it_fieldcatalog  = gt_fcat
            it_outtab        = gt_sflight.
      Set event handler for event TOOLBAR
        SET HANDLER:
          lcl_eventhandler=>handle_hotspot_click FOR grid1.
      else.
        CALL METHOD grid1->refresh_table_display
         EXPORTING
           IS_STABLE      =
           I_SOFT_REFRESH =
          EXCEPTIONS
            FINISHED       = 1
            others         = 2.
        IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDIF.
    ENDMODULE.                    "PBO OUTPUT
          MODULE PAI INPUT                                              *
    MODULE pai INPUT.
      to react on oi_custom_events:
      CALL METHOD cl_gui_cfw=>dispatch.
      CASE ok_code.
        WHEN 'EXIT'.
          PERFORM exit_program.
        WHEN OTHERS.
        do nothing
      ENDCASE.
      CLEAR ok_code.
    ENDMODULE.                    "PAI INPUT
          FORM EXIT_PROGRAM                                             *
    FORM exit_program.
    CALL METHOD G_CUSTOM_CONTAINER->FREE.
    CALL METHOD CL_GUI_CFW=>FLUSH.
      LEAVE PROGRAM.
    ENDFORM.                    "EXIT_PROGRAM
    *&      Form  BUILD_FIELDCATALOG
          text
    -->  p1        text
    <--  p2        text
    FORM build_fieldcatalog .
    define local data
      DATA:
        ls_fcat        TYPE lvc_s_fcat,
        ls_hype        TYPE lvc_s_hype.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
        I_BUFFER_ACTIVE              =
          i_structure_name             = 'LVC_S_FCAT'
        I_CLIENT_NEVER_DISPLAY       = 'X'
        I_BYPASSING_BUFFER           =
        I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      DELETE gt_fcat WHERE ( fieldname <> 'EMPHASIZE' ).
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
        I_BUFFER_ACTIVE              =
          i_structure_name             = 'SFLIGHT'
        I_CLIENT_NEVER_DISPLAY       = 'X'
        I_BYPASSING_BUFFER           =
        I_INTERNAL_TABNAME           =
        CHANGING
          ct_fieldcat                  = gt_fcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_error                = 2
          OTHERS                       = 3.
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      READ TABLE gt_fcat INTO ls_fcat
           WITH KEY fieldname = 'EMPHASIZE'.
      IF ( syst-subrc = 0 ).
        DELETE gt_fcat INDEX syst-tabix.
      ENDIF.
      ls_fcat-fieldname = 'BUTTON4'.
      ls_fcat-icon    = 'X'.
      ls_fcat-hotspot = 'X'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON3'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON2'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      ls_fcat-fieldname = 'BUTTON1'.
      INSERT ls_fcat INTO gt_fcat INDEX 4.
      LOOP AT gt_fcat INTO ls_fcat.
        ls_fcat-col_pos = syst-tabix.
        MODIFY gt_fcat FROM ls_fcat INDEX syst-tabix.
      ENDLOOP.
    ENDFORM.                    " BUILD_FIELDCATALOG
    *&      Form  SELECT_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM select_data .
    define local data
      DATA:
        ls_sflight    TYPE ty_s_sflight.
      SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_sflight.
      ls_sflight-button1 = icon_wd_radio_button.
      ls_sflight-button2 = icon_wd_radio_button_empty.
      ls_sflight-button3 = icon_wd_radio_button_empty.
      ls_sflight-button4 = icon_wd_radio_button_empty.
      MODIFY gt_sflight FROM ls_sflight
          TRANSPORTING button1 button2 button3 button4
        WHERE ( carrid IS NOT INITIAL ).
    ENDFORM.                    " SELECT_DATA
    Regards,
    Prasanth
    Reward all helpful answers

  • How to preselect all rows before displaying ALV report

    I would like to select all rows before sending ALV Grid Display. User then can unselect couple of rows for further processing. How do I do that ?. Im using Method grid1->SET_TABLE_FOR_FIRST_DISPLAY for ALV Report Display. Any help appreciated.

    Ok,
    I've started the editor and check my code. I made few small mistakes (like with this exporting/importing), here's the sample - correctly working - code:
    DATA: it_selected TYPE lvc_t_row,
          wa_selected TYPE lvc_s_row,
          wa_sflight TYPE sflight,
          ltp_layout TYPE lvc_s_layo.
         SELECT *
           FROM sflight
           INTO TABLE gi_sflight.
    ltp_layout-stylefname = 'CELLTAB'.
    ltp_layout-sel_mode = 'A'.
    LOOP AT gi_sflight INTO wa_sflight.
          wa_selected-index = sy-tabix.
          APPEND wa_selected TO it_selected.
    ENDLOOP.
    *   * Load data into the grid and display them
         CALL METHOD go_grid->set_table_for_first_display
           EXPORTING i_structure_name = 'SFLIGHT'
                     is_layout            = ltp_layout
                     i_save = 'A'
           CHANGING  it_outtab        = gi_sflight.
    CALL METHOD go_grid->set_selected_rows
          EXPORTING
            it_index_rows = it_selected.
    This time it is 100% correct.
    Edited by: Marcin Cudo on Apr 11, 2010 2:13 AM

  • How to declare top of page in alv report

    hi guru
    how to declare top of page in alv report
    thanks
    subhasis

    Hi,
    check this simple program.
    REPORT ZBHALV_LIST.
    TABLES:MARA.
    SELECT-OPTIONS: MATNR FOR MARA-MATNR.
    DATA:BEGIN OF ITAB OCCURS 0,
    MATNR LIKE MARA-MATNR,
    ERSDA LIKE MARA-ERSDA,
    MTART LIKE MARA-MTART,
    MBRSH LIKE MARA-MBRSH,
    END OF ITAB.
    SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR
    IN MATNR.
    TYPE-POOLS SLIS.
    DATA:FCAT TYPE slis_t_fieldcat_alv.
    DATA:LAYOUT TYPE slis_layout_alv.
    DATA:EVE TYPE slis_t_event WITH HEADER LINE.
    DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.
    DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    SORT-UP = 'X'.
    SORT-SPOS = 1.
    SORT-FIELDNAME = 'ERSDA'.
    SORT-tabname = 'MARA'.
    APPEND SORT.
    SORT-SPOS = 2.
    SORT-FIELDNAME = 'MTART'.
    SORT-tabname = 'MARA'.
    APPEND SORT.
    EVE-NAME = 'TOP_OF_PAGE'.
    EVE-FORM = 'TOPOFPAGE'.
    APPEND EVE.
    EVE-NAME = 'TOP_OF_LIST'.
    EVE-FORM = 'TOPOFLIST'.
    APPEND EVE.
    EVE-NAME = 'END_OF_LIST'.
    EVE-FORM = 'ENDOFLIST'.
    APPEND EVE.
    LAYOUT-ZEBRA = 'X'.
    LAYOUT-no_hline = 'X'.
    LAYOUT-NO_VLINE = 'X'.
    LAYOUT-window_titlebar = 'MATERIAL DETAILS'.
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = SY-REPID
    I_INTERNAL_TABNAME = 'ITAB'
    I_STRUCTURE_NAME =
    I_CLIENT_NEVER_DISPLAY = 'X'
    I_INCLNAME = SY-REPID
    I_BYPASSING_BUFFER =
    I_BUFFER_ACTIVE =
    CHANGING
    CT_FIELDCAT = FCAT
    EXCEPTIONS
    INCONSISTENT_INTERFACE = 1
    PROGRAM_ERROR = 2
    OTHERS = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = SY-REPID
    IS_LAYOUT = LAYOUT
    IT_FIELDCAT = FCAT
    IT_SORT = SORT[]
    IT_EVENTS = EVE[]
    TABLES
    T_OUTTAB = ITAB .
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    FORM TOPOFPAGE.
    REFRESH HEAD.
    HEAD-TYP = 'H'.
    HEAD-INFO = 'MATERIALS'.
    APPEND HEAD.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = HEAD[]
    I_LOGO =
    I_END_OF_LIST_GRID =
    ENDFORM.
    FORM TOPOFLIST.
    REFRESH HEAD.
    HEAD-TYP = 'H'.
    HEAD-INFO = 'MATERIALS-LISTTOP'.
    APPEND HEAD.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = HEAD[]
    I_LOGO =
    I_END_OF_LIST_GRID =
    ENDFORM.
    FORM ENDOFLIST.
    REFRESH HEAD.
    HEAD-TYP = 'H'.
    HEAD-INFO = 'MATERIALS-LISTEND'.
    APPEND HEAD.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    IT_LIST_COMMENTARY = HEAD[]
    I_LOGO =
    I_END_OF_LIST_GRID =
    ENDFORM.
    Regards,
    Priyanka.

  • How to use the HTML tags in the reports.

    hi.
    can any one tell me how to use the HTML tags in the reports.
    i m using the forms 10 g rel 2 and reports 10 g rel 2 and application server 10g rel 2.

    Set the Contains HTML Tags property of an object to Yes, then the tags in the object's text (if any) will be used to format the object.

  • How to use a connection ODBC in  crystal reports viewer?

    Hi Guys!
    I need to know if for update a report in crystal reports viewer, is necessary, have a connection SAP Business Objects Business Intelligence. How to use a connection ODBC in  crystal reports viewer?

    Hi Guys!
    I need to know if for update a report in crystal reports viewer, is necessary, have a connection SAP Business Objects Business Intelligence. How to use a connection ODBC in  crystal reports viewer?

Maybe you are looking for