Reports6i:hiding frame outlines in report output

i'am a newbie .
stuck up in creating the reports.
after i compile, in the report output ,i;am still able to see the frame outlines and repeating frame outlines,text oulines.data is fetched correctly.
pls suggest me wht to do, to avoid this
thx
pls help me

Go to Report Layout. Select the frame . There will be three buttons with color palettes on the left (Fill color, line color and text color). Click on the Line color (second one) and Press No Line Button. Now the frame lines will not appear on the output
Thanks
V Viswanathan

Similar Messages

  • Product for presenting ABAP report output in Dashboard Presentation

    <u>Background</u>
    Monash University environment is SAP ERP  ECC6 - no BW. The University has undertaken considerable analysis of spend as part of developing a strategic approach to procurement.  The data used to undertake this analysis was extracted from SAP MM and FI using a developed ABAP report which collates, categorizes and consolidates all spend information from MM (for our Purchase Order based commitment and expenditure) and FI (for direct invoices and  Corporate Credit Card expenditure).  This information  is then currently exported to MS-Excel to produce a report containing graphs, pie charts etc.
    <u>Requirement</u>
    To present output from our Spend Analysis Report  in a more readable dashboard type presentation. This facility should allow easy manipulation (slice and dice) and drill down of the data..  Our requirement is to have something operating within a very short time-frame, say within a month or two. Although you might suggest Web Dynpro Business Graphic or SEM /BW (as the optimal solution) we understand the  set up time for either of these solutions is prohibitive.  Visual Composer has been suggested as another option but we have no in-house expertise to determine if this is a viable solution.   
    Some colleagues visited a  conference a couple of weeks ago and saw a demonstration of a product call XenoCube  http://www.inlogik.com/downloads/XenoCube_Brochure.pdf
    which was proposed as a quick way to present SAP 'raw' report output in a more readable form.  Other solutions in this space that have been suggested include:-
    Zycus - Actionable Spend Analysis – Zycus.com
    Emptoris Spend Analysis  - emptoris.com
    ONIQUA Enterprise Analytics– oniqua.com.au
    Ariba Buyer – ariba.com
    SAS Spend Analysis – sas.com
    Etesius – SpendGuardian  etesius.com
    Can anyone provide advice as to their experience of SAP solution, integrated partner products or any of the about products to satisfy a similar requirement to that which I have outlined?  The main selection criteria will include a product which is:
    a) quick & easy to implement,
    b)  presentation and manipulation of ABAP extracted data
    c) is scalable and
    d)  is reasonably priced.
    Grateful for any advice regarding a solution .
    Thank-you

    Hi,
      This development writes to mapped network drive in Unix. The concept will be similar.
    [http://wiki.sdn.sap.com/wiki/display/SCM/APOtoMappedNetworkDrive]
    cheers
    Aveek

  • Options for ABAP report output in Dashboard type presentation

    Background
    Monash University environment is SAP ERP ECC6 - no BW. The University has undertaken considerable analysis of spend as part of developing a strategic approach to procurement. The data used to undertake this analysis was extracted from SAP MM and FI using a developed ABAP report which collates, categorizes and consolidates all spend information from MM (for our Purchase Order based commitment and expenditure) and FI (for direct invoices and Corporate Credit Card expenditure). This information is then currently exported to MS-Excel to produce a report containing graphs, pie charts etc.
    Requirement
    To present output from our Spend Analysis Report in a more readable dashboard type presentation. This facility should allow easy manipulation (slice and dice) and drill down of the data.. Our requirement is to have something operating within a very short time-frame, say within a month or two. Although you might suggest Web Dynpro Business Graphic or SEM /BW (as the optimal solution) we understand the set up time for either of these solutions is prohibitive. Visual Composer has been suggested as another option but we have no in-house expertise to determine if this is a viable solution.
    Some colleagues visited a conference a couple of weeks ago and saw a demonstration of a product call XenoCube http://www.inlogik.com/downloads/XenoCube_Brochure.pdf
    which was proposed as a quick way to present SAP 'raw' report output in a more readable form. Other solutions in this space that have been suggested include:-
    Zycus - Actionable Spend Analysis – Zycus.com
    Emptoris Spend Analysis - emptoris.com
    ONIQUA Enterprise Analytics– oniqua.com.au
    Ariba Buyer – ariba.com
    SAS Spend Analysis – sas.com
    Etesius – SpendGuardian etesius.com
    Can anyone provide advice as to their experience of SAP solution, integrated partner products or any of the about products to satisfy a similar requirement to that which I have outlined? The main selection criteria will include a product which is:
    a) quick & easy to implement,
    b) presentation and manipulation of ABAP extracted data
    c) is scalable and
    d) is reasonably priced.
    Grateful for any advice regarding a solution .
    Thank-you

    Hi,
      This development writes to mapped network drive in Unix. The concept will be similar.
    [http://wiki.sdn.sap.com/wiki/display/SCM/APOtoMappedNetworkDrive]
    cheers
    Aveek

  • ABAP Dump while Changing the Layout fields in Report output - RCOPCA02

    Hi,
    I Copied the Standard Program RCOPCA02 to ZRCOPCA02. I added two new fields(AUART, AUGRU) in the report output. It is executing correctly with default layout, While Changing the layout for displaying new fields it is dumping.
    I am not understanding, What should i do...
    Here is the Code.
    report ZRCOPCA02 no standard page heading message-id km
                    line-count (2) line-size 81.
    type-pools: slis, ecarc.
    DDIC-Tabellen *******************************************************
    tables: glpca,                         "Einzelposten / Ist
            glu1,                          "Übergabestruktur FI-SL-Anzeige
            t000,
            tka01,
            sscrfields,
            vbak.
    Variablen und int. Tabellen *****************************************
    data: l_vbeln like vbak-vbeln,
    l_auart like vbak-auart,
    l_augru like vbak-augru.
    data: afield type slis_fieldcat_alv,
    sp_group type slis_sp_group_alv,
    t_listheader type slis_t_listheader with header line,
    t_layout type slis_layout_alv,
    t_fieldcat type slis_t_fieldcat_alv,
    t_spec_groups type slis_t_sp_group_alv,
    event type slis_alv_event,
    t_events type slis_t_event,
    g_variant like disvariant,
    gx_variant like disvariant,
    g_exit(1) type c,
    g_save(1) type c,
    g_repid like sy-repid,
    msgtyp like sy-msgty,
    lt_dynpread like dynpread occurs 1 with header line,
    ls_rpcak like rpcak, "note 0310592
    packsize type i value 1000,
    text1(60) type c,
    text2(60) type c,
    oldkokrs like glpca-kokrs,
    oldracct like glpca-racct.
    data: whr_size type i value 50,"Maximum of single values per MIC 46a
    "charact. in the where-clause of the select-statement
    lines type i, "number of lines of range table MIC 46a
    cnt_rldnr type i, "Zähler Anzahl selektierter Ledger
    cnt_kokrs type i, "Zähler Anzahl selektierter KoReKreise
    cnt_poper type i, "Zähler Anzahl selektierter Perioden
    cnt_ryear type i, "Zähler Anzahl selektierter GeschJahre
    cnt_rvers type i, "Zähler Anzahl selektierter Versionen
    cnt_bukrs type i, "Zähler Anzahl selektierter BuKreise
    empge like dkobr-empge,
    ksl_curr like tka01-pcacur,
    hsl_curr like t001-waers,
    a_rec like rstirec.
    data: begin of dim_data.
    include structure rgcdi. "data for dimensions
    data: end of dim_data.
    data: begin of tab_fields occurs 80,
    name like dntab-fieldname, "fields in table i_glpca
    end of tab_fields.
    data: begin of i_glpca occurs 0.
    include structure rpca2.
    data: racct_ktext like rpcak-ktext,
    psppp like prps-posid,
    v_auart like vbak-auart,
    v_augru like vbak-augru,
          end of i_glpca.
    data: rw_subrc   like sy-subrc,      "Flag: Report-Writer-Schnittstelle
          re_subrc   like sy-subrc,        "Flag: Recherche-Schnittstelle
          subrc      like sy-subrc.
    data: set_id    like sethier-setid,    "Set-ID        "RDI_SETS_4.0
          set_class like sethier-setclass, "Setklasse     "RDI_SETS_4.0
          set_sname like sethier-shortname."Setname (24)  "RDI_SETS_4.0
    data: authorised(1),
          s_message(1),
          auth_dbcount like sy-tabix,
        Hex-Konstanten für Minimum/Maximum-Werte
          begin of hex00,
            x1(12) type c,
            x2(12) type c,
          end of hex00,
          begin of hexff,
            x1(12) type c,
            x2(12) type c,
          end of hexff.
    ranges rclnt for glpca-rclnt.
    field-symbols:  type ecarc_glpca_curr.
    Selektionsoptionen *************************************************
    select-options:
      rldnr    for glpca-rldnr   default '8A' no-display,
      rassc    for glpca-rassc                no-display,
    rrcty    for glpca-rrcty   default 0,
      rrcty    for glpca-rrcty,
      rvers    for glpca-rvers   default '000',
      kokrs    for glpca-kokrs   memory id cac,
      bukrs    for glpca-rbukrs  memory id buk,
    poper    for glpca-poper   default sy-datlo+4(2),
    ryear    for glpca-ryear   default sy-datlo,
      poper    for glpca-poper,
      ryear    for glpca-ryear,
      prctr    for glpca-rprctr  matchcode object prct,
      pprctr   for glpca-sprctr  matchcode object prct,
    RACCT    FOR GLPCA-RACCT   MATCHCODE OBJECT KART,      "RD_P30K128304
      racct    for glpca-racct,            "RD_P30K128304
      drcrk    for glpca-drcrk,
      activ    for glpca-activ,
      rhoart   for glpca-rhoart,
      rfarea   for glpca-rfarea,
      stagr    for glpca-stagr,
      rtcur    for glpca-rtcur,
      runit    for glpca-runit,
      versa    for glpca-versa  no-display,
      eprctr   for glpca-eprctr no-display,
      afabe    for glpca-afabe  no-display,
      rmvct    for glpca-rmvct  no-display,
      hrkft    for glpca-hrkft  no-display,  "note 550972
      sbukrs   for glpca-sbukrs no-display,  "note 550972
      shoart   for glpca-shoart no-display,  "note 550972
      sfarea   for glpca-sfarea no-display,  "note 550972
      docct    for glpca-docct,
      docnr    for glpca-docnr,
      refdocct for glpca-refdocct,
      refdocnr for glpca-refdocnr,
      werks    for glpca-werks,
      repmatnr for glpca-rep_matnr matchcode object pca_shlp_rep_matnr,
      rscope   for glpca-rscope.
    parameters: no_rrint no-display default ' '." skip       "MICP40K066037
    " report-report-interface
    display variant                                       ">>MICP40K039857
    selection-screen begin of block 0 with frame title text-e01.
    parameters: p_vari like disvariant-variant.
    selection-screen comment 47(40) varname for field p_vari.
    selection-screen end of block 0.
    parameters log_grp(4) type c no-display default 'KE5Z'.
    "<<MICP40K039857
    ranges: v_racct  for glpca-racct,
            v_prctr  for glpca-rprctr,
            v_pprctr for glpca-sprctr.
    Tabelle mit Werten aus den Berichts-Set vom Report-Writer           *
    data  begin of val_tab occurs 50.
            include structure rgciv.
    data  end of val_tab.
           MICP30K166368
    feldkatalog und interface für bb-schnittstelle rw        MICP30K166368
           MICP30K166368
    "MICP30K166368
    data  begin of bbs_fieldtab occurs 20. "MICP30K166368
            include structure rstifields.  "MICP30K166368
    data  end of bbs_fieldtab.             "MICP30K166368
    archiv
    type-pools: rsds.
    types:      begin of ty_archive_objects,
                   object       like arch_obj-object,
                end   of ty_archive_objects,
                ty_t_archive_objects type ty_archive_objects occurs 2.
    constants:  lc_set          type  c           value 'X',
                lc_report       type  progname    value 'KE5Z',
                lc_reporttype   type  reporttype  value 'TR'.
    tables:     admi_files.
    select-options lr_files for admi_files-archiv_key no-display.
    parameter:  read_db       type c            default 'X' no-display,
                read_ar       type c                        no-display,
                arc_obj       like arch_obj-object          no-display,
                read_as       type c            default 'X' no-display.
    data  :     lt_arch_obj     type ty_t_archive_objects with header line,
                ls_selections   type rsds_frange,
                lt_selections   type rsds_frange_t,
                ls_selopt type rsdsselopt,
                lt_glpca_archiv type ecarc_t_glpca_curr.
    *********************************************************>>MICP40K039857
    INITIALIZATION
    initialization.
    Diverse Initialisierungen
      perform init_vars.
      g_repid = sy-repid.
    Set default values for record type
      rrcty-sign = 'I'.
      rrcty-option = 'EQ'.
      rrcty-low    = '0'.
      append rrcty.
      rrcty-low = '2'.
      append rrcty.
    Set default values for period and year (if kokrs or bukrs is known)
      get parameter id 'BUK' field bukrs-low.
      get parameter id 'CAC' field kokrs-low.
      if     kokrs-low is initial       "get contr. area from company code
         and not bukrs-low is initial.
        call function 'KOKRS_GET_FROM_BUKRS'
          exporting
            i_bukrs        = bukrs-low
          importing
            e_kokrs        = kokrs-low
          exceptions
            no_kokrs_found = 1
            others         = 2.
        if sy-subrc <> 0.
          clear kokrs-low.
        endif.
      endif.
      if not kokrs-low is initial.
        call function 'K_KOKRS_READ'       "get fiscal year variant
             exporting
                  kokrs           = kokrs-low
              importing
                  e_tka01         = tka01
            exceptions
                  not_found       = 1
                  not_found_gjahr = 2
                  others          = 3.
        if sy-subrc = 0.
          call function 'G_PERIOD_GET'
            exporting
              date                           = sy-datlo
              variant                        = tka01-lmona
            importing
              period                         = poper-low
              year                           = ryear-low
            exceptions
              ledger_not_assigned_to_company = 1
              period_not_defined             = 2
              variant_not_defined            = 3
              others                         = 4.
          if sy-subrc = 0.
            poper-sign = 'I'.
            poper-option = 'EQ'.
            append poper.
            ryear-sign = 'I'.
            ryear-option = 'EQ'.
            append ryear.
          endif.
        endif.
      endif.
    Settings for display variants
      g_save = 'A'.  "Schalter Varianten benutz./allg. speichern
      clear g_variant.
      g_variant-report = g_repid.
      g_variant-log_group = log_grp.
      g_variant-username = sy-uname.
    Get default variant
      gx_variant = g_variant.
      call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
        exporting
          i_save     = g_save
        changing
          cs_variant = gx_variant
        exceptions
          not_found  = 2.
      if sy-subrc = 0.
        p_vari = gx_variant-variant.
      endif.
    Set variant
      if p_vari is initial.
        p_vari = '1SAP'.
        move p_vari to gx_variant-variant.
        call function 'REUSE_ALV_VARIANT_EXISTENCE'
          exporting
            i_save     = g_save
          changing
            cs_variant = gx_variant
          exceptions
            not_found  = 1.
        if sy-subrc ne 0.
          clear p_vari.
          clear gx_variant-variant.
        endif.
      endif.
      varname = gx_variant-text.
      "<<MICP40K039857
    archiv
      call function 'KARL_DATA_INPUT_INIT'
        exporting
          i_report     = lc_report
          i_reporttype = lc_reporttype
        importing
          e_xusedb     = read_db
          e_xusear     = read_ar
          e_archobj    = arc_obj
          e_infosys    = read_as
        tables
          t_arch_sel   = lr_files.
      data: lt_excluding like sy-ucomm occurs 0 with header line.
      call function 'RS_SET_SELSCREEN_STATUS'
        exporting
          p_status  = 'SELSCREEN'
          p_program = 'RCOPCA02'
        tables
          p_exclude = lt_excluding.
    Initialisieren der Bericht/Bericht-Schnittstellen                   *
      data: ld_no_rrint type boole_d.      "note 490484 begin
      import rri = ld_no_rrint from memory id 'RCOPCA02_NO_RRI'.
      if ld_no_rrint = 'X'.
        free memory id 'RCOPCA02_NO_RRI'.
      else.                                "note 490484 end
        call function 'G_REPORT_INTERFACE_INIT'   "Report-Writer?
            exporting                      "MICP30K166368
                 table = 'GLPCT'           "MICP30K166368
             importing
                 subrc = rw_subrc          "MICP30K166368
            tables                         "MICP30K166368
                 it_fieldr = bbs_fieldtab. "MICP30K166368
        call function 'RSTI_APPL_STACK_POP'"oder Recherche?
             importing
                  i_rec                      = a_rec
             exceptions
                  appl_stack_not_initialized = 1.
        re_subrc = sy-subrc.
        if re_subrc = 0.
       check Receiver is this report
          if not ( ( a_rec-rtool = 'RT' and a_rec-ronam = 'RCOPCA02' )
                   or ( a_rec-rtool = 'TR' and a_rec-ronam = 'KE5Z' ) ) .
            re_subrc = 2.
          endif.
        endif.
      endif.
    AT SELCTION-SCREEN on value request**********************************
    *at selection-screen on value-request for racct-low.          "RD "4.6a
                                                                "RD "4.6a
    call function 'K_RACCT_VALUE_REQUEST'                       "RD "4.6a
         importing                                              "RD "4.6a
              e_racct      = racct-low.                         "RD "4.6a
                                                                "RD "4.6a
                                                                "RD "4.6a
    *at selection-screen on value-request for racct-high.         "RD "4.6a
                                                                "RD "4.6a
    call function 'K_RACCT_VALUE_REQUEST'                       "RD "4.6a
         importing                                              "RD "4.6a
              e_racct      = racct-high.                        "RD "4.6a
    at selection-screen on value-request for p_vari.         "MICP40K039857
      perform f4_for_variant.              "MICP40K039857
    at selection-screen on value-request for poper-low.         "RD "4.6a
    begin of insertion note 522715
      call function 'K_KOKRS_READ'
        exporting
          kokrs           = kokrs-low
        exceptions
          not_found       = 1
          not_found_gjahr = 2
          others          = 3.
      if sy-subrc = 0.
    end of insertion note 522715
        call function 'ECPCA_RPMAX_VALUE_REQUEST'               "RD "4.6a
             exporting                                          "RD "4.6a
                  i_kokrs     = kokrs-low                       "RD "4.6a
                  i_ryear     = ryear-low                       "RD "4.6a
             importing                                          "RD "4.6a
                  e_rpmax     = poper-low                       "RD "4.6a
    begin of insertion note 522715
             exceptions
                  table_empty = 1.
      endif.
    end of insertion note 522715
    at selection-screen on value-request for poper-high.        "RD "4.6a
    begin of insertion note 522715
      call function 'K_KOKRS_READ'
        exporting
          kokrs           = kokrs-low
        exceptions
          not_found       = 1
          not_found_gjahr = 2
          others          = 3.
      if sy-subrc = 0.
    end of insertion note 522715
        call function 'ECPCA_RPMAX_VALUE_REQUEST'               "RD "4.6a
             exporting                                          "RD "4.6a
                  i_kokrs     = kokrs-low                       "RD "4.6a
                  i_ryear     = ryear-low                       "RD "4.6a
             importing                                          "RD "4.6a
                  e_rpmax     = poper-high                      "RD "4.6a
    begin of insertion note 522715
             exceptions
                  table_empty = 1.
      endif.
    end of insertion note 522715
    AT SELCTION-SCREEN ***************************************************
    at selection-screen.
      perform pai_of_selection_screen.
    begin of insertion note 522715
      if not kokrs-low is initial.
        call function 'K_KOKRS_READ'
          exporting
            kokrs           = kokrs-low
          exceptions
            not_found       = 1
            not_found_gjahr = 2
            others          = 3.
        if sy-subrc <> 0.
          message e101(ki) with kokrs-low.
        endif.
      endif.
    end of insertion note 522715
    archiv
      if sy-ucomm = 'FC01' or sy-ucomm = 'UCDS'
        or sy-ucomm = 'ONLI' and read_ar = 'X'
        and read_as is initial and lr_files[] is initial.
        if lt_arch_obj[] is initial.
          lt_arch_obj-object = 'PCA_OBJECT'. append lt_arch_obj.
          lt_arch_obj-object = 'EC_PCA_ITM'. append lt_arch_obj.
        endif.
        call function 'KARL_DATA_INPUT_SELECT'
          exporting
            i_db_and_arc       = lc_set
            i_infosys_possible = lc_set
            i_object_fixed     = 'V'
            i_documentation    = 'KARL_DATA_INPUT_SEL_KE5YZ'
            i_report           = lc_report
            i_reporttype       = lc_reporttype
          tables
            t_objects          = lt_arch_obj
            t_arch_sel         = lr_files
          changing
            c_xusedb           = read_db
            c_xusear           = read_ar
            c_archobj          = arc_obj
            c_infosys          = read_as.
      endif.
    START-OF-SELECTION **************************************************
    start-of-selection.
      Default-Werte löschen, falls Aufruf über Recherche
      oder Report-Writer erfolgt ist
      if no_rrint is initial and ld_no_rrint is initial.        "note 490484
        if rw_subrc eq 0 or re_subrc eq 0.
          refresh: rldnr, rrcty, rvers,  kokrs, bukrs, poper,  ryear,
                   racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
                   versa, afabe, eprctr,
                   v_racct, v_prctr, v_pprctr.
          clear:   rldnr, rrcty, rvers,  kokrs, bukrs, poper,  ryear,
                   racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
                   versa, afabe, eprctr,
                   v_racct, v_prctr, v_pprctr.
        endif.
    Parameter einlesen über Report-Writer-Schnittstelle                 *
        if rw_subrc eq 0.
          perform rw_get_parameters.
    oder Parameter einlesen über Recherche-Schnittstelle                *
        elseif re_subrc eq 0.
          perform re_get_parameters.
        endif.
      endif.
      if read_db = 'X'.                     " read from DB (archiv)
    Bewegungsdaten einlesen und puffern...................................
        call function 'SAPGUI_PROGRESS_INDICATOR'
          exporting
            text = 'Einzelposten selektieren'(p10).
    Use dirty trick to mislead DB-optimizer
        call function 'DB_DO_NOT_USE_CLIENT_INDEX'
          exporting
            value    = sy-mandt
          tables
            mandttab = rclnt.
        select (tab_fields) from glpca
           client specified
           package size packsize
          APPENDING CORRESPONDING FIELDS OF TABLE i_glpcaO
            into corresponding fields of table i_glpca
           where rldnr     in rldnr
             and rrcty     in rrcty
             and rvers     in rvers
             and kokrs     in kokrs
             and rbukrs    in bukrs
             and ryear     in ryear
             and rassc     in rassc
             and hrkft     in hrkft   "note 550972
             and sbukrs    in sbukrs  "note 550972
             and shoart    in shoart  "note 550972
             and sfarea    in sfarea  "note 550972
             and racct     in racct
             and rprctr    in prctr
             and sprctr    in pprctr
             and poper     in poper
             and drcrk     in drcrk
             and activ     in activ
             and rhoart    in rhoart
             and rfarea    in rfarea
             and versa     in versa
             and eprctr    in eprctr
             and afabe     in afabe
             and rmvct     in rmvct
             and docct     in docct
             and docnr     in docnr
             and stagr     in stagr
             and rtcur     in rtcur
             and runit     in runit
             and refdocct  in refdocct
             and refdocnr  in refdocnr
             and werks     in werks
             and rep_matnr in repmatnr       "RDIP40K020663
             and rscope    in rscope         "RDIP40K020663
          and rclnt     in rclnt.       "dirty trick to mislead DB-optimizer
          if sy-dbcnt > 1.
            text1 = sy-dbcnt.
            condense text1.
            concatenate text1 text-m01 into text2 separated by space.
            call function 'SAPGUI_PROGRESS_INDICATOR'
              exporting
                text = text2.          " ... Datensätze gelesen
          endif.
        endselect.
    Entfernt nicht zugehörige Einträge....................................
        loop at i_glpca where ( not rprctr in v_prctr  )
                           or ( not sprctr in v_pprctr )
                           or ( not racct  in v_racct  ).
          delete i_glpca.
        endloop.
      endif.
    *archiv
      if read_ar = 'X' and not
        ( read_as is initial and lr_files[] is initial ).
        call function 'SAPGUI_PROGRESS_INDICATOR'
          exporting
            text = 'Lesen im Archiv'(p12).
        define fill_lt_selections.
          if not &2[] is initial.
            clear ls_selections.
            move &1 to ls_selections-fieldname.
            loop at &2.
              clear ls_selopt.
              move-corresponding &2 to ls_selopt.
              append ls_selopt to ls_selections-selopt_t.
            endloop.
            append ls_selections to lt_selections.
          endif.
        end-of-definition.
        fill_lt_selections 'RLDNR'  rldnr.
        fill_lt_selections 'RRCTY'  rrcty.
        fill_lt_selections 'RVERS'  rvers.
        fill_lt_selections 'KOKRS'  kokrs.
        fill_lt_selections 'RBUKRS' bukrs.
        fill_lt_selections 'POPER'  poper.
        fill_lt_selections 'RYEAR'  ryear.
        fill_lt_selections 'RPRCTR' prctr.
        fill_lt_selections 'SPRCTR' pprctr.
        fill_lt_selections 'RACCT'  racct.
        fill_lt_selections 'DRCRK'  drcrk.
        fill_lt_selections 'ACTIV'  activ.
        fill_lt_selections 'RHOART' rhoart.
        fill_lt_selections 'RFAREA' rfarea.    "note 401961
        fill_lt_selections 'STAGR'  stagr.
        fill_lt_selections 'RTCUR'  rtcur.
        fill_lt_selections 'RUNIT'  runit.
        fill_lt_selections 'VERSA'  versa.
        fill_lt_selections 'EPRCTR' eprctr.
        fill_lt_selections 'AFABE'  afabe.
        fill_lt_selections 'RMVCT'  rmvct.
        fill_lt_selections 'DOCCT'  docct.
        fill_lt_selections 'DOCNR'  docnr.
        fill_lt_selections 'REFDOCCT' refdocct.
        fill_lt_selections 'REFDOCNR' refdocnr.
        fill_lt_selections 'WERKS'  werks.
        fill_lt_selections 'REP_MATNR' repmatnr.
        fill_lt_selections 'RSCOPE' rscope.
        fill_lt_selections 'HRKFT'  hrkft.   "note 550972
        fill_lt_selections 'SBUKRS' sbukrs.  "note 550972
        fill_lt_selections 'SHOART' shoart.  "note 550972
        fill_lt_selections 'SFAREA' sfarea.  "note 550972
        call function 'EC_PCA_SELECT_FROM_ARCHIVE'
          exporting
            i_selections            = lt_selections[]
            i_files_sequential_read = lr_files[]
          importing
            e_glpca                 = lt_glpca_archiv[]
          exceptions
            no_infostruc_found      = 1.
        if sy-subrc = 1.
          message id sy-msgid type 'I' number sy-msgno
                  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        endif.
        clear i_glpca.
        loop at lt_glpca_archiv assigning  to i_glpca.
          append i_glpca.
        endloop.
      endif.
      if i_glpca[] is initial.         "Info,nichts gefunden
        message s000.
        exit.
      endif.
    get texts for accounts ...............................................
      sort i_glpca by kokrs racct.
      loop at i_glpca assigning -racct_ktext = ls_rpcak-ktext.
      endloop.
    Liste mit Einzelposten geeignet sortieren.............................
      call function 'SAPGUI_PROGRESS_INDICATOR'
        exporting
          text = 'Einzelposten sortieren'(p30).
    if show_ref is initial.
       sort i_glpca by rldnr ryear rbukrs rrcty rvers
                       docct docnr docln.
    else.
      sort i_glpca by rldnr kokrs ryear rbukrs rrcty rvers poper
                      refdocct refdocnr refdocln.
    endif.
    Berechtigungsprüfung und gemerkte Belege aufbereiten .................
      call function 'SAPGUI_PROGRESS_INDICATOR'
        exporting
          text = 'Berechtigungsprüfungen'(p40).
      clear: cnt_rldnr, cnt_kokrs, cnt_ryear, cnt_rvers, cnt_bukrs.
      loop at i_glpca assigning .
      Berechtigungscheck
        perform check_repo_authority changing authorised.
        if authorised is initial.
          delete i_glpca.
          s_message = 'X'.
        zählen der Sätze ohne Berechtigung
          auth_dbcount = auth_dbcount + 1.
        else. "Weitere Bearbeitung nur für berechtigte Belege...
        Zusätzlich merken der Anzahl der Ausprägungen
        bestimmter Dimensionen
          on change of -rbukrs
                ct       = '10'
              importing
                currency = hsl_curr.
          endon.
        externe Immobilienbezeichnung                     "ww/kb
        on change of i_glpca-imkey.
          if ( not -dabrz
                    I_length   = 20
                 importing
                      e_empge    = -konty.
            endif.
          CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
          endif.
        endon.
        on change of i_glpca-dabrz.
           call function 'REMD_IMKEY_TO_EMPGE'
                exporting
                     i_imkey    = i_glpca-imkey
                     i_dabrz    = i_glpca-dabrz
                    i_length   = 20
                importing
                     e_empge    = i_glpca-empge
                     e_konty    = i_glpca-konty.
          CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
         endon.
        Konvertierungsproblem mit PSP-Nummer bereinigen
          if not -psppp.
            endif.
          endif.
        Währungen in Hilfsfeldern speichern
          if -ksl_curr = ksl_curr.
          endif.
        modify i_glpca.
        endif.
      endloop.
    Nachricht, wenn nicht alle Einzelposten angezeigt werden.
      if not s_message is initial.
        message s407(km) with auth_dbcount.
      endif.
    EP ausgeben...........................................................
      call function 'SAPGUI_PROGRESS_INDICATOR'
        exporting
          text = 'Einzelposten ausgeben'(p50).
      t_layout-detail_initial_lines = 'X'.
      t_layout-detail_popup         = 'X'.
      t_layout-f2code               = 'PIC1'.                "MICP40K039857
      t_layout-get_selinfos         = 'X'.
      t_layout-group_change_edit    = 'X'.                   "note 576149
      perform fill_listheader.
      perform fieldcat_fill.
      perform spec_groups_fill.
      perform events_fill.                 "MICP40K039857
      ">>MICP40K039857
    call function 'K_KKB_LIST_DISPLAY'
          exporting
               i_callback_program       = 'RCOPCA02'
               i_callback_user_command  = 'USR_CMD'
               i_callback_top_of_page   = 'TOP_OF_PAGE'
              I_CALLBACK_END_OF_PAGE   =
              I_CALLBACK_END_OF_LIST   =
               i_callback_pf_status_set = 'SET_PF_STATUS'
              I_CALLBACK_LAYOUT_SAVE   =
              I_CALLBACK_FIELDCAT_SAVE =
               i_tabname                = 'I_GLPCA'
               is_layout                = t_layout
               it_fieldcat              = t_fieldcat
              I_FCTYPE                 = 'R'
              IT_EXCLUDING             =
               it_special_groups        = t_spec_groups
              IT_SORT                  =
              IS_SEL_HIDE              =
              I_SCREEN_START_COLUMN    = 0
              I_SCREEN_START_LINE      = 0
              I_SCREEN_END_COLUMN      = 0
              I_SCREEN_END_LINE        = 0
          tables
               t_outtab                 = i_glpca
          exceptions
               others                   = 1.
    loop at i_glpca.
    select single vbeln auart augru
    into (l_vbeln, l_auart, l_augru)
    from vbak where vbeln = i_glpca-aubel.
    if sy-subrc = 0.
    move l_auart to i_glpca-v_auart.
    move l_augru to i_glpca-v_augru.
    modify i_glpca.
    endif.
    endloop.
      call function 'REUSE_ALV_GRID_DISPLAY'
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
         exporting
            I_INTERFACE_CHECK        = ' '
               i_callback_program       = 'ZRCOPCA02'
               i_callback_pf_status_set = 'SET_PF_STATUS'
               i_callback_user_command  = 'USR_CMD'
               i_structure_name         = 'I_GLPCA'
               is_layout                = t_layout
               it_fieldcat              = t_fieldcat
            IT_EXCLUDING             =
               it_special_groups        = t_spec_groups
            IT_SORT                  =
            IT_FILTER                =
            IS_SEL_HIDE              =
               i_default                = 'X'
               i_save                   = g_save
               is_variant               = g_variant
               it_events                = t_events
            IT_EVENT_EXIT            =
            IS_PRINT                 =
            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                 = i_glpca
        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.
      "<<MICP40K039857
      clear i_glpca.
    *&      Form  CHECK_REPO_AUTHORITY
    Check only new auth-object K_PCA                                    *
    -->  p1        text
    <--  p2        text
    form check_repo_authority changing authorized like authorised.
    fill structure for userexit in K_PCA_RESP_AUTHORITY_CHECK
      data: auth like pca_i_auth.          "46a MIC check K_PCA and G_GLTP
      auth-bukrs = -rrcty.
      clear authorized.
    check PrCtr/account/activity
      call function 'K_PCA_RESP_AUTHORITY_CHECK'
        exporting
          i_kokrs             = -racct
          i_vorgn             = 'REPP'
          i_actvt             = '28'
          i_auth              = auth
          i_no_dialog_message = 'X'
        exceptions
          no_authority        = 1
          data_missing        = 2
          others              = 3.
      if sy-subrc = 0.                                          "ok
    check ledger/version/record type
        call function 'PCA_G_GLTP_AUTH_CHECK'
          exporting
            rldnr            = -rrcty
          exceptions
            no_authorisation = 1
            others           = 2.
        if sy-subrc = 0.                   "ok, User is authorized
          authorized = 'X'.
        endif.
      endif.
    endform.                               " CHECK_REPO_AUTHORITY
    *&      Form  INIT_VARS
          Initialisieren diverser Hilfsvariablen und -tabellen           *
    form init_vars.
      data begin of nametab occurs 80. "Tabelle mit Feldern aus der RPCA2
              include structure dntab.
      data end of nametab.
      select single * from t000
                      client specified
                      where mandt = sy-mandt.
      refresh nametab.
      call function 'NAMETAB_GET'
        exporting
          only    = 'T'
          tabname = 'RPCA2'
        tables
          nametab = nametab.
    Übernehmen der Feldnamen, die auch in der GLPCA
    vorkommen.
      loop at nametab where fieldname ne 'KSL_CURR'
                        and fieldname ne 'HSL_CURR'
                        and fieldname ne 'EMPGE'               "ww/kb
                        and fieldname ne 'KONTY'.              "ww/kb
        move nametab-fieldname to tab_fields-name.
        append tab_fields.
      endloop.
    fill Fields of receiver for BBS                          "MIC46C
      call function 'RSTI_REPORT_FIELDS_FIND'
        exporting
          e_repid   = 'RCOPCA02'
          e_type    = 'R'
        tables
          it_fields = bbs_fieldtab.
    correct fieldnames
      read table bbs_fieldtab with key rfield = 'PRCTR'.
      if sy-subrc = 0.
        bbs_fieldtab-rfield = 'RPRCTR'.
        modify bbs_fieldtab index sy-tabix.
      endif.
      read table bbs_fieldtab with key rfield = 'PPRCTR'.
      if sy-subrc = 0.
        bbs_fieldtab-rfield = 'SPRCTR'.
        modify bbs_fieldtab index sy-tabix.
      endif.
      read table bbs_fieldtab with key rfield = 'BUKRS'.
      if sy-subrc = 0.
        bbs_fieldtab-rfield = 'RBUKRS'.
        modify bbs_fieldtab index sy-tabix.
      endif.
    Unicode
      class cl_abap_char_utilities definition load.
      clear hex00 with cl_abap_char_utilities=>minchar.
      clear hexff with cl_abap_char_utilities=>maxchar.
    endform.                               " INIT_VARS
          FORM FILL_LISTHEADER                                          *
          List-Header in Abhängigkeit der selektierten Daten            *
    form fill_listheader.
      read table i_glpca index 1.
      if sy-subrc ne 0.
        exit.
      endif.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Ledger              '(h01).
      if cnt_rldnr <= 1.
        t_listheader-info = i_glpca-rldnr.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Kostenrechnungskreis'(h02).
      if  cnt_kokrs <= 1.
        t_listheader-info = i_glpca-kokrs.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Buchungskreis       '(h03).
      if cnt_bukrs <= 1.
        t_listheader-info = i_glpca-rbukrs.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Buchungsperiode     '(h04).
      if cnt_poper <= 1.
        t_listheader-info = i_glpca-poper.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
      if cnt_ryear <= 1.
        t_listheader-typ  = 'S'.
        t_listheader-key  = 'Geschäftsjahr       '(h05).
        t_listheader-info = i_glpca-ryear.
        append t_listheader.
      endif.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Version             '(h06).
      if cnt_rvers <= 1.
        t_listheader-info = i_glpca-rvers.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
    endform.                    "fill_listheader
    *&      Form  FIELDCAT_FILL
    *&      Aufbau des Feldkataloges für den K_KKB_LIST_DISPLAY,           *
    *&      bzw REUSE_ALV_LIST_DISPLAY,                                    *
    *&      weitere Infos enthält die FktBaustein-Doku                     *
    form fieldcat_fill.
      data: i type i value 0.
      refresh t_fieldcat.
    Ledger
    if cnt_rldnr > 1.
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RLDNR'.
      afield-no_sum      = 'X'.
      afield-no_out      = 'X'.
      afield-key         = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    endif.
    Satzart
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RRCTY'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    Version
    if cnt_rvers > 1.
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RVERS'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    endif.
    Periode
    if cnt_poper > 1.
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'POPER'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    endif.
    Geschäftsjahr
    if cnt_ryear > 1.
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RYEAR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    endif.
    Referenzbelegtyp
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'REFDOCCT'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '2'.
      afield-seltext_s   = 'Typ'(t01).
      afield-seltext_m   = 'Belegtyp'(t02).
      afield-seltext_l   = 'Ref.Belegtyp'(t03).
      afield-outputlen   = 3. "Platz für die Sterne der Zwischensummen
    if not show_ref is initial.
      afield-key = 'X'.
    else.
       afield-no_out = 'X'.
    endif.
      append afield to t_fieldcat.
    Referenzbelegnummer
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'REFDOCNR'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '2'.
      afield-seltext_s  = 'Refbeleg'(t04).
      afield-seltext_m  = 'Refbelegnr'(t05).
      afield-seltext_l  = 'Ref.Belegnummer'(t06).
    if not show_ref is initial.
      afield-key = 'X'.
    else.
       afield-no_out = 'X'.
    endif.
      append

    Hi Prabhu,
    You are right, problem is with Field Catalog...
    When I use  FM 'REUSE_ALV_GRID_DISPLAY'  it is dumping...
    When i tried with FM 'REUSE_ALV_LIST_DISPLAY'  it is working perfectly....
    how can i use FM 'REUSE_ALV_GRID_DISPLAY' without dumping????
    do i need to pass any thing in FM????
    Here is the dump:
    Runtime Errors         MESSAGE_TYPE_X                                
           Occurred on     12/21/2006 at 01:03:24                                                                               
    The current application triggered a termination with a short dump.   
                                                             What happened?                                                       
    The current application program detected a situation which really    
    should not occur. Therefore, a termination with a short dump was     
    triggered on purpose by the key word MESSAGE (type X).               
                                                         Error analysis                                                       
    Short text of error message:                                                                               
    Technical information about the message:                             
    Message classe...... "0K "                                           
    Number.............. 000 
    User, transaction...                                                                               
    Language key........ "E"                                                    
    Transaction......... "SE38 "                                                
    Program............. "SAPLSLVC "                                            
    Screen.............. "SAPLSLVC_FULLSCREEN 0500"                             
    Screen line......... 3                                                                               
    Information on where termination occurred                                                                               
    The termination occurred in the ABAP program "SAPLSLVC " in "LINE_OUT_NEW_2".
    The main program was "ZRCOPCA02 ".                                          
    The termination occurred in line 918 of the source code of the (Include)    
    program "LSLVCF01 "                                                        
    of the source code of program "LSLVCF01 " (when calling the editor 9180).   
                                                             Source code extract                                                                               
    008880         gs_roid-row_id = rs_row-index * -1.                          
    008890       endif.                                                         
    008900       gs_roid-sub_row_id = rs_row-rowtype+7(10).                     
    008910       gs_poid-row_id = gs_roid-row_id.                               
    008920       gs_poid-sub_row_id = gs_roid-sub_row_id.                       
    008930       gs_poid-rowtype    = rs_row-rowtype.                           
    008940       gs_poid-index      = rs_row-index.                             
    008950       insert gs_poid into table rt_poid.  
    008960     endif.                                                               
    008970     append gs_roid to rt_roid.                                           
    008980                                                                          
    008990     loop at rt_fieldcat assigning <ls_fieldcat> where tech ne 'X' and    
    009000                                                       no_out ne 'X'.     
    009010                                                                          
    009020       if gflg_invisible = 'X'.                                           
    009030         if <ls_fieldcat>-do_sum is initial.                              
    009040           clear gflg_invisible.                                          
    009050           continue.                                                      
    009060         else.                                                            
    009070           clear g_col_counter.                                           
    009080           clear gflg_invisible.                                          
    009090         endif.                                                           
    009100       endif.                                                             
    009110                                                                          
    009120       clear gs_lvc_data.                                                 
    009130       clear g_style.                                                     
    009140                                                                          
    009150       assign component                                                   
    009160              <ls_fieldcat>-fieldname of structure rt_data to <g_field>.  
    009170       if sy-subrc ne 0.                                                  
         >         message x000(0k).                                                
    009190       endif.                                                             
    009200                                                                          
    009210       g_col_counter = g_col_counter + 1.                                 
    009220                                                                          
    009230       gs_lvc_data-row_pos = r_row_counter.                               
    009240       gs_lvc_data-col_pos = g_col_counter.                               
    009250       gs_lvc_data-row_id  = gs_roid-row_id.                              
    009260       gs_lvc_data-sub_row_id = gs_roid-sub_row_id.                       
    009270                                                                          
    009280   *   Endtotal and average                                               
    009290       if rs_row-rowtype(1) ca 'T' and <ls_fieldcat>-do_sum = 'C'.        
    009300   *     save the actual grouplevel information                    
    009310         gs_grouplevels = rs_grouplevels.                          
    009320         clear g_lines.                                            
    009330                                                                   
    009340   *     get number of lines of the collect table                  
    009350         describe table rt_data lines g_lines.                     
    009360   *     if there is only one line or the field has no references so
    009370   *     that only the first line has to be considered                                                                               
    Thanks,
    fractal
    null

  • Decimal upto 3 places in ALV report output

    Hi Experts
    My requirement is that User wants to have 3 decimal places in report output.I have used type P decimal 3,also have used field catalog Decimals_o = '3' .In the report output Lets say Previously it was 123 now after the changes its coming 123.000 but its only virtual when i try to edit that it takes only upto 4 characters like 123.???I think because the datatype defined is NUMC and its limited to 4 characters only so it is not allowing to enter more than 4 characters??Please suggest me a way?sud I change   the NUMC to 6 characters as it is standard??sud I make changes in it??
    Thanks & Regards
    Shankar

    Hi
    i have tried that but still it takes 4 characters in output.pasting the code
    1)The declaration part
    DATA : gv_gjahr TYPE gjahr,
           gv_plant TYPE cciht_ial-iaplant.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-003.
    SELECT-OPTIONS: s_plant FOR gv_plant NO INTERVALS NO-EXTENSION OBLIGATORY,
                    s_gjahr FOR gv_gjahr NO INTERVALS NO-EXTENSION OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    CONSTANTS : c_x          TYPE c VALUE 'X',
                c_celltab(7) TYPE c VALUE 'CELLTAB',
               c_gjahr(5)   TYPE c VALUE 'GJAHR',
                c_april(5)   TYPE c VALUE 'APRIL',
                c_may(3)     TYPE c VALUE 'MAY',
                c_june(4)    TYPE c VALUE 'JUNE',
                c_july(4)    TYPE c VALUE 'JULY',
                c_augus(5)   TYPE c VALUE 'AUGUS',
                c_septe(5)   TYPE c VALUE 'SEPTE',
                c_octob(5)   TYPE c VALUE 'OCTOB',
                c_novem(5)   TYPE c VALUE 'NOVEM',
                c_decem(5)   TYPE c VALUE 'DECEM',
                c_janua(5)   TYPE c VALUE 'JANUA',
                c_febru(5)   TYPE c VALUE 'FEBRU',
                c_march(5)   TYPE c VALUE 'MARCH',
                c_rw(2)      TYPE c VALUE 'RW',
                c_ro(2)      TYPE c VALUE 'RO'.
    TYPES : BEGIN OF ty_envtran,
              envno TYPE numc3,
              envlx TYPE zehenvlx,
              plant TYPE ccihe_iaplant,
              gjahr TYPE gjahr,
              april  TYPE numc4,
              may   TYPE numc4,
              june  TYPE numc4,
              july  TYPE numc4,
              augus TYPE numc4,
              septe TYPE numc4,
              octob TYPE numc4,
              novem TYPE numc4,
              decem TYPE numc4,
              janua TYPE numc4,
              febru TYPE numc4,
              march TYPE numc4,
            END OF ty_envtran.
    DATA: gt_envtran TYPE TABLE OF ty_envtran,
          gs_envtran TYPE ty_envtran,
          gt_envmast TYPE TABLE OF zehs_envmast,
          gs_envmast TYPE zehs_envmast.
    DATA: save_ok     LIKE sy-ucomm,
          g_container TYPE scrfname VALUE 'ZEHS_ENVIRONMENTS_CC1',
          g_grid  TYPE REF TO cl_gui_alv_grid,
          g_custom_container TYPE REF TO cl_gui_custom_container,
          gt_fieldcat TYPE lvc_t_fcat,
          gs_layout   TYPE lvc_s_layo,
          g_success   TYPE c,
          gv_success  TYPE c,
          gt_envtran3 TYPE TABLE OF ty_envtran,
          gs_envtran3 TYPE ty_envtran,                          "#EC NEEDED
          gt_envtran2 TYPE TABLE OF zehs_envtran,
          gs_envtran2 TYPE zehs_envtran.
    DATA: BEGIN OF gt_outtab OCCURS 0.     "with header line
    DATA: envlx TYPE zehenvlx,
          gjahr TYPE gjahr,
          april TYPE numc4,
          may   TYPE numc4,
          june  TYPE numc4,
          july  TYPE numc4,
          augus TYPE numc4,
          septe TYPE numc4,
          octob TYPE numc4,
          novem TYPE numc4,
          decem TYPE numc4,
          janua TYPE numc4,
          febru TYPE numc4,
          march TYPE numc4,
          plant TYPE ccihe_iaplant,
          envno TYPE numc3.
    DATA: celltab TYPE lvc_t_styl.
    DATA: END OF gt_outtab.
    DATA: gs_outtab LIKE LINE OF gt_outtab.
    2)The Field catalog part
    LOOP AT pt_fieldcat INTO ls_fcat.
        CASE ls_fcat-fieldname.
          WHEN c_APRIL.
            ls_fcat-scrtext_l = 'April'(c01).
            ls_fcat-scrtext_m = 'Apr'(c13).
            ls_fcat-scrtext_s = text-c13.
          WHEN c_MAY.
            ls_fcat-scrtext_l = 'May'(c02).
            ls_fcat-scrtext_m = 'May'(c14).
            ls_fcat-scrtext_s = text-c14.
          WHEN c_JUNE.
            ls_fcat-scrtext_l = 'June'(c03).
            ls_fcat-scrtext_m = 'Jun'(c15).
            ls_fcat-scrtext_s = text-c15.
         WHEN c_JULY.
            ls_fcat-scrtext_l = 'July'(c04).
            ls_fcat-scrtext_m = 'Jul'(c16).
            ls_fcat-scrtext_s = text-c16.
          WHEN c_AUGUS.
            ls_fcat-scrtext_l = 'August'(c05).
            ls_fcat-scrtext_m = 'Aug'(c17).
            ls_fcat-scrtext_s = text-c17.
          WHEN c_SEPTE.
            ls_fcat-scrtext_l = 'September'(c06).
            ls_fcat-scrtext_m = 'Sep'(c18).
            ls_fcat-scrtext_s = text-c18.
          WHEN c_OCTOB.
            ls_fcat-scrtext_l = 'October'(c07).
            ls_fcat-scrtext_m = 'Oct'(c19).
            ls_fcat-scrtext_s = text-c19.
          WHEN c_NOVEM.
            ls_fcat-scrtext_l = 'November'(c08).
            ls_fcat-scrtext_m = 'Nov'(c20).
          WHEN c_DECEM.
            ls_fcat-scrtext_l = 'December'(c09).
            ls_fcat-scrtext_m = 'Dec'(c21).
          WHEN c_JANUA.
            ls_fcat-scrtext_l = 'January'(c10).
            ls_fcat-scrtext_m = 'Jan'(c22).
            ls_fcat-scrtext_s = text-c22.
          WHEN c_FEBRU.
            ls_fcat-scrtext_l = 'February'(c11).
            ls_fcat-scrtext_m = 'Feb'(c23).
            ls_fcat-scrtext_s = text-c23.
          WHEN c_MARCH.
            ls_fcat-scrtext_l = 'March'(c12).
            ls_fcat-scrtext_m = 'Mar'(c24).
            ls_fcat-scrtext_s = text-c24.
    Note: I have already tried giving DECIMALS_O,OUTPUTLEN,DATATYPE,FIELDCAT-REF_FIELD ,FIELDCAT-REF_TABLE BUT but still it takes upto 4 characters in output.

  • Adding/Enabling Totals & Subtotals Button in ALV Report Output

    Hi Guys,
    I would like to know , how to add / enable Totals & Subtotals Button on the application tool bar in alv report output.
    Regards,
    Kishan

    ok so here i am sending my code....its also interactive...
    and in second list i am displaying quantity....
    *& Report  ZINT_ALV
    REPORT  zint_alv.
    TYPE-POOLS:slis.
    TABLES:mara,
           makt,
           mseg.
    DATA:BEGIN OF itab OCCURS 0,
          matnr LIKE mara-matnr,
          maktx LIKE makt-maktx,
         END OF itab.
    DATA:BEGIN OF itab1 OCCURS 0,
          mblnr LIKE mseg-mblnr,
          menge LIKE mseg-menge,
          meins LIKE mseg-meins,
          werks LIKE mseg-werks,
         END OF itab1.
    DATA:fcat TYPE slis_t_fieldcat_alv,
         fcat1 TYPE slis_t_fieldcat_alv,
         eve TYPE slis_t_event,
         eve1 TYPE slis_t_event.
    DATA:t_mat LIKE mara-matnr,
         s_mat LIKE mara-matnr,
         g_repid LIKE sy-repid.
    SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS:mat FOR mara-matnr OBLIGATORY.
    SELECTION-SCREEN:END OF BLOCK blk1.
    INITIALIZATION.
      PERFORM build_fcat USING fcat.
      PERFORM build_eve.
    START-OF-SELECTION.
      PERFORM get_data.
      PERFORM dis_data.
    *&      Form  build_fcat
          text
         -->T_FCAT     text
    FORM build_fcat USING t_fcat TYPE slis_t_fieldcat_alv.
      DATA:wa_fcat TYPE slis_fieldcat_alv.
      wa_fcat-tabname = 'ITAB'.
      wa_fcat-fieldname = 'MATNR'.
      wa_fcat-ref_fieldname = 'MATNR'.
      wa_fcat-ref_tabname = 'MARA'.
      wa_fcat-seltext_m = 'Material'.
    wa_fcat-input = ' '.
    wa_fcat-edit = 'X'.
      wa_fcat-input = 'X'.
      APPEND wa_fcat TO t_fcat.
      CLEAR wa_fcat.
      wa_fcat-tabname = 'ITAB'.
      wa_fcat-fieldname = 'MAKTX'.
      wa_fcat-seltext_m = 'Description'.
      APPEND wa_fcat TO t_fcat.
      CLEAR wa_fcat.
    ENDFORM.                    "build_fcat
    *&      Form  build_eve
          text
    FORM build_eve.
      DATA:t_eve TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
       EXPORTING
         i_list_type           = 0
       IMPORTING
         et_events             = eve
    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.
    ENDFORM.                    "build_eve
    *&      Form  get_data
          text
    FORM get_data.
      SELECT maramatnr maktmaktx INTO CORRESPONDING FIELDS OF TABLE itab
      FROM mara INNER JOIN makt
      ON maramatnr = maktmatnr
      WHERE mara~matnr IN mat.
    ENDFORM.                    "get_data
    *&      Form  dis_data
          text
    FORM dis_data.
      g_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = g_repid         "'ZINT_ALV'
         i_callback_user_command           = 'USER_COMMAND'
         i_grid_title                      = 'Interactive ALV'
         it_fieldcat                       = fcat
         it_events                         = eve
        TABLES
          t_outtab                          = itab
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "dis_data
    *&      Form  user_command
          text
         -->U_COM      text
    FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.
      CLEAR fcat1.
      CASE u_com.
        WHEN '&IC1'.
          READ TABLE itab INDEX sel_field-tabindex.
          IF sel_field-fieldname = 'MATNR'.
            IF sy-subrc = 0.
              t_mat = itab-matnr.
              PERFORM build_cat1 USING fcat1.
              PERFORM build_eve1.
              PERFORM get_data1.
              PERFORM dis_data1.
            ENDIF.
          ENDIF.
         SET PARAMETER ID 'MAT' FIELD t_mat.
         CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
      ENDCASE.
    ENDFORM.                    "user_command
    *&      Form  build_fcat1
          text
         -->T_FCAT1    text
    FORM build_cat1 USING t_fcat1 TYPE slis_t_fieldcat_alv.
      DATA:wa_fcat1 TYPE slis_fieldcat_alv.
      wa_fcat1-tabname = 'ITAB1'.
      wa_fcat1-fieldname = 'MBLNR'.
      wa_fcat1-seltext_m = 'Material Doc.'.
      APPEND wa_fcat1 TO t_fcat1.
      CLEAR wa_fcat1.
      wa_fcat1-tabname = 'ITAB1'.
      wa_fcat1-fieldname = 'MENGE'.
      wa_fcat1-seltext_m = 'Quantity'.
      APPEND wa_fcat1 TO t_fcat1.
      CLEAR wa_fcat1.
      wa_fcat1-tabname = 'ITAB1'.
      wa_fcat1-fieldname = 'MEINS'.
      wa_fcat1-seltext_m = 'UOM'.
      APPEND wa_fcat1 TO t_fcat1.
      CLEAR wa_fcat1.
      wa_fcat1-tabname = 'ITAB1'.
      wa_fcat1-fieldname = 'WERKS'.
      wa_fcat1-seltext_m = 'Plant'.
      APPEND wa_fcat1 TO t_fcat1.
      CLEAR wa_fcat1.
    ENDFORM.                    "build_fcat1
    *&      Form  build_eve1
          text
    FORM build_eve1.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type     = 0
        IMPORTING
          et_events       = eve1
        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.
    ENDFORM.                                                    "build_eve1
    *&      Form  get_data1
          text
    FORM get_data1.
      SELECT mblnr menge meins werks FROM mseg
      INTO CORRESPONDING FIELDS OF TABLE itab1
      WHERE matnr = t_mat.
    ENDFORM.                                                    "get_data1
    *&      Form  dis_data1
          text
    FORM dis_data1.
      g_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = g_repid              "'ZINT_ALV'
         i_callback_user_command           = 'USER_COMMAND1'
         it_fieldcat                       = fcat1
         it_events                         = eve1
        TABLES
          t_outtab                          = itab1
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                                                    "dis_data1

  • Event getting trigger after hiding columns in alv report

    Hi All,
              I having requirement like after hiding columns,i have to control some of the hard coded data in report output. Is there any event to know what all are the columns are selected to hide?

    You can use FM REUSE_ALV_LIST_LAYOUT_INFO_GET to read the fieldcat again.
    Look at the parameter it_event_exit on the ALV FM to now  user has press on some of the Layout buttons.
    In the fieldcatalog, look for
    - no_out = 'X'.  " column is not displayed but can be choosen when changing the layout
    -tech    = 'X'.
      " column is neither displayed nor availabe in the layout

  • How to get blank records at the start of report output for label sheet?

    Hello -
    What is the best way to get an arbitrary # of blank records at the start of report output?
    I am writing a report that will be printed out on label sheets -- some of which might already be used. For example, there might be 3 labels per page but the first 2 have been used the last time the report was run.. so the report needs to display 2 blank records first so that the first record that gets printed on a label is in the 3rd position on the page. (the user would indicate - through a parameter - what the starting postion would be)

    Hi Scott
    Create a user parameter that reads in the number of blanks you need to 'print' before starting the actual printing.
    In the Format trigger of the outermost frame of your report write code using SRW.SET_BEFORE_PRINTING_CODE.
    Loop this method based on the user parameter and call this method with skip-line-command of your printer as its argument.
    Regards
    Sripathy

  • Converting report output to a word document

    Hi,
    Can anyone pls help me by providing the program for converting displaying/inserting the internal table values along with the table frame aound the internal table(in the sense displaying the rows and columns lines) to the word document not in the excel format, instead of displaying in the report.
    Thanks,
    Ravi

    Hi Ravi,
    see if this helps you in anyway:
    REPORT OUTPUT IN WORD OR EXCEL
    Re: OLE: ms word (Textbox)
    Re: OLE and MS Word
    Create MS-Word document (With format)
    Regards,
    Ravi

  • Report output to a file

    Hi All,
    My requirement is on execution of a report ,this report output should be downloaded as a file prompting the user to select the location.
    Can any one help me in downloading the output format to a file. I need some inputs on the  approach for doing this .
    Thanks in advance .
    Padma

    Hi
    See the sample code in which the download to file is used
    and do accordingly
    instaed of the OLE..fun module you can use the GUI_DOWNLOAD also
    report zesdr001
           line-size 215
           line-count 65
           no standard page heading
           message-id zv.
                          Tables Declaration
    tables:vbrk,       " Sales Document: Billing Header Data
           mara,       " Material Master Data
           mbew,       " Material Valuation data
           mbewh,      " Material Valuation: History Data
           t001,       " Company Codes
           t001w,      " Plants/Branches
           konv,       " Pricing Conditions Data
           t179t,      " Materials: Product hierarchies: Texts
           tcurx,      " Currency Conversion Table
           vbuk,       " Sales Document: Header Status data
           tvko,       " Organizational Unit: Sales Organizations
           tvtw,       " Organizational Unit: Dist.Channels
           tspa,       " Organizational Unit: Divisions
           tvfk,       " Billing Document Types
           kna1.       " Customer Master Data
                 Declaration of Data and Internal Tables
    Internal table to store the Billing Details data.(VBRK,VBRP)
    data: begin of itab_bill occurs 0,
            vbeln like vbrk-vbeln,            " Billing Document Number
            fktyp like vbrk-fktyp,            " Billing Category
            vbtyp like vbrk-vbtyp,            " Sales Doc Category
            fkdat like vbrk-fkdat,            " Billing doc date
            fkart like vbrk-fkart,            " Billing Doc type
            bukrs like vbrk-bukrs,            " Company Code
            kurrf like vbrk-kurrf,            " Exchange type
            knumv like vbrk-knumv,            " Condition Number
            waerk like vbrk-waerk,            " Currency
            kunag like vbrk-kunag,            " Sold to Party
            vrkme like vbrp-vrkme,            " sales Unit
            posnr like vbrp-posnr,            " Item Number
            charg like vbrp-charg,            " Batch Number
            fkimg like vbrp-fkimg,            " Billed quantity
            werks like vbrp-werks,            " Plant
            matnr like vbrp-matnr,            " Material Number
            netwr like vbrp-netwr,            " Net Value of the doc
            wavwr like vbrp-wavwr,            " Cost in Doc Currency
            kdmat like vbap-kdmat,            " Customer Material
          end of itab_bill.
    Internal table to write the report output when Customer Mode
    Radiobutton is selected
    data: begin of itab_out occurs 0,
            kunag like vbrk-kunag,            " Customer No
            vbeln like vbrk-vbeln,            " Billing Document Number
            fkart like vbrk-fkart,            " Billing Doc type
            fktyp like vbrk-fktyp,            " Billing Category
            vbtyp like vbrk-vbtyp,            " Sales Doc Category
            fkdat like vbrk-fkdat,            " Billing doc date
            kunnr like kna1-kunnr,            " Customer
            bukrs like vbrk-bukrs,            " Company Code
            kurrf like vbrk-kurrf,            " Exchange Rate
            waerk like vbrk-waerk,            " Currency
            vrkme like vbrp-vrkme,            " Sales Unit
            posnr like vbrp-posnr,            " Item Number
            charg like vbrp-charg,            " Batch Number
            fkimg like vbrp-fkimg,            " Billed quantity
            werks like vbrp-werks,            " Plant
            matnr like vbrp-matnr,            " Material NUmber
            kdmat like vbap-kdmat,            " Customer Material
            bil_amt(16) type p decimals 2,    " Bill Amount
            mode(10),                         " Mode
            density(10),                      " Density
            sel_prc(16) type p decimals 2,    " Selling Price
            mvg_prs like mbew-verpr,          " Moving Price
            gp_mvp_amt like vbrp-netwr,       " GrossProfit Amount(MVP)
            gp_mvp_pr(6)  type p decimals 2,  "   ,, percentage
          end of itab_out.
    Internal table to write the report output when Mode
    Radiobutton is selected
    data: begin of itab_out2 occurs 0,
            mode(10),
            vbeln like vbrk-vbeln,             " Billing Document Number
            fktyp like vbrk-fktyp,             " Billing Category
            vbtyp like vbrk-vbtyp,             " Sales Doc Category
            fkdat like vbrk-fkdat,             " Billing doc date
            kunag like vbrk-kunag,             " Sold to party
            kunnr like kna1-kunnr,             " Customer
            bukrs like vbrk-bukrs,             " Company Code
            kurrf like vbrk-kurrf,             " Exchange Rate
            waerk like vbrk-waerk,             " Currency
            vrkme like vbrp-vrkme,             " Sales UNit
            posnr like vbrp-posnr,             " Item No
            charg like vbrp-charg,             " Batch Number
            fkimg like vbrp-fkimg,             " Billed quantity
            werks like vbrp-werks,             " Plant
            matnr like vbrp-matnr,             " Material Number
            kdmat like vbap-kdmat,             " Customer Material No
            bil_amt(16)   type p decimals 2,   " Billing Amount
            density(10),                       " density
            sel_prc(16) type p decimals 4,     " Selling Price
            mvg_prs like mbew-verpr,           " Moving Price
            gp_mvp_amt like vbrp-netwr,        " GrossProfit Amount(MVP)
            gp_mvp_pr(6)  type p decimals 2,   "   ,, percentage
          end of itab_out2.
    Internal table to write the report output when Density
    Radiobutton is selected
    data: begin of itab_out3 occurs 0,
            mode(10),
            density(10),
            vbeln like vbrk-vbeln,            " Billing Document Number
            fktyp like vbrk-fktyp,            " Billing Category
            vbtyp like vbrk-vbtyp,            " Sales Doc Category
            fkdat like vbrk-fkdat,            " Billing doc date
            kunag like vbrk-kunag,            " Sold to Party
            kunnr like kna1-kunnr,            " Customer
            bukrs like vbrk-bukrs,            " Company Code
            kurrf like vbrk-kurrf,            " Exchange Rate
            waerk like vbrk-waerk,            " Currency
            vrkme like vbrp-vrkme,            " Sales Unit
            posnr like vbrp-posnr,            " Item Number
            charg like vbrp-charg,            " Batch Number
            fkimg like vbrp-fkimg,            " Billed quantity
            werks like vbrp-werks,            " Plant
            matnr like vbrp-matnr,            " Material Number
            kdmat like vbap-kdmat,            " Customer Material
            bil_amt(16)   type p decimals 2,  " Bill Amount
            sel_prc(16) type p decimals 4,    " Selling Price
            mvg_prs like mbew-verpr,          " Moving Price
            gp_mvp_amt like vbrp-netwr,       " GrossProfit Amount(MVP)
            gp_mvp_pr(6)  type p decimals 2,  "   ,, percentage
          end of itab_out3.
    *-Internal Table to Hold data to be downloaded to file
    data: begin of itab_out1 occurs 0,
            kunag(10),                       " Customer
            vbeln(10),                       " Billing Doc No
            fkdat(10),                       " Bill Date
            posnr(6),                        " Item No
            mode(6),                         " Mode
            density(6),                      " Density
            matnr(18),                       " Material
            charg(10),                       " Batch Number
            fkimg like vbrp-fkimg,           " Billed quantity
            vrkme(4),                        " Sales Unit
            sel_prc(14),                     " Selling Price
            bil_amt(15)  type p decimals 2,  " Billing Amount
            waerk(4),                        " Currency
            mvg_prs(15),                     " Moving Price
            gp_mvp_amt like vbrp-netwr,      " Gross profit Amount(MVP)
            gp_mvp_pr(15),                   "    ,,  percentage
            kdmat(35),                       " Customer Material
          end of itab_out1.
    *Internal Table
    data: begin of fieldnames occurs 0,
            title(25) type c,
            table(5)  type c,
            field(5)  type c,
            type(1)   type c,
          end of fieldnames.
    Declaration Of Variables
    data: w_period like bapi0002_4-fiscal_period,
          w_year   like bapi0002_4-fiscal_year,
          w_date   like bsad-budat,
          w_lin type i.       "No.of lines in Internal Table
    data: t_fkimg             like vbrp-fkimg,
          t_bil_amt(8)        type p decimals 2,
          t_gp_mvp_amt(8)     type p decimals 2,
          t_gr_fkimg          like vbrp-fkimg,
          t_gr_bil_amt(8)     type p decimals 2,
          t_gr_gp_mvp_amt(8)  type p decimals 2,
          t_efkimg            like vbrp-fkimg,
          t_ebil_amt(8)       type p decimals 2,
          t_egp_mvp_amt(8)    type p decimals 2.
    data:f_flg .
                       Select-Options
    selection-screen: begin of block b with frame.
    selection-screen : begin of block b1 with frame title text-001.
    select-options:s_bukrs for t001-bukrs no intervals no-extension
                                                         obligatory,
                   s_vkorg for tvko-vkorg no intervals no-extension,
                   s_vtweg for tvtw-vtweg no intervals no-extension,
                   s_spart for tspa-spart no intervals no-extension,
                   s_werks for t001w-werks no intervals no-extension,
                   s_kunag for kna1-kunnr,
                   s_vbeln for vbuk-vbeln,
                   s_fkart for tvfk-fkart,
                   s_fkdat for vbrk-fkdat obligatory.
    selection-screen begin of line.
    selection-screen comment 1(20) text-008.
    selection-screen end   of line.
    selection-screen begin of line.
    parameters p_cust type c radiobutton group cust.
    selection-screen comment 3(20) text-004 for field p_cust.
    selection-screen end of line.
    selection-screen begin of line.
    parameters p_mode type c radiobutton group cust.
    selection-screen comment 3(20) text-006 for field p_mode.
    selection-screen end of line.
    selection-screen begin of line.
    parameters p_dens type c radiobutton group cust.
    selection-screen comment 3(20) text-007 for field p_dens.
    selection-screen end of line.
    selection-screen: end of block b1.
    selection-screen : begin of block b2 with frame title text-002.
    parameters:  p_dwnlod as checkbox,
                 p_file like rlgrap-filename. " default 'C:\zesdr001'.
    selection-screen: end of block b2.
    selection-screen: end of block b.
    *******At Selection Screen********************************************
    at selection-screen.
    At Selection Screen on Value Request
    at selection-screen on value-request for p_file.
      perform f4_help.
    Checking for the input values of selection screen.
      perform screen_check.
    Top Of Page***************************************************
    top-of-page.
      perform rep_headers.
    *******Start of Selection*********************************************
    start-of-selection.
    Selecting data from the database tables
      perform invoice_selection.
      describe table itab_bill lines w_lin.
      if w_lin = 0.
        message i008.   " No Data Found for the Given Selection Criteria
      else.
    Moving the data records into output internal table
        perform bill_details.
    When Customer Radio button is selected
        if p_cust eq 'X'.
          perform invoice_output_cust.
    When Mode Radio button is selected
        elseif p_mode eq 'X'.
          perform invoice_output_mode.
    When density Radio button is selected
        elseif p_dens eq 'X'.
          perform invoice_output_dens.
        endif.
      endif.
    *******End of Selection***********************************************
    end-of-selection.
      perform init_fieldnames.
      if p_dwnlod = 'X'.
        perform read_data_for_dowlload.
      perform down_load_to_file using p_file.
        perform download_excel using p_file.
      endif.
    *&      Form  screen_check
       Ckecking for Selection Screen fields Validation
    form screen_check.
    Validation of Sales Organization
      clear tvko.
      if not s_vkorg-low is initial.
        select vkorg from tvko up to 1 rows
               into tvko-vkorg
               where vkorg in s_vkorg.
        endselect.
        if sy-subrc ne 0.
          message e009.  " Invalid Sales Organization
        endif.
      endif.
    Validation of Distribution Channel
      clear tvtw.
      if not s_vtweg-low is initial.
        select vtweg from tvtw up to 1 rows
               into tvtw-vtweg
               where vtweg in s_vtweg.
        endselect.
        if sy-subrc ne 0.
          message e010.  " Invalid Distribution Channel
        endif.
      endif.
    Validation of Division
      clear tspa.
      if not s_spart-low is initial.
        select spart from tspa up to 1 rows
               into tspa-spart
               where spart in s_spart.
        endselect.
        if sy-subrc ne 0.
          message e011.  " Invalid Division
        endif.
      endif.
    Validation for company code
      clear t001.
      if not s_bukrs-low is initial.
        select single bukrs from t001
             into t001-bukrs
             where bukrs in s_bukrs.
        if sy-subrc <> 0.
          message e007.   " Enter valid Company Code
        endif.
      endif.
    Validation of billing Document Type
      clear tvfk.
      if not s_fkart is initial.
        select fkart from tvfk up to 1 rows
               into tvfk-fkart
               where fkart in s_fkart.
        endselect.
        if sy-subrc ne 0.
          message e012.  " Invalid Billing Document Type
        endif.
      endif.
    Validation of Billing Document Number
      clear vbuk.
      if not s_vbeln is initial.
        select vbeln from vbuk up to 1 rows
               into vbuk-vbeln
               where vbeln in s_vbeln and
                     vbtyp = 'M'.
        endselect.
        if sy-subrc ne 0.
          message e013.   " Invalid Billing Doc Number
        endif.
      endif.
    Validation of Customer
      clear kna1.
      if not s_kunag is initial.
        select kunnr from kna1 up to 1 rows
               into kna1-kunnr
               where kunnr in s_kunag.
        endselect.
        if sy-subrc ne 0.
          message e014.    " Invalid Customer Number
        endif.
      endif.
    Validation of Plant
      clear t001w.
      if not s_werks is initial.
        select werks from t001w up to 1 rows
               into t001w-werks
               where werks in s_werks.
        endselect.
        if sy-subrc ne 0.
          message e004.    " Invalid Plant Number
        endif.
      endif.
    Validation for File path to download
      if p_dwnlod = 'X'.
        if p_file is initial.
          message e006.  " Enter the Valid file path to Download
        endif.
      endif.
    endform.             "screen_check
          FORM invoice_selection                                        *
    Selecting data from the database tables
    form invoice_selection.
      select
            a~vbeln                   " Billing Doc Number
            a~fktyp                   " Billing Category
            a~vbtyp                   " Sales Doc category
            a~fkdat                   " Billing doc date
            a~fkart                   " Billing doc type
            a~bukrs                   " Company code
            a~kurrf                   " Exchange rate
            a~knumv                   " Condition record Number
            a~waerk                   " Currency
            a~kunag                   " Sold to Party
            b~vrkme                   " Sales Unit
            b~posnr                   " Item Number
            b~charg                   " Batch Number
            b~fkimg                   " Billed quantity
            b~werks                   " Plant
            b~matnr                   " Material Number
            b~netwr                   " Net Value of Bill Doc
            b~wavwr                   " Cost in Doc Currency
            c~kdmat                   " Customer Material
                     into table itab_bill
                     from vbrk as a join vbrp as b
                            on bvbeln = avbeln
                            join vbap as c
                            on baubel = cvbeln and
                               baupos = cposnr
                      where a~vbeln in s_vbeln and
                            a~fkdat in s_fkdat and
                            a~bukrs in s_bukrs and
                            a~vtweg in s_vtweg and
                            a~vkorg in s_vkorg and
                            a~spart in s_spart and
                            a~fkart in s_fkart and
                            b~werks in s_werks and
                            a~kunag in s_kunag and
                            a~sfakn eq ' ' and
                            a~fksto eq ' ' .
    endform .
          FORM bill_details                                             *
    appending data into itab_out internal table
    form bill_details.
      sort itab_bill by vbeln.
      select single waers from t001 into t001-waers
                              where bukrs in s_bukrs.
      data:f_txt1(10),f_txt2(10),f_txt3(10).
      loop at itab_bill.
        itab_out-vbeln   = itab_bill-vbeln.
        itab_out-fktyp   = itab_bill-fktyp.
        itab_out-vbtyp   = itab_bill-vbtyp.
        itab_out-fkdat   = itab_bill-fkdat.
        itab_out-fkart   = itab_bill-fkart.
        itab_out-bukrs   = itab_bill-bukrs.
        itab_out-kurrf   = itab_bill-kurrf.
        itab_out-waerk   = itab_bill-waerk.
        itab_out-kunag   = itab_bill-kunag.
        itab_out-vrkme   = itab_bill-vrkme.
        itab_out-posnr   = itab_bill-posnr.
        itab_out-charg   = itab_bill-charg.
        itab_out-fkimg   = itab_bill-fkimg.
        itab_out-werks   = itab_bill-werks.
        itab_out-matnr   = itab_bill-matnr.
        itab_out-kdmat   = itab_bill-kdmat.
       select single currdec from tcurx into tcurx-currdec
              where currkey eq itab_out-waerk.
        if sy-subrc eq '0' .
          if tcurx-currdec eq '0'.
            itab_bill-netwr = itab_bill-netwr * 100.
            itab_bill-wavwr = itab_bill-wavwr * 100.
          endif.
        endif.
        itab_out-bil_amt = itab_bill-netwr.
        clear : konv.
    Pricing data from KONV table
        select single kbetr kwert kpein from konv into
                                      (konv-kbetr,konv-kwert,konv-kpein)
                                       where knumv = itab_bill-knumv and
                                             kposn = itab_bill-posnr and
                                             kschl eq 'ZSP1' and
                                             krech eq 'C' and
                                             kinak eq ' '.
    Currency conversion
        select single currdec from tcurx into tcurx-currdec
                           where currkey eq itab_out-waerk.
        if sy-subrc eq '0' .
          if tcurx-currdec eq '0'.
            konv-kbetr = konv-kbetr * 100.
          endif.
        endif.
    Unit Price
        itab_out-sel_prc = konv-kbetr.
    Unit Price Calculation
        if not konv-kpein is initial.
          itab_out-sel_prc = itab_out-sel_prc / konv-kpein .
        endif.
    Call Function to get the Period for the given Billing date
    and Company Code
        perform get_period.
    Selecting Material Valuation Data
        clear:mbew.
        if itab_out-fktyp eq 'L'.
          select single
              lfmon lfgja verpr stprs vmver vmstp
                 from mbew
                 into (mbew-lfmon,mbew-lfgja,mbew-verpr,
                       mbew-stprs,mbew-vmver,mbew-vmstp)
                          where matnr = itab_out-matnr
                          and   bwkey = itab_out-werks.
          if mbew-lfmon = w_period and mbew-lfgja = w_year.
            select single currdec from tcurx into tcurx-currdec
                  where currkey eq t001-waers.
            if sy-subrc eq '0' .
              if tcurx-currdec eq '0'.
                mbew-stprs = mbew-stprs * 100.
                mbew-verpr = mbew-verpr * 100.
              endif.
            endif.
            if itab_out-waerk eq t001-waers.
              itab_out-mvg_prs = mbew-verpr  ."/ itab_out-kurrf.
            else.
              itab_out-mvg_prs = mbew-verpr  / itab_out-kurrf.
            endif.
          else.
            clear:mbewh.
            select single
             lfmon lfgja verpr stprs
                from mbewh
                into (mbewh-lfmon,mbewh-lfgja,mbewh-verpr,
                      mbewh-stprs)
                         where matnr = itab_out-matnr
                         and   bwkey = itab_out-werks
                         and   lfmon = w_period
                         and   lfgja = w_year.
            select single currdec from tcurx into tcurx-currdec
                    where currkey eq t001-waers.
            if sy-subrc eq '0' .
              if tcurx-currdec eq '0'.
                mbewh-verpr = mbewh-verpr * 100.
              endif.
            endif.
            if itab_out-waerk eq t001-waers.
              itab_out-mvg_prs = mbewh-verpr ."/ itab_out-kurrf.
            else.
              itab_out-mvg_prs = mbewh-verpr  / itab_out-kurrf.
            endif.
            if itab_out-mvg_prs is initial.
              select single
                      lfmon lfgja verpr stprs vmver vmstp
                         from mbew
                         into (mbew-lfmon,mbew-lfgja,mbew-verpr,
                               mbew-stprs,mbew-vmver,mbew-vmstp)
                                  where matnr = itab_out-matnr
                                  and   bwkey = itab_out-werks.
              select single currdec from tcurx
                 into tcurx-currdec
                 where currkey eq t001-waers.
              if sy-subrc eq '0' .
                if tcurx-currdec eq '0'.
                  mbew-verpr = mbew-verpr * 100.
                endif.
              endif.
              if itab_out-waerk eq t001-waers.
                itab_out-mvg_prs = mbew-verpr  ."/ itab_out-kurrf.
              else.
                itab_out-mvg_prs = mbew-verpr  / itab_out-kurrf.
              endif.
            endif.
          endif.
        endif.
    To find Density and Mode from MARA and T179T tables
        clear :mara,t179t.
        select single prdha from mara
              into mara-prdha
              where matnr = itab_out-matnr.
        select single vtext from t179t
               into t179t-vtext
               where spras = 'EN' and
               prodh = mara-prdha(4).
        split t179t-vtext at ' ' into f_txt1 f_txt2 f_txt3.
        itab_out-mode = f_txt2.
        itab_out-density = f_txt3.
        if not itab_out-mvg_prs is initial.
          if itab_out-fktyp eq 'L'.
            itab_out-gp_mvp_amt = itab_out-bil_amt - itab_out-mvg_prs *
                                                       itab_out-fkimg.
          else.
            itab_out-gp_mvp_amt = '0'.
          endif.
        endif.
        if not itab_out-mvg_prs is initial
           and not itab_out-sel_prc is initial.
          itab_out-gp_mvp_pr = ( itab_out-sel_prc - itab_out-mvg_prs )
                                         / itab_out-sel_prc * 100.
        endif.
        append itab_out.
        clear itab_out.
      endloop.
      loop at itab_out.
        if itab_out-vbtyp eq 'N' or itab_out-vbtyp eq 'O'.
          itab_out-fkimg   = itab_out-fkimg * -1.
          itab_out-sel_prc = itab_out-sel_prc * -1.
          itab_out-bil_amt = itab_out-bil_amt * -1.
          itab_out-mvg_prs = itab_out-mvg_prs * -1.
          itab_out-gp_mvp_amt = itab_out-gp_mvp_amt * -1.
          itab_out-gp_mvp_pr = itab_out-gp_mvp_pr * -1.
    If the bill amount is 0 then the quantity should also be 0.
          if itab_out-bil_amt = 0.
            itab_out-fkimg = 0.
          endif.
    Check if the Bill amount is Credit memo amount, then the gross profit
    should also be the same bill amount irrespecitve of +ve or -ve.
          if itab_out-gp_mvp_amt = 0.
            move: itab_out-bil_amt to itab_out-gp_mvp_amt.
          endif.
          modify itab_out.
          clear itab_out.
        endif.
      endloop.
    endform.
    *&      Form  get_period
    Getting Document Period
    form get_period.
      clear :w_period,w_year,w_date.
      concatenate itab_out-fkdat(4)
                   itab_out-fkdat+4(2)
                   itab_out-fkdat+6(2)
                   into w_date.
      call function 'BAPI_COMPANYCODE_GET_PERIOD'
           exporting
                companycodeid = itab_out-bukrs
                posting_date  = w_date
           importing
                fiscal_year   = w_year
                fiscal_period = w_period.
    endform.                    " get_period
    *&      Form  invoice_output_cust
          Report Output when customer is selected
    form invoice_output_cust.
      write at /1(214) sy-uline.
      sort itab_out  by kunag vbeln fkart posnr fkdat.
      loop at itab_out.
        if f_flg = 'X'.
          format color col_normal intensified off.
          f_flg = ' '.
        else.
          format color col_normal intensified on.
          f_flg = 'X'.
        endif.
        at new kunag.
          read table itab_out index sy-tabix.
        endat.
        write:  /01 sy-vline,  2(10) itab_out-kunag,
                 12 sy-vline, 13(10) itab_out-vbeln,
                 23 sy-vline, 24(6)  itab_out-posnr,
                 30 sy-vline, 31(10) itab_out-fkdat,
                 41 sy-vline, 42(6)  itab_out-mode,
                 48 sy-vline, 49(7)  itab_out-density,
                 56 sy-vline, 57(18) itab_out-matnr,
                 75 sy-vline, 76(10) itab_out-charg,
                 86 sy-vline,
                 87(13) itab_out-fkimg unit itab_out-vrkme no-sign,
                 102(3) itab_out-vrkme,
                105 sy-vline,
                106(14) itab_out-sel_prc currency konv-waers no-sign,
                120 sy-vline,
                121(15) itab_out-bil_amt currency vbrk-waerk no-sign,
                138(3) itab_out-waerk,
                141 sy-vline,
                142(15) itab_out-mvg_prs currency vbrk-waerk no-sign,
                157 sy-vline,
                158(15) itab_out-gp_mvp_amt currency vbrk-waerk no-sign,
                173 sy-vline,174(6)  itab_out-gp_mvp_pr no-sign ,
                180 sy-vline,181(33) itab_out-kdmat,
                214 sy-vline.
        t_fkimg = t_fkimg + itab_out-fkimg.
        t_bil_amt = t_bil_amt + itab_out-bil_amt.
        t_gp_mvp_amt = t_gp_mvp_amt + itab_out-gp_mvp_amt.
        t_gr_fkimg      = t_gr_fkimg         + itab_out-fkimg.
        t_gr_bil_amt    = t_gr_bil_amt       + itab_out-bil_amt.
        t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out-gp_mvp_amt.
        at end of kunag.
          format reset.
          format color col_total intensified off.
          write:/1(214) sy-uline.
          write:/01 sy-vline,
                 02 'Sub Total of Customer:'(035), itab_out-kunag,
                 87(13) t_fkimg unit itab_out-vrkme no-sign,
                121(15) t_bil_amt no-sign,
                158(15) t_gp_mvp_amt no-sign,
                214 ' ',
                /1(214)  sy-uline.
          clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
        endat.
        at last.
          write:/01 sy-vline,
                 02 'Grand Total :'(032),
                 87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
                121(15) t_gr_bil_amt no-sign,
                158(15) t_gr_gp_mvp_amt no-sign,
                214 ' '.
        endat.
        format color off.
      endloop.
      write at /1(214) sy-uline.
    endform.    "invoice_output_cust
    *&      Form  invoice_output_mode
          Report Output
    form invoice_output_mode.
      loop at itab_out.
        move-corresponding itab_out to itab_out2.
        append itab_out2.
        clear: itab_out2.
      endloop.
      write at /1(214) sy-uline.
      sort itab_out2  by mode vbeln posnr fkdat.
      loop at itab_out2.
        if f_flg = 'X'.
          format color col_normal intensified off.
          f_flg = ' '.
        else.
          format color col_normal intensified on.
          f_flg = 'X'.
        endif.
        at new mode.
          read table itab_out2 index sy-tabix.
        endat.
        write: /01 sy-vline,  2(10) itab_out2-kunag,
                12 sy-vline, 13(10) itab_out2-vbeln,
                23 sy-vline, 24(6)  itab_out2-posnr,
                30 sy-vline, 31(10) itab_out2-fkdat,
                41 sy-vline, 42(6)  itab_out2-mode,
                48 sy-vline, 49(7)  itab_out2-density,
                56 sy-vline, 57(18) itab_out2-matnr,
                75 sy-vline, 76(10) itab_out2-charg,
                86 sy-vline,
                87(13) itab_out2-fkimg unit itab_out2-vrkme no-sign,
                102(3) itab_out2-vrkme,
                105 sy-vline,
                106(14) itab_out2-sel_prc currency vbrk-waerk no-sign,
                120 sy-vline,
                121(15) itab_out2-bil_amt currency vbrk-waerk no-sign,
                             138(3)  itab_out2-waerk,
                141 sy-vline,
                142(15) itab_out2-mvg_prs currency vbrk-waerk no-sign,
                157 sy-vline,
                158(15) itab_out2-gp_mvp_amt currency vbrk-waerk no-sign,
                173 sy-vline,174(6)  itab_out2-gp_mvp_pr no-sign,
                180 sy-vline,181(33) itab_out2-kdmat,
                214 sy-vline.
        t_fkimg = t_fkimg + itab_out2-fkimg.
        t_bil_amt = t_bil_amt + itab_out2-bil_amt.
        t_gp_mvp_amt = t_gp_mvp_amt + itab_out2-gp_mvp_amt.
        t_gr_fkimg      = t_gr_fkimg         + itab_out2-fkimg.
        t_gr_bil_amt    = t_gr_bil_amt       + itab_out2-bil_amt.
        t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out2-gp_mvp_amt.
        at end of mode.
          format reset.
          format color col_total intensified off.
          write:/1(214) sy-uline.
          write:/01 sy-vline,
                 02 'Sub Total of Mode :'(033), itab_out2-mode,
                 87(13) t_fkimg unit itab_out-vrkme no-sign,
                121(15) t_bil_amt no-sign,
                158(15) t_gp_mvp_amt no-sign,
                214 ' ',
                /1(214)  sy-uline.
          clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
        endat.
        at last.
          write:/01 sy-vline,
                 02 'Grand Total :'(032),
                 87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
                121(15) t_gr_bil_amt no-sign,
                158(15) t_gr_gp_mvp_amt no-sign,
                214 ' '.
        endat.
        format color off.
      endloop.
      write at /1(214) sy-uline.
    endform.    "invoice_output_mode
    *&      Form  invoice_output_dens
          Report Output
    form invoice_output_dens.
      loop at itab_out.
        move-corresponding itab_out to itab_out3.
        append itab_out3.
        clear: itab_out3.
      endloop.
      write at /1(214) sy-uline.
      sort itab_out3  by mode density vbeln posnr fkdat.
      loop at itab_out3.
        if f_flg = 'X'.
          format color col_normal intensified off.
          f_flg = ' '.
        else.
          format color col_normal intensified on.
          f_flg = 'X'.
        endif.
        at new mode.
        endat.
        at new density.
          read table itab_out3 index sy-tabix.
        endat.
        write:  /01 sy-vline,  2(10) itab_out3-kunag,
                 12 sy-vline, 13(10) itab_out3-vbeln,
                 23 sy-vline, 24(6)  itab_out3-posnr,
                 30 sy-vline, 31(10) itab_out3-fkdat,
                 41 sy-vline, 42(6)  itab_out3-mode,
                 48 sy-vline, 49(7)  itab_out3-density,
                 56 sy-vline, 57(18) itab_out3-matnr,
                 75 sy-vline, 76(10) itab_out3-charg,
                 86 sy-vline,
                 87(13) itab_out3-fkimg unit itab_out3-vrkme no-sign,
                 102(3) itab_out3-vrkme,
                 105 sy-vline,106(14) itab_out3-sel_prc no-sign,
                 120 sy-vline,
                 121(15) itab_out3-bil_amt currency vbrk-waerk no-sign,
                              138(3)  itab_out3-waerk,
                 141 sy-vline,142(15) itab_out3-mvg_prs no-sign
                                      currency vbrk-waerk,
                 157 sy-vline,158(15) itab_out3-gp_mvp_amt no-sign
                                      currency vbrk-waerk,
                 173 sy-vline,174(6)  itab_out3-gp_mvp_pr no-sign,
                 180 sy-vline,181(33) itab_out3-kdmat,
                 214 sy-vline.
        t_efkimg      = t_efkimg      + itab_out3-fkimg.
        t_ebil_amt    = t_ebil_amt    + itab_out3-bil_amt.
        t_egp_mvp_amt = t_egp_mvp_amt + itab_out3-gp_mvp_amt.
        t_fkimg = t_fkimg + itab_out3-fkimg.
        t_bil_amt = t_bil_amt + itab_out3-bil_amt.
        t_gp_mvp_amt = t_gp_mvp_amt + itab_out3-gp_mvp_amt.
        t_gr_fkimg      = t_gr_fkimg         + itab_out3-fkimg.
        t_gr_bil_amt    = t_gr_bil_amt       + itab_out3-bil_amt.
        t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out3-gp_mvp_amt.
        at end of density.
          format reset.
          format color col_total intensified off.
          write:/1(214) sy-uline.
          write:/01 sy-vline,
                 02 'Sub Total of Density :'(034), itab_out3-density,
                87(13) t_efkimg unit itab_out-vrkme no-sign,
               121(15) t_ebil_amt currency vbrk-waerk no-sign,
               158(15) t_egp_mvp_amt currency vbrk-waerk no-sign,
               214 ' ',
                /1(214) sy-uline.
          clear: t_efkimg, t_ebil_amt,t_egp_mvp_amt.
        endat.
        at end of mode.
          format reset.
          format color col_total intensified off.
          write:/01 sy-vline,
                 02 'Sub Total of Mode :'(033), itab_out3-mode,
                 87(13) t_fkimg unit itab_out-vrkme no-sign,
                121(15) t_bil_amt no-sign,
                158(15) t_gp_mvp_amt no-sign,
                214 ' ',
                /1(214) sy-uline.
          clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
        endat.
        at last.
          write:/01 sy-vline,
                 02 'Grand Total :'(032),
                87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
               121(15) t_gr_bil_amt no-sign,
               158(15) t_gr_gp_mvp_amt no-sign,
               214 ' '.
        endat.
        format color off.
      endloop.
      write at /1(214) sy-uline.
    endform.    "invoice_output_dens
    *&      Form  f4_help
          To Get F4 Help to Select File Name
    form f4_help.
      call function 'F4_FILENAME'
           exporting
                program_name  = sy-cprog
                dynpro_number = syst-dynnr
                field_name    = 'P_FILE'
           importing
                file_name     = p_file.
    endform.                                                    " f4_help
    *&      Form  rep_headers
          Report Header
    form rep_headers.
      format color col_heading on.
      format color col_heading on.
      select single butxt from t001 into t001-butxt
                                    where bukrs = s_bukrs-low.
      skip 2.
      write: /2 t001-butxt, 92 'BILLING ANALYSIS'(003),
             190 'Date :'(010),sy-datum.
      write :/2 'Company Code :'(011), s_bukrs-low ,
            85 'Billing Date :'(012) , s_fkdat-low , '-' ,s_fkdat-high ,
            190 'Page :'(013), sy-pagno,
            214 ' '.
      write at /1(214) sy-uline.
      write: /1 sy-vline,  2(10) 'Customer'(004) centered,
             12 sy-vline, 13(10) 'Billing'(009) centered,
             23 sy-vline, 24(6)  'Billing'(009) centered,
             30 sy-vline, 31(10) 'Billing'(009) centered,
             41 sy-vline, 42(6)  'Mode'(006) centered,
             48 sy-vline, 49(7)  'Density'(014) centered,
             56 sy-vline, 57(18) 'Material'(015) centered,
             75 sy-vline, 76(10) 'Batch'(016) centered,
             86 sy-vline, 87(13) 'Quantity'(017) centered,102(3) 'UOM'(027),
             105 sy-vline, 106(14) 'Selling'(018) centered ,
             120 sy-vline, 121(15) 'Billing'(009) centered,
                           138(3) 'Cur'(028),
             141 sy-vline, 142(15) 'Mvg.Avg.Price'(020) centered,
             157 sy-vline, 158(22) 'Gross Profit(MVP)'(022) centered,
             180 sy-vline, 181(33) 'Customer Material'(023) centered,
             214 sy-vline.
      write: /1 sy-vline,  2(10) 'Code'(024) centered,
             12 sy-vline, 13(10) 'Document'(025) centered,
             23 sy-vline, 24(6)  'Item'(026) centered,
             30 sy-vline, 31(10) 'Date'(036) centered,
             41 sy-vline,
             48 sy-vline,
             56 sy-vline,
             75 sy-vline,
             86 sy-vline,
            105 sy-vline, 106(14) 'Price'(030) centered ,
            120 sy-vline, 121(15) 'Amount'(031) centered,
            141 sy-vline, 142(15) '(per Unit)'(019) centered,
            157 sy-vline, 158(15) 'Amount'(031) centered,
            173 sy-vline, 174(6) ' % '(029) centered,
            180 sy-vline,
            214 sy-vline.
      format color off.
    endform.                    " rep_headers
    *&      Form  init_fieldnames
    Initialise all the fields to download in Excel Data File
    form init_fieldnames.
      perform append_fieldname using text-004 'itab_out1'
                                     'KUNAG'    'X'.
      perform append_fieldname using text-037 'itab_out1'
                                     'VBELN'   'X'.
      perform append_fieldname using text-036 'itab_out1'
                                     'FKDAT'  'X'.
      perform append_fieldname using text-038 'itab_out1'
                                     'POSNR'    'X'.
      perform append_fieldname using text-006 'itab_out1'
                                     'MODE' 'X'.
      perform append_fieldname using text-014 'itab_out1'
                                     'DENSITY' 'X'.
      perform append_fieldname using text-015 'itab_out1'
                                     'MATNR'    'X'.
      perform append_fieldname using text-016 'itab_out1'
                                     'CHARG' 'X'.
      perform append_fieldname using text-017 'itab_out1'
                                     'FKIMG'    'X'.
      perform append_fieldname using text-039 'itab_out1'
                                     'VRKME' 'X'.
      perform append_fieldname using text-040 'itab_out1'
                                     'SEL_PRC' 'X'.
      perform append_fieldname using text-041 'itab_out1'
                                     'BIL_AMT' 'X'.
      perform append_fieldname using text-028 'itab_out1'
                                     'WAERK' 'X'.
      perform append_fieldname using text-020 'itab_out1'
                                     'MVG_PRS' 'X'.
      perform append_fieldname using text-044 'itab_out1'
                                     'GP_MVP_AMT' 'X'.
      perform append_fieldname using text-045 'itab_out1'
                                     'GP_MVP_PR' 'X'.
      perform append_fieldname using text-023 'itab_out1'
                                     'KDMAT'         'X'.
    endform.
    *&      Form  append_fieldname
    Appending field Names
    form append_fieldname using p_title p_table p_field p_type.
      clear: fieldnames.
      fieldnames-title = p_title.
      fieldnames-table = p_table.
     

  • Want  report output in HTML

    Hi All!
    is it possible to get the report output in HTML based output?
    if yes,  can anyone send me the details?
    thanks in advance
    Alankaar

    Hi,
    Yes it is possible to do that.
    You can go thru the program below. Hope it could help you.
    REPORT  ZSS_CODE_2_HTML LINE-SIZE 300        .
    TABLES: D010INC.      
    Tabelle für die aufzunehmenden ABAP-Texte
    DATA: BEGIN OF SOURCECODE OCCURS 0,
    LINE(200),
    END OF SOURCECODE.
    Tabelle für den erzeugten HTMLCode
    DATA: BEGIN OF HTMLCODE OCCURS 5000,
    LINE(256),
    END OF HTMLCODE.
    DATA: BEGIN OF INCLUDETAB OCCURS 0,
    NAME LIKE D010INC-INCLUDE,
    END OF INCLUDETAB.
    DATA: TEXTELEMENTETAB LIKE TEXTPOOL OCCURS 50 WITH HEADER LINE.
    DATA: EINRUECK TYPE I,                 " Soweit im HTML einrücken
    CHAR2(2).
    Selektionsbild und Verarbeitung  -
    SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME.
    PARAMETERS: PROGNAME LIKE D010SINF-PROG
             DEFAULT 'ZSS_CODE_2_HTML'.
    PARAMETERS: HTMLFILE LIKE RLGRAP-FILENAME
             DEFAULT 'c:     emp     est.html'.
    PARAMETERS: MITINCLD AS CHECKBOX DEFAULT 'X',
    MITTEXTL AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK BL1.
    SELECTION-SCREEN BEGIN OF BLOCK BL2 WITH FRAME.
    PARAMETERS: MITZEILE AS CHECKBOX DEFAULT 'X',
    ONSCREEN AS CHECKBOX DEFAULT 'X',
    SAPINCLD AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK BL2.
    Ein subtrivialer Tests
    AT SELECTION-SCREEN.
    READ REPORT PROGNAME INTO SOURCECODE.
    IF SY-SUBRC <> 0.
    MESSAGE E159(AT) WITH 'Programm konnte nicht eingelesen werden'.
    ENDIF.
    Programmanfang -
    END-OF-SELECTION.
    In der Tabelle sourcecode sollte hier schon der Quelltext stehen.
    PERFORM ERZEUGE_KOPF.
    PERFORM WRITE_SOURCE.
    Includes falls erwünscht
    IF MITINCLD = 'X'.
    PERFORM WRITE_INCLUDES.
    ENDIF.
    Textelemente falls erwünscht
    Includes falls erwünscht
    IF MITTEXTL = 'X'.
    PERFORM WRITE_TEXTELEMENTE.
    ENDIF.
    Und abschließen des Files
    PERFORM ERZEUGE_SCHWANZ.
    PERFORM ABSPEICHERN TABLES HTMLCODE
              USING HTMLFILE.
    Unterroutinen  -
    INCLUDE ZCD_SS_DEBUGROUTINEN.
          FORM ABSPEICHERN                                              *
    -->  FILENAME                                                      *
    FORM ABSPEICHERN TABLES TEXT_ZU_SCHREIBEN
         USING FILENAME LIKE RLGRAP-FILENAME.
    CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
    CODEPAGE                = 'IBM'
    FILENAME                = HTMLFILE
    FILETYPE                = 'ASC'
              MODE                    = ' '
    TABLES
    DATA_TAB                = TEXT_ZU_SCHREIBEN
    EXCEPTIONS
    FILE_OPEN_ERROR         = 1
    FILE_WRITE_ERROR        = 2
    INVALID_FILESIZE        = 3
    INVALID_TABLE_WIDTH     = 4
    INVALID_TYPE            = 5
    NO_BATCH                = 6
    UNKNOWN_ERROR           = 7
    GUI_REFUSE_FILETRANSFER = 8
    OTHERS                  = 9.
    IF ONSCREEN = 'X'.
    LOOP AT TEXT_ZU_SCHREIBEN.
    PERFORM SHOW_ANY_STRUC USING TEXT_ZU_SCHREIBEN.NEW-LINE.
    ENDLOOP.
    ENDIF.
    ENDFORM.
    *&      Form  ERZEUGE_KOPF
      Erzeugt einen HTML-Rumpf bis zum Body
    FORM ERZEUGE_KOPF.
    HTMLCODE-LINE = ''.APPEND HTMLCODE.
    HTMLCODE-LINE = ' '.APPEND HTMLCODE.
    HTMLCODE-LINE = '
    CLEAR HTMLCODE-LINE.
    HTMLCODE-LINE+3 = PROGNAME.APPEND HTMLCODE.
    HTMLCODE-LINE = ' '.APPEND HTMLCODE.
    HTMLCODE-LINE = ' '.APPEND HTMLCODE.
    CLEAR HTMLCODE-LINE.APPEND HTMLCODE.
    HTMLCODE-LINE = ''.APPEND HTMLCODE.
    EINRUECK = 2.
    ENDFORM.                               " ERZEUGE_KOPF
    *&      Form  ERZEUGE_SCHWANZ
      Erzeugt die abschließenden HTML-Befehle
    FORM ERZEUGE_SCHWANZ.
    HTMLCODE-LINE = ' </body>'.APPEND HTMLCODE.
    HTMLCODE-LINE = '</html>'.APPEND HTMLCODE.
    ENDFORM.                               " ERZEUGE_SCHWANZ
    *&      Form  WRITE_SOURCE
       Schreibt den Sourcecode
    FORM WRITE_SOURCE.
    DATA: ROT.
    Erstmal die Überschrift hinstellen
    PERFORM ADDZEILE USING '>+' '
    PERFORM ZEILEUMB USING '' PROGNAME.
    PERFORM ADDZEILE USING '->' '
    CLEAR HTMLCODE-LINE.APPEND HTMLCODE.
    Link auf Includes
    IF MITINCLD = 'X'.
    PERFORM ADDZEILE USING '>+' '
    PERFORM ZEILEUMB USING '' '[Includes | #Includes]'.
    PERFORM ADDZEILE USING '->' '
    ENDIF.
    Link auf Textelemente
    IF MITTEXTL = 'X'.
    PERFORM ADDZEILE USING '>+' '
    PERFORM ZEILEUMB USING ''
    '[Textelemente | #Textelemente]'.
    PERFORM ADDZEILE USING '->' '
    ENDIF.
    Und Linie zum Trennen gegen den Quellcode
    PERFORM ADDZEILE USING '>+' ''.
    Und jetzt der Quellcode
    PERFORM CODELINES.
    ENDFORM.                               " WRITE_SOURCE
    *&      Form  ADDZEILE
       Fügt eine Zeile in den HTML-Code ein und korrigiert Einrücktiefe
    FORM ADDZEILE USING    VALUE(EINRUECKEN) LIKE CHAR2
               VALUE(TEXT).
    DATA: ER.
    ER = EINRUECKEN(1).
    IF ER = '+'.
    EINRUECK = EINRUECK + 1.
    ELSEIF ER = '-'.
    EINRUECK = EINRUECK - 1.
    ENDIF.
    CLEAR HTMLCODE.
    HTMLCODE+EINRUECK = TEXT.
    APPEND HTMLCODE.
    ER = EINRUECKEN+1(1).
    IF ER = '+'.
    EINRUECK = EINRUECK + 1.
    ELSEIF ER = '-'.
    EINRUECK = EINRUECK - 1.
    ENDIF.
    ENDFORM.                               " ADDZEILE
    *&      Form  SONDERZEICHEN
    Sonderzeichen in HTML darstellen
    FORM SONDERZEICHEN CHANGING ZEILE.
    DATA: S LIKE SY-SUBRC,
    LASTHIT LIKE SY-FDPOS,
    DUMMY(256).
    LASTHIT = 0.
    DO.
    DUMMY = ZEILE+LASTHIT.
    IF DUMMY CA '&'.
    REPLACE '&' WITH '&amp;' INTO DUMMY.
    ZEILE+LASTHIT = DUMMY.
    LASTHIT = SY-FDPOS + LASTHIT + 1.
    ELSE.
    EXIT.
    ENDIF.
    ENDDO.
    ÄÖÜäöüß<>"
    DO.
    S = 1.
    REPLACE 'Ä' WITH 'Ä'  INTO ZEILE.  S = S * SY-SUBRC / 4.
    REPLACE 'Ö' WITH 'Ö'  INTO ZEILE.  S = S * SY-SUBRC / 4.
    REPLACE 'Ü' WITH 'Ü'  INTO ZEILE.  S = S * SY-SUBRC / 4.
    REPLACE 'ä' WITH 'ä'  INTO ZEILE.  S = S * SY-SUBRC / 4.
    REPLACE 'ö' WITH 'ö'  INTO ZEILE.  S = S * SY-SUBRC / 4.
    REPLACE 'ü' WITH 'ü'  INTO ZEILE.  S = S * SY-SUBRC / 4.
    REPLACE 'ß' WITH 'ß' INTO ZEILE. S = S * SY-SUBRC / 4.
    REPLACE '<' WITH '&lt;'    INTO ZEILE. S = S * SY-SUBRC / 4.
    REPLACE '>' WITH '&gt;'    INTO ZEILE. S = S * SY-SUBRC / 4.
    REPLACE '"' WITH '&quot;'  INTO ZEILE. S = S * SY-SUBRC / 4.
    IF S = 1.EXIT.ENDIF.
    ENDDO.
    ENDFORM.                               " SONDERZEICHEN
    *&      Form  ZEILEUMB
          text
    FORM ZEILEUMB USING    VALUE(EINRUECKEN) LIKE CHAR2
               VALUE(TEXT).
    CONCATENATE TEXT '
    ' INTO TEXT.
    PERFORM ADDZEILE USING EINRUECKEN TEXT.
    ENDFORM.                               " ZEILEUMB
    *&      Form  CODELINES
    Schiebt die Zeilen aus sourcecode ins HTML-Format
    FORM CODELINES.
    DATA ZEILE(5).
    PERFORM ADDZEILE USING '>+' '
    LOOP AT SOURCECODE.
    Erst mal die Sonderzeichen ersetzen
    PERFORM SONDERZEICHEN CHANGING SOURCECODE-LINE.
    Bei einem Kommentar diesen Rot und kursiv darstellen
    IF SOURCECODE-LINE(1) = '*'.       " roter Kommentar
    CONCATENATE '+'
    SOURCECODE-LINE
    '+'
    INTO SOURCECODE-LINE.
    ENDIF.
    Bei Zeilennummerierung diese in dunkelblau dazustellen
    IF MITZEILE = 'X'.
    ZEILE = SY-TABIX.
    SHIFT SOURCECODE-LINE RIGHT BY 35 PLACES.
    CONCATENATE ''
    ZEILE
    INTO SOURCECODE-LINE(35).
    ENDIF.
    PERFORM ADDZEILE USING '' SOURCECODE-LINE.
    ENDLOOP.
    PERFORM ADDZEILE USING '->' '
    ENDFORM.                               " CODELINES
    *&      Form  WRITE_INCLUDES
          Die ganzen Includesources anfügen
    FORM WRITE_INCLUDES.
    DATA: FIRSTTIME.
    FIRSTTIME = 'X'.
    SELECT * FROM D010INC WHERE MASTER = PROGNAME.
    IF    SAPINCLD = 'X'
    AND D010INC-INCLUDE(1) = '<'.
    CONTINUE.
    ENDIF.
    IF FIRSTTIME = 'X'.
    PERFORM ADD_INCLUDES_HEADER.
    CLEAR FIRSTTIME.
    ENDIF.
    Die Namen der Includes merken und nacher am Anfang in den Quellcode
    als Navigationspunkte hinzufügen
    APPEND D010INC-INCLUDE TO INCLUDETAB.
    Namen und Quelltext schreiben
    PERFORM ADD_INCLUDE_NAME USING D010INC.
    READ REPORT D010INC-INCLUDE INTO SOURCECODE.
    PERFORM CODELINES.
    ENDSELECT.
    ENDFORM.                               " WRITE_INCLUDES
    *&      Form  ADD_INCLUDES_HEADER
       Für den 1. Include eine kleine Sonderbehandlung
    FORM ADD_INCLUDES_HEADER.
    HTMLCODE-LINE = ''. APPEND HTMLCODE.
    ENDFORM.                               " ADD_INCLUDES_HEADER
          FORM ADD_INCLUDE_NAME                                         *
    -->  UEBERGABE                                                     *
    FORM ADD_INCLUDE_NAME USING UEBERGABE LIKE D010INC.
    HTMLCODE-LINE = ' '. APPEND HTMLCODE.
    ENDFORM.                               " ADD_INCLUDE_NAME
    *&      Form  WRITE_TEXTELEMENTE
    Textelemente des Hauptprogramms auch noch ausgeben
    FORM WRITE_TEXTELEMENTE.
    PERFORM TEXTELEMENTE_HEADER.
    READ TEXTPOOL PROGNAME INTO TEXTELEMENTETAB.
    PERFORM HTML_TEXTELEMENTE USING 'im Hauptprogramm'.
    LOOP AT INCLUDETAB.
    READ TEXTPOOL INCLUDETAB-NAME INTO TEXTELEMENTETAB.
    CHECK SY-SUBRC = 0.
    PERFORM HTML_TEXTELEMENTE USING INCLUDETAB-NAME.
    ENDLOOP.
    ENDFORM.                               " WRITE_TEXTELEMENTE
    *&      Form  TEXTELEMENTE_HEADER
    FORM TEXTELEMENTE_HEADER.
    HTMLCODE-LINE = ''. APPEND HTMLCODE.
    ENDFORM.                               " TEXTELEMENTE_HEADER
    *&      Form  HTML_TEXTELEMENTE
          text
    FORM HTML_TEXTELEMENTE USING WOHER.
    DATA: WOHERNAME(80),
    TID(80),
    TKEY(80),
    TENTRY(80).
    WOHERNAME = WOHER.
    PERFORM SONDERZEICHEN CHANGING WOHERNAME.
    Das Ganze als Tabelle rauswerfen
    HTMLCODE-LINE = '
    '.APPEND HTMLCODE.
    CONCATENATE '
    ' WOHERNAME '' INTO HTMLCODE-LINE.APPEND HTMLCODE.
    HTMLCODE-LINE = '
    '.APPEND HTMLCODE.
    LOOP AT TEXTELEMENTETAB.
    TID    = TEXTELEMENTETAB-ID.
    TKEY   = TEXTELEMENTETAB-KEY.
    TENTRY = TEXTELEMENTETAB-ENTRY.
    und HTML-Sonderzeichen ersetzen
    PERFORM SONDERZEICHEN CHANGING TID.
    PERFORM SONDERZEICHEN CHANGING TKEY.
    PERFORM SONDERZEICHEN CHANGING TENTRY.
    HTMLCODE-LINE = ''.APPEND HTMLCODE.
    CONCATENATE '' INTO HTMLCODE-LINE.
    APPEND HTMLCODE.
    CONCATENATE '' INTO HTMLCODE-LINE.
    APPEND HTMLCODE.
    CONCATENATE '' INTO HTMLCODE-LINE.
    APPEND HTMLCODE.
    HTMLCODE-LINE = ''.APPEND HTMLCODE.
    ENDLOOP.
    HTMLCODE-LINE = '
    ' TID '
    ' TKEY '
    ' TENTRY '
    '.APPEND HTMLCODE.
    HTMLCODE-LINE = '
    '.APPEND HTMLCODE.
    ENDFORM.                               " HTML_TEXTELEMENTE
    Regards
    Rakesh

  • Page setup in report output

    hi
    I have more than 20 columns in horizontal format.
    How to set the report output including 20 columns

    Dear Rohit
    When I print Arabic content text files from OS
    the Arabic Characters are printing well. Also I have
    the necessary Arabic Fonts. When I reduce the Printing
    column size(for Repeated Frame)
    the Arabic Characters are print. But after
    print one page the junk characters are print. so pls
    reply for this issue.
    Ur's Shahul

  • Calling html file within web.show document as a report output

    /* this is blank html file included javascript for disabling mouse right click working fine*/
    WEB.SHOW_DOCUMENT ('http://prod.artisticmilliners.com:8000/files/file.html','_blank');
    /* this is oracle report output within model frame working fine*/
    WEB.SHOW_DOCUMENT ('javascript:void(window.open("'|| URL || '","","location=no,toolbar=no,menubar=no,status=no,"));self.close()','_self');
    I want to add show report output with right mouse click disable. Pleae guide how can i do it?

    Let me start by saying that disabling the right mouse will do nothing but frustrate users. It doesn't protect the page content from anything. There are various other ways to get the content from the page copied locally. And more importantly, this does not_ offer any kind of security.
    Ok, so you have decided to do it anyway ;)
    In order to make this happen, you would need to modify the report. I will assume that when you said "report" you meant Oracle Reports. Open the report file (.rdf) and edit the report's "Before Report Value".
    The default value is:
    <html>
    <head>
    <meta http-equiv="Content-Type"  content="text/html; charset=&Encoding">
    </head>
    <body dir=&Direction bgcolor="#ffffff">Change it to this:
    <html>
    <head>
    <meta http-equiv="Content-Type"  content="text/html; charset=&Encoding">
    </head>
    <script language="javascript">
    document.onmousedown=disableclick;
    status="Right Click Disabled";
    Function disableclick(e)
      if(event.button==2)
         alert(status);
         return false;   
    </script>
    <body oncontextmenu="return false" dir=&Direction bgcolor="#ffffff">Save the changes and retest.

  • Output mismatch between BEx query output and WebI Report output

    Hi All,
    I have a BEx query in which there are only characteristics placed in rows.
    There are combinations of the values of the characteristics giving different records in the query output.
    Date is one of the characterisctics in the query output.
    There is an output mismatch between the query output and the WebI report output in the following case:
    When there are 'Not Assigned' or '#' or blank values, there are additional entries(rows) in the WebI report, giving repeating or wrong entries in the Date field. This is incorrect data.
    Is this because of the  'Not Assigned' or '#' or blank values of the Characteristics or is there any other reason?
    How do I fix this?
    Please helo me with this.
    Thanks and Regards,
    Srilakshmi B

    Hi Rajesh,
    I need to verify the WebI report output for records with # and 'Not assigned' values for the cHracteristics in the report.
    So I cannot check the WebI report by hiding the # or Not assigned values.
    The problem is that in the Query output the records are like these shown below:
    Char1                    CHar2                          CHar3                       Date field
    A                             B                                 C                                Date1
    #(Not assgined)      #(Not assgined)      #(Not assgined)             No value
    Where as the WebI report output is as below:
    Char1                    CHar2                          CHar3                       Date field
    A                             B                                 C                                Date1
    #(Not assgined)      #(Not assgined)      #(Not assgined)            Date1
    As shown here, there are wrong/repeating entries for the Date field in the WebI report output.
    Please check this and let me know what could be the issue and how do I fix it.
    Thanks and Regards,
    Srilakshmi B

  • FM to display Selection screen on report output??

    Hi Experts,
    Is there an FM to display Selection screen on report output.
    Thanks In Advance.

    Hi Ashwin,
    Refer to below link
    http://help.sap.com/saphelp_nw04/helpdata/en/2a/755b94ca5911d299af5c9604c10e27/content.htm
    or
    The easiest way is to define your selection screen in the TOP include of your module pool.
    Then call the selection screen.
    Selection Screen
    selection-screen begin of screen 1010 as window title text-001.
    selection-screen begin of block b1 with frame title text-002.
    parameters: p_vornr type resb-vornr,
    p_refno(20) type c,
    p_plnid type zplcfg-plnid as listbox visible length 20,
    p_sorts type c as listbox visible length 20.
    selection-screen begin of line.
    selection-screen comment (20) text-004.
    selection-screen position 33.
    parameters: p_order as checkbox default 'X'.
    selection-screen end of line.
    selection-screen end of block b1.
    selection-screen end of screen 1010.
    Now call the selection screen.
    call selection-screen 1010.
    if sy-subrc = 0.
    perform get_production_orders.
    perform process_orders.
    endif.
    Thanks!!

Maybe you are looking for