Need Authorization Oject for a LE report

I have a Z report which is launched by a Ztcode and fetches all the information of packed items delivered by a vendor at a particular plant... providing supplier packinginformation(handling units) to upload to a local label system to print label for some products due to local country legal requirements. Data to be provided after launching Ztcode:
Purchase Order  :                           <>  to <>
Purchase Order Item :                     <> to <>
Purchase Order Creation Date :     <>  to  <>
Material Number              :               <>  to <>
Purchasing group            :              <>  to <>
Handling Unit Number       :              <> to <>
Inbound Delivery Number  :             <> to <>
Inbound Delivery Item         :            <> to <>
Inbound Delivery Creation Date:      <> to <>
Vendor Code    :                              <> to <>
Plant                   :                            <> to <>
Delivery Type    :                             <> to <>
Now I want to add an authority check for the Ztcode for the field "plant" while executing the report for a spedific duration.
Please provide the solution.
Edited by: santoshkc on Nov 10, 2011 11:43 AM

Thanks York.. I will check this and let you know.

Similar Messages

  • Need standrad program for vendor aging report

    Hi
      Need standrad program for vendor aging report.
    Please reply me only standrad programs.
    Point are sure.
    Regards,
    kumar

    Hi Pankaj
       sorry to say that this is not my required program.
    I need vendor aging report like s_alr_87012178 tc leads to customer aging report.
    Thanks for your effort.
    points are awarded.
    Regards,
    kumar

  • Need Authorization Object for SE11

    Dear All,
                   I have created role in PFCG and created user in su01.
                   I need authorization object for se11 and sm30.
    With Regards,
    Baskaran

    Hi,
    For the Authorization Object for any Tcode goto SE93 Enter the Tcode and press display
    S_DEVELOP
    Cheers
    Ram

  • Needed  sample program for emailing the report output

    hi all,
    neede sample program for emailing the report output

    Hi,
    Please refer this program for sending e-mail with attachment.
    ***INCLUDE ZHZLPP_CLZSN_DAILY_MIS_PRINT .
    *&      Form  print
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM print .
      DATA:  wa_output_options     TYPE ssfcompop,
             wa_control_parameters TYPE ssfctrlop,
             t_otfdata             TYPE ssfcrescl,
             t_pdf_tab             TYPE TABLE OF tline WITH HEADER LINE.
      DATA: t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE.
      DATA: w_filesize TYPE i.
      DATA: w_bin_filesize TYPE i.
      DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
      i_tline TYPE TABLE OF tline WITH HEADER LINE,
      v_form_name TYPE rs38l_fnam,
      v_len_in LIKE sood-objlen,
      w_return TYPE ssfcrescl.
      DATA : l_mean  TYPE p DECIMALS 2,
             l_mean1 TYPE p DECIMALS 2,
             l_mean2 TYPE p DECIMALS 2,
             l_mean3 TYPE p DECIMALS 4,
             temp    TYPE p DECIMALS 2,
             v_header LIKE zmisdisp3-remark,
             disp_d_kwh_mt TYPE zmisdisp5,
             disp_m_kwh_mt TYPE zmisdisp5,
             disp_d_mt_mw  TYPE zmisdisp5,
             disp_m_mt_mw  TYPE zmisdisp5,
             l_bptarget(16) TYPE p DECIMALS 2,
             l_act_d(16)    TYPE p DECIMALS 2,
             l_act_c(16)    TYPE p DECIMALS 2,
             l_pow_gen      TYPE p DECIMALS 2,
             l_pow_gen_d    TYPE p DECIMALS 2,
             l_pow_gen_c    TYPE p DECIMALS 2,
             l_no_of_days   TYPE p,
             disp_bptarget  TYPE zmisdisp5,
             disp_act_d     TYPE zmisdisp5,
             disp_act_c     TYPE zmisdisp5,
             disp_d_kwh     TYPE zmisdisp5,
             disp_c_kwh     TYPE zmisdisp5,
             disp_d_mw      TYPE zmisdisp5,
             disp_c_mw      TYPE zmisdisp5,
             disp_pow_gen_d TYPE zmisdisp5,
             disp_pow_gen_c TYPE zmisdisp5,
             disp_pow_gen   TYPE zmisdisp5,
             disp_ftd_h1    TYPE zmisdisp5,
             disp_ftd_h2    TYPE zmisdisp5,
             disp_ftd_h3    TYPE zmisdisp5,
             disp_ftd_h4    TYPE zmisdisp5,
             disp_ftd_h5    TYPE zmisdisp5,
             disp_ftd_o1    TYPE zmisdisp5,
             disp_ftd_o2    TYPE zmisdisp5,
             disp_ftd_o4    TYPE zmisdisp5,
             disp_ftd_o5    TYPE zmisdisp5,
             disp_***_o1    TYPE zmisdisp5,
             disp_***_o2    TYPE zmisdisp5,
             disp_***_o4    TYPE zmisdisp5,
             disp_***_o5    TYPE zmisdisp5,
             disp_cath_d    TYPE zmisdisp5,
             disp_cath_c    TYPE zmisdisp5,
             disp_anode_d   TYPE zmisdisp5,
             disp_anode_c   TYPE zmisdisp5,
             l_rec_con_d_kwh(16) TYPE p DECIMALS 2,
             l_rec_con_c_kwh(16) TYPE p DECIMALS 2,
             l_rec_con_d_mw(16)  TYPE p DECIMALS 2,
             l_rec_con_c_mw(16)  TYPE p DECIMALS 2,
             tot_kah      TYPE p DECIMALS 2,
             avg_kah      TYPE p DECIMALS 2,
             disp_tot_kah TYPE zmisdisp5,
             disp_avg_kah TYPE zmisdisp5,
             v_ftd_h1 TYPE p DECIMALS 2,
             v_ftd_h2 TYPE p DECIMALS 2,
             v_ftd_h3 TYPE p DECIMALS 2,
             v_ftd_h4 TYPE p DECIMALS 2,
             v_ftd_h5 TYPE p DECIMALS 2,
             v_ftd_o1 TYPE p DECIMALS 2,
             v_ftd_o2 TYPE p DECIMALS 2,
             v_ftd_o4 TYPE p DECIMALS 2,
             v_ftd_o5 TYPE p DECIMALS 2,
             v_***_o1 TYPE p DECIMALS 2,
             v_***_o2 TYPE p DECIMALS 2,
             v_***_o4 TYPE p DECIMALS 2,
             v_***_o5 TYPE p DECIMALS 2,
             l_cdiff1 LIKE imrg-cdiff,
             l_cdiff2 LIKE imrg-cdiff,
             l_cdiff3 LIKE imrg-cdiff,
             l_cdiff4 LIKE imrg-cdiff,
             l_path   LIKE rlgrap-filename,
             l_flag.
      DATA :prod_disp TYPE TABLE OF zmisdisp1 WITH HEADER LINE,
            keyp_disp TYPE TABLE OF zmisdisp2 WITH HEADER LINE,
            keyp_dis1 TYPE TABLE OF zmisdisp2 WITH HEADER LINE,
            rmat_disp TYPE TABLE OF zmisdisp4 WITH HEADER LINE,
            rcur_disp TYPE TABLE OF zmisdisp6 WITH HEADER LINE,
            rhrs_disp TYPE TABLE OF zmisdisp4 WITH HEADER LINE,
            brkd_disp TYPE TABLE OF zmisdisp7 WITH HEADER LINE.
      DEFINE fill_kpp.
        clear l_flag.
        loop at it_mic_data where kurztext = &1.
          l_mean1 = it_mic_data-mittelwert.
          l_mean = it_mic_data-mean.
          if l_flag = ' '.
            move : &2                     to keyp_disp-desc,
                   l_mean1                to keyp_disp-ftd.
            if     it_mic_data-kurztext = 'Ingot Pb SHG Zinc'.
              l_mean2 = v_mean_pbshg.
              move   l_mean2                to keyp_disp-avg.
            elseif it_mic_data-kurztext = 'Ingot Cu SHG Zinc'.
              l_mean2 = v_mean_cushg.
              move   l_mean2                to keyp_disp-avg.
            elseif it_mic_data-kurztext = 'Ingot Cd SHG Zinc'.
              l_mean2 = v_mean_cdshg.
              move   l_mean2                to keyp_disp-avg.
            elseif it_mic_data-kurztext = 'Ingot Fe SHG Zinc'.
              l_mean2 = v_mean_feshg.
              move   l_mean2                to keyp_disp-avg.
            elseif it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
              l_mean2 = v_mean_znshg.
              move   l_mean2                to keyp_disp-avg.
            else.
              move   l_mean                 to keyp_disp-avg.
            endif.
            if     it_mic_data-masseinhsw = 'GLI'.
              move 'g/l'                  to keyp_disp-unit.
            elseif it_mic_data-masseinhsw = 'PPM'.
              move 'ppm'                  to keyp_disp-unit.
            elseif it_mic_data-masseinhsw = 'NO'.
              move 'no'                   to keyp_disp-unit.
            else.
              move it_mic_data-masseinhsw to keyp_disp-unit.
            endif.
            append  keyp_disp.
            clear keyp_disp.
            move 'X' to l_flag.
          else.
            move : l_mean1                to keyp_disp-ftd.
            append  keyp_disp.
            clear keyp_disp.
          endif.
        endloop.
        if sy-subrc is not initial.
          move &2 to keyp_disp-desc.
          append  keyp_disp.
          clear keyp_disp.
        endif.
      END-OF-DEFINITION.
      DEFINE fill_kp1.
        clear l_flag.
        loop at it_mic_data where kurztext = &1.
          l_mean1 = it_mic_data-mittelwert.
          l_mean = it_mic_data-mean.
          if l_flag = ' '.
            move : &2                     to keyp_dis1-desc,
                   l_mean1                to keyp_dis1-ftd.
            if     it_mic_data-kurztext = 'Ingot Pb SHG Zinc'.
              l_mean2 = v_mean_pbshg.
              move   l_mean2                to keyp_dis1-avg.
            elseif it_mic_data-kurztext = 'Ingot Cu SHG Zinc'.
              l_mean2 = v_mean_cushg.
              move   l_mean2                to keyp_dis1-avg.
            elseif it_mic_data-kurztext = 'Ingot Cd SHG Zinc'.
              l_mean2 = v_mean_cdshg.
              move   l_mean2                to keyp_dis1-avg.
            elseif it_mic_data-kurztext = 'Ingot Fe SHG Zinc'.
              l_mean2 = v_mean_feshg.
              move   l_mean2                to keyp_dis1-avg.
            elseif it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
              l_mean3 = v_mean_znshg.
              move   l_mean3                to keyp_dis1-avg.
              clear  l_mean3.
              l_mean3 = it_mic_data-mittelwert.
              move   l_mean3                to keyp_dis1-ftd.
            else.
              move   l_mean                 to keyp_dis1-avg.
            endif.
            if     it_mic_data-masseinhsw = 'GLI'.
              move 'g/l'                  to keyp_dis1-unit.
            elseif it_mic_data-masseinhsw = 'PPM'.
              move 'ppm'                  to keyp_dis1-unit.
            elseif it_mic_data-masseinhsw = 'NO'.
              move 'no'                   to keyp_dis1-unit.
            else.
              move it_mic_data-masseinhsw to keyp_dis1-unit.
            endif.
            append  keyp_dis1.
            clear keyp_dis1.
            move 'X' to l_flag.
          else.
            if it_mic_data-kurztext = 'Ingot Zn SHG Zinc'.
              clear  l_mean3.
              l_mean3 = it_mic_data-mittelwert.
              move   l_mean3                to keyp_dis1-ftd.
            else.
              move : l_mean1                to keyp_dis1-ftd.
            endif.
            append  keyp_dis1.
            clear keyp_dis1.
          endif.
        endloop.
        if sy-subrc is not initial.
          move &2 to keyp_dis1-desc.
          append  keyp_dis1.
          clear keyp_dis1.
        endif.
      END-OF-DEFINITION.
    *FIRST PAGE
    ********PLANT HEADER
      MOVE 'CLZS HYDRO I PLANT - DAILY PRODUCTION REPORT' TO v_header.
    ********Production figure
      LOOP AT it_disp1.
        prod_disp-desc        = it_disp1-desc.
        prod_disp-d_plnmg     = it_disp1-d_plnmg.
        prod_disp-d_menge     = it_disp1-d_menge.
        prod_disp-u_plnmg     = it_disp1-u_plnmg.
        prod_disp-u_menge     = it_disp1-u_menge.
        prod_disp-avg         = it_disp1-avg.
        prod_disp-ask_rate    = it_disp1-ask_rate.
        prod_disp-m_plnmg     = it_disp1-m_plnmg.
        prod_disp-y_plnmg     = it_disp1-y_plnmg.
        prod_disp-y_menge     = it_disp1-y_menge.
        prod_disp-y_variance  = it_disp1-y_variance.
        APPEND prod_disp.
      ENDLOOP.
    ********Key performance parameters
      MOVE 'ROASTER :' TO keyp_disp-desc.
      APPEND  keyp_disp.
      fill_kpp '% S/S IN 45 DEG'            '  S/S in Calcine'.
      MOVE 'LEACHING :' TO keyp_disp-desc.
      APPEND  keyp_disp.
      fill_kpp '% S/S IN  CAL'              '  S/S in Calcine'.
      fill_kpp '%water soluble Zn'          '  W/S Zn in Jarosite Cake'.
      fill_kpp '%total Zn in HBF'           '  T/Zn in Jarosite cake'.
      fill_kpp 'ZINC IN CT'                 '  Zn in Conditioning tank'.
      fill_kpp 'g/l zn in neutral overflow' '  Zn in Electrolyte Prod (gpl)'.
      fill_kpp 'PPM CU IN PS25'             '  Purified Solution Cu'.
      fill_kpp 'PPM CADMIUM IN PS25'        '  Purified Solution Cd'.
      fill_kpp 'PPM COBALT IN PS25'         '  Purified Solution Co'.
      MOVE 'CELLHOUSE :' TO keyp_disp-desc.
      APPEND  keyp_disp.
      fill_kpp 'g/l zinc in cell feed'      '  Cell Feed Zinc gpl'.
      fill_kpp 'GPL ACID IN CELL FEED'      '  Cell Feed acidity gpl'.
      fill_kpp 'g/l manganese in cell feed' '  Cell Feed Mn gpl'.
      LOOP AT t_imrg_add_disp.
        MOVE:  t_imrg_add_disp-desc    TO keyp_disp-desc,
               t_imrg_add_disp-d_value TO keyp_disp-ftd,
               t_imrg_add_disp-c_value TO temp,
               temp                    TO keyp_disp-avg.
        IF t_imrg_add_disp-units = 'NO'.
          MOVE:  'no'                    TO keyp_disp-unit.
        ELSE.
          MOVE:  t_imrg_add_disp-units   TO keyp_disp-unit.
        ENDIF.
        APPEND keyp_disp.CLEAR keyp_disp.
      ENDLOOP.
      fill_kp1 'Ingot Pb SHG Zinc'          '  Ingot Pb SHG Zinc'.
      fill_kp1 'Ingot Cu SHG Zinc'          '  Ingot Cu SHG Zinc'.
      fill_kp1 'Ingot Cd SHG Zinc'          '  Ingot Cd SHG Zinc'.
      fill_kp1 'Ingot Fe SHG Zinc'          '  Ingot Fe SHG Zinc'.
      fill_kp1 'Ingot Zn SHG Zinc'          '  Ingot Zn SHG Zinc'.
    ********Cellhouse power
      CATCH SYSTEM-EXCEPTIONS bcd_zerodivide = 1.
        v_m_kwh_mt = v_ind8_m / cathode_recipt.
        v_m_mt_mw  = cathode_recipt / ( v_ind8_m / 24000 ).
      ENDCATCH.
      MOVE : v_d_kwh_mt TO disp_d_kwh_mt,
             v_m_kwh_mt TO disp_m_kwh_mt,
             v_d_mt_mw  TO disp_d_mt_mw,
             v_m_mt_mw  TO disp_m_mt_mw.
    *SECOND PAGE
    ********Raw Material
      LOOP AT it_disp3.
        rmat_disp-desc    = it_disp3-desc.
        rmat_disp-opstk   = it_disp3-opstk.
        rmat_disp-d_recpt = it_disp3-d_recpt.
        rmat_disp-u_recpt = it_disp3-u_recpt.
        rmat_disp-d_cons  = it_disp3-d_cons.
        rmat_disp-u_cons  = it_disp3-u_cons.
        rmat_disp-clstk   = it_disp3-clstk.
        APPEND rmat_disp.
      ENDLOOP.
    ********Work in Progress
    ********Finished Goods
    ********power consumption
      l_no_of_days = v_mm_en_dt+6(2).
      CATCH SYSTEM-EXCEPTIONS bcd_zerodivide = 1.
        l_bptarget   = ( v_bp_nrms_p * v_gross_d ) / l_no_of_days.
        l_act_d      = v_ind6_d + v_ind2_d - ( v_ind3_d + ( v_ind4_d / 2 ) ) - v_ind5_d.
        l_act_c      = v_ind6_m + v_ind2_m - ( v_ind3_m + ( v_ind4_m / 2 ) ) - v_ind5_m.
        l_pow_gen    = ( v_ind2_d / 1000 ) / v_ind7_d.
      ENDCATCH.
      l_pow_gen_d  = v_ind2_d / 1000.
      l_pow_gen_c  = v_ind9_m / 1000.
      l_rec_con_d_kwh = v_ind8_d.
      l_rec_con_c_kwh = v_ind8_m.
      l_rec_con_d_mw  = v_ind8_d / 24000.
      l_rec_con_c_mw  = v_ind8_m / ( 24000 * v_days_pased ).
      LOOP AT t_disp_curr.
        rcur_disp-time    = t_disp_curr-time.
        rcur_disp-current = t_disp_curr-current.
        rcur_disp-kah     = t_disp_curr-kah.
        APPEND rcur_disp.
        AT LAST.
          SUM.
          tot_kah = t_disp_curr-kah.
        ENDAT.
      ENDLOOP.
      avg_kah = tot_kah / '24'.
    *********************running hrs
      LOOP AT it_disp6.
        rhrs_disp-desc    = it_disp6-desc.
        rhrs_disp-opstk   = it_disp6-d_runhrs.
        rhrs_disp-d_recpt = it_disp6-m_runhrs.
        APPEND rhrs_disp.
      ENDLOOP.
      rhrs_disp-desc    = 'Turbo Generator'.
      rhrs_disp-opstk   = v_turbod.
      rhrs_disp-d_recpt = v_turboc.
      INSERT rhrs_disp INDEX 2.
    **********************BREAK_DOWN & OIL
      CLEAR value.
      LOOP AT itab2.
        IF itab2-equnr = 'NMZ-EH01G001'.
          PERFORM s_conversion_h.
          v_ftd_h1 = v_ftd_h1 + value.
          CLEAR value.
        ENDIF.
        IF itab2-equnr = 'NMZ-EH01G002'.
          PERFORM s_conversion_h.
          v_ftd_h2 = v_ftd_h2 + value.
          CLEAR value.
        ENDIF.
        IF itab2-equnr = 'NMZ-EH01V003'.
          PERFORM s_conversion_h.
          v_ftd_h3 = v_ftd_h3 + value.
          CLEAR value.
        ENDIF.
        IF itab2-equnr = 'NMZ-EH01V001'.
          PERFORM s_conversion_h.
          v_ftd_h4 = v_ftd_h4 + value.
          CLEAR value.
        ENDIF.
        IF itab2-equnr = 'NMZ-EH01V002'.
          PERFORM s_conversion_h.
          v_ftd_h5 = v_ftd_h5 + value.
          CLEAR value.
        ENDIF.
      ENDLOOP.
      LOOP AT t_oil.
        AT END OF ind.
          SUM.
          IF t_oil-ind = 1.
            v_***_o1 = t_oil-cdiff * 1000.
          ELSEIF t_oil-ind = 2.
            v_***_o2 = t_oil-cdiff * 1000.
          ELSEIF t_oil-ind = 3.
            v_***_o4 = t_oil-cdiff * 1000.
          ELSEIF t_oil-ind = 4.
            v_***_o5 = t_oil-cdiff * 1000.
          ENDIF.
        ENDAT.
        IF t_oil-idate = p_repdt.
          IF t_oil-ind = 1.
            l_cdiff1 = l_cdiff1 + t_oil-cdiff.
          ELSEIF t_oil-ind = 2.
            l_cdiff2 = l_cdiff2 + t_oil-cdiff.
          ELSEIF t_oil-ind = 3.
            l_cdiff3 = l_cdiff3 + t_oil-cdiff.
          ELSEIF t_oil-ind = 4.
            l_cdiff4 = l_cdiff4 + t_oil-cdiff.
          ENDIF.
        ENDIF.
      ENDLOOP.
      v_ftd_o1 = l_cdiff1 * 1000.
      v_ftd_o2 = l_cdiff2 * 1000.
      v_ftd_o4 = l_cdiff3 * 1000.
      v_ftd_o5 = l_cdiff4 * 1000.
    *********Breakdown details----3rd page
      LOOP AT itab INTO wa.
        CALL FUNCTION 'FLTP_CHAR_CONVERSION'
          EXPORTING
            decim = 0
            expon = 0
            input = wa-auszt
            ivalu = 'X'
          IMPORTING
            flstr = wk_char_auszt.
        CONDENSE wk_char_auszt NO-GAPS.
        wk_flt_auszt = wk_char_auszt.
        wk_flt_auszt = wk_flt_auszt / 3600.
        duration = wk_flt_auszt.
        brkd_disp-eqdesc = wa-eqktx.
        brkd_disp-nodesc = wa-qmtxt.
        brkd_disp-hrs    = duration.
        APPEND brkd_disp.
      ENDLOOP.
      MOVE : v_ftd_h1 TO disp_ftd_h1,
             v_ftd_h2 TO disp_ftd_h2,
             v_ftd_h3 TO disp_ftd_h3,
             v_ftd_h4 TO disp_ftd_h4,
             v_ftd_h5 TO disp_ftd_h5,
             v_ftd_o1 TO disp_ftd_o1,
             v_ftd_o2 TO disp_ftd_o2,
             v_ftd_o4 TO disp_ftd_o4,
             v_ftd_o5 TO disp_ftd_o5,
             v_***_o1 TO disp_***_o1,
             v_***_o2 TO disp_***_o2,
             v_***_o4 TO disp_***_o4,
             v_***_o5 TO disp_***_o5,
             l_bptarget      TO disp_bptarget,
             l_act_d         TO disp_act_d,
             l_act_c         TO disp_act_c,
             l_rec_con_d_kwh TO disp_d_kwh,
             l_rec_con_c_kwh TO disp_c_kwh,
             l_rec_con_d_mw  TO disp_d_mw,
             l_rec_con_c_mw  TO disp_c_mw,
             tot_kah         TO disp_tot_kah,
             avg_kah         TO disp_avg_kah,
             l_pow_gen       TO disp_pow_gen,
             l_pow_gen_d     TO disp_pow_gen_d,
             l_pow_gen_c     TO disp_pow_gen_c,
             v_cath_d        TO disp_cath_d,
             v_cath_c        TO disp_cath_c,
             v_anode_d       TO disp_anode_d,
             v_anode_c       TO disp_anode_c.
      wa_output_options-tdimmed = 'X'.
      wa_control_parameters-device = 'PRINTER'.
      wa_control_parameters-preview = 'X'.
      IF rb3 = 'X'.
        wa_control_parameters-getotf  = 'X'.
        wa_control_parameters-no_dialog = 'X'.
      ENDIF.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = 'ZHZLPP_CLZSN_DAILY_MIS'
        IMPORTING
          fm_name            = v_form_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
      ENDIF.
      CALL FUNCTION v_form_name
        EXPORTING
          control_parameters         = wa_control_parameters
          output_options             = wa_output_options
          user_settings              = 'X'
          header                     = v_header
          date                       = p_repdt
          l_bptarget                 = disp_bptarget
          l_act_d                    = disp_act_d
          l_act_c                    = disp_act_c
          disp_d_kwh                 = disp_d_kwh
          disp_c_kwh                 = disp_c_kwh
          disp_d_mw                  = disp_d_mw
          disp_c_mw                  = disp_c_mw
          disp_tot_kah               = disp_tot_kah
          disp_avg_kah               = disp_avg_kah
          disp_d_kwh_mt              = disp_d_kwh_mt
          disp_m_kwh_mt              = disp_m_kwh_mt
          disp_d_mt_mw               = disp_d_mt_mw
          disp_m_mt_mw               = disp_m_mt_mw
          disp_pow_gen               = disp_pow_gen
          disp_pow_gen_d             = disp_pow_gen_d
          disp_pow_gen_c             = disp_pow_gen_c
          disp_ftd_h1                = disp_ftd_h1
          disp_ftd_h2                = disp_ftd_h2
          disp_ftd_h3                = disp_ftd_h3
          disp_ftd_h4                = disp_ftd_h4
          disp_ftd_h5                = disp_ftd_h5
          disp_ftd_o1                = disp_ftd_o1
          disp_ftd_o2                = disp_ftd_o2
          disp_ftd_o4                = disp_ftd_o4
          disp_ftd_o5                = disp_ftd_o5
          disp_***_o1                = disp_***_o1
          disp_***_o2                = disp_***_o2
          disp_***_o4                = disp_***_o4
          disp_***_o5                = disp_***_o5
          disp_cath_d                = disp_cath_d
          disp_cath_c                = disp_cath_c
          disp_anode_d               = disp_anode_d
          disp_anode_c               = disp_anode_c
      IMPORTING
        job_output_info              = w_return           " .    
        TABLES
          prod_tab                   = prod_disp
          keyp_tab                   = keyp_disp
          remk_tab                   = it_remarks
          rmat_tab                   = rmat_disp
          rwip_tab                   = it_disp4
          rfng_tab                   = it_disp_fg
          rcur_tab                   = rcur_disp
          rhrs_tab                   = rhrs_disp
          brkd_tab                   = brkd_disp
          keyp_tab1                  = keyp_dis1
        EXCEPTIONS
          formatting_error           = 1
          internal_error             = 2
          send_error                 = 3
          user_canceled              = 4
          OTHERS                     = 5
      IF sy-subrc <> 0.
        MESSAGE 'Error in printing form' TYPE 'I'.
      ENDIF.
    ********Downloading in pdf format.
      IF rb3 = 'X'.
        IF l_usract <> 9.
          MOVE fullpath TO l_path.
          i_otf[] = w_return-otfdata[].
          CALL FUNCTION 'CONVERT_OTF'                   "
            EXPORTING
              format                = 'PDF'
              max_linewidth         = 132
            IMPORTING
              bin_filesize          = v_len_in
            TABLES
              otf                   = i_otf
              lines                 = i_tline
            EXCEPTIONS
              err_max_linewidth     = 1
              err_format            = 2
              err_conv_not_possible = 3
              OTHERS                = 4.
          IF sy-subrc <> 0.
          ENDIF.
          CALL FUNCTION 'WS_DOWNLOAD'
            EXPORTING
              bin_filesize            = v_len_in
              filename                = l_path
              filetype                = 'BIN'
            IMPORTING
              filelength              = w_filesize
            TABLES
              data_tab                = i_tline
            EXCEPTIONS
              file_open_error         = 1
              file_write_error        = 2
              invalid_filesize        = 3
              invalid_type            = 4
              no_batch                = 5
              unknown_error           = 6
              invalid_table_width     = 7
              gui_refuse_filetransfer = 8
              customer_error          = 9
              OTHERS                  = 10.
          IF sy-subrc = 0.
            MESSAGE 'File downloaded successfully' TYPE 'S'.
          ENDIF.
        ENDIF.
      ENDIF.
      IF sy-batch = 'X'.               " SENDING MAILS IF SCHEDULED IN BACKGROUND
        DATA: formname           TYPE tdsfname,
              fm_name            TYPE rs38l_fnam,
              control_parameters TYPE ssfctrlop,
              output_options     TYPE ssfcompop,
              job_output_info    TYPE ssfcrescl,
              otf_data           TYPE tsfotf.
        DATA: otf                TYPE TABLE OF itcoo WITH HEADER LINE,
              doctab_archive     TYPE TABLE OF docs WITH HEADER LINE,
              lines              TYPE TABLE OF tline WITH HEADER LINE,
              bin_filesize       TYPE i.
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
          EXPORTING
            formname           = 'ZHZLPP_CLZSN_DAILY_MIS'
          IMPORTING
            fm_name            = v_form_name
          EXCEPTIONS
            no_form            = 1
            no_function_module = 2
            OTHERS             = 3.
        IF sy-subrc <> 0.
        ENDIF.
        control_parameters-no_dialog = 'X'.
        control_parameters-getotf    = 'X'.
        CALL FUNCTION v_form_name
          EXPORTING
            control_parameters = control_parameters
            header             = v_header
            date               = p_repdt
            l_bptarget         = disp_bptarget
            l_act_d            = disp_act_d
            l_act_c            = disp_act_c
            disp_d_kwh         = disp_d_kwh
            disp_c_kwh         = disp_c_kwh
            disp_d_mw          = disp_d_mw
            disp_c_mw          = disp_c_mw
            disp_tot_kah       = disp_tot_kah
            disp_avg_kah       = disp_avg_kah
            disp_d_kwh_mt      = disp_d_kwh_mt
            disp_m_kwh_mt      = disp_m_kwh_mt
            disp_d_mt_mw       = disp_d_mt_mw
            disp_m_mt_mw       = disp_m_mt_mw
            disp_pow_gen       = disp_pow_gen
            disp_pow_gen_d     = disp_pow_gen_d
            disp_pow_gen_c     = disp_pow_gen_c
            disp_ftd_h1        = disp_ftd_h1
            disp_ftd_h2        = disp_ftd_h2
            disp_ftd_h3        = disp_ftd_h3
            disp_ftd_h4        = disp_ftd_h4
            disp_ftd_h5        = disp_ftd_h5
            disp_ftd_o1        = disp_ftd_o1
            disp_ftd_o2        = disp_ftd_o2
            disp_ftd_o4        = disp_ftd_o4
            disp_ftd_o5        = disp_ftd_o5
            disp_***_o1        = disp_***_o1
            disp_***_o2        = disp_***_o2
            disp_***_o4        = disp_***_o4
            disp_***_o5        = disp_***_o5
            disp_cath_d        = disp_cath_d
            disp_cath_c        = disp_cath_c
            disp_anode_d       = disp_anode_d
            disp_anode_c       = disp_anode_c
          IMPORTING
            job_output_info    = job_output_info
          TABLES
            prod_tab           = prod_disp
            keyp_tab           = keyp_disp
            remk_tab           = it_remarks
            rmat_tab           = rmat_disp
            rwip_tab           = it_disp4
            rfng_tab           = it_disp_fg
            rcur_tab           = rcur_disp
            rhrs_tab           = rhrs_disp
            brkd_tab           = brkd_disp
            keyp_tab1          = keyp_dis1
          EXCEPTIONS
            formatting_error   = 1
            internal_error     = 2
            send_error         = 3
            user_canceled      = 4
            OTHERS             = 5.
        IF sy-subrc = 0.
          otf_data = job_output_info-otfdata[].
          CALL FUNCTION 'CONVERT_OTF_2_PDF'
            IMPORTING
              bin_filesize           = bin_filesize
            TABLES
              otf                    = otf_data[]
              doctab_archive         = doctab_archive[]
              lines                  = lines[]
            EXCEPTIONS
              err_conv_not_possible  = 1
              err_otf_mc_noendmarker = 2
              OTHERS                 = 3.
          IF sy-subrc = 0.
            SUBMIT rsconn01 with mode = 'INT' AND RETURN.
    *                                    ----<<distrubution list>>----
            PERFORM mail_users TABLES lines USING 'MIS-HY1A' v_header.   " Donot put more than 8 email-ids
            PERFORM mail_users TABLES lines USING 'MIS-HY1B' v_header.   " in a distribution list
            PERFORM mail_users TABLES lines USING 'MIS-HY1C' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1D' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1E' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1F' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1G' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1H' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1I' v_header.
            PERFORM mail_users TABLES lines USING 'MIS-HY1J' v_header.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    " print
    *&      Form  get_download_path
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM get_download_path .
      CALL FUNCTION 'GUI_FILE_SAVE_DIALOG'
        EXPORTING
          window_title      = 'Download as pdf file'
          default_extension = 'pdf'
        IMPORTING
          fullpath          = fullpath
          user_action       = l_usract.
      IF l_usract = '9'.
        STOP.
      ENDIF.
    ENDFORM.                    " get_download_path
    *&      Form  mail_users
    *       text
    *      -->P_LINES  text
    *      -->P_2153   text
    *      -->P_V_HEADER  text
    FORM mail_users  TABLES   p_lines STRUCTURE tline
                     USING    p_dist_list
                              p_v_header.
      CONSTANTS: c_raw TYPE so_obj_tp VALUE 'RAW',
                 c_pdf TYPE so_obj_tp VALUE 'PDF',
                 c_255 TYPE i VALUE 255,
                 c_134 TYPE i VALUE 134,
                 c_x   TYPE c VALUE 'X'.
      DATA: document_data LIKE sodocchgi1 ,
            tab_lines     TYPE i,
            contents_txt  TYPE TABLE OF solisti1 WITH HEADER LINE,
            contents_bin  TYPE TABLE OF solisti1 WITH HEADER LINE,
            packing_list  TYPE TABLE OF sopcklsti1 WITH HEADER LINE,
            object_header TYPE TABLE OF solisti1 WITH HEADER LINE,
            receivers     TYPE TABLE OF somlreci1 WITH HEADER LINE,
            l_str(255) ,
            v1 TYPE i,
            v2 TYPE i,
            v3 TYPE i.
      document_data-obj_name  = 'EMAIL'.
      document_data-obj_descr = p_v_header.  " SUBJECT LINE
      CONCATENATE 'Please find the attached SAP generated Daily Production Report for the day'
                  p_repdt+6(2)
                  p_repdt+4(2)
                  '.' p_repdt+0(4)
             INTO contents_txt.
      APPEND      contents_txt.
      CLEAR       contents_txt.
      APPEND      contents_txt.
      APPEND      contents_txt.
      DESCRIBE TABLE contents_txt LINES tab_lines.
      READ TABLE     contents_txt INDEX tab_lines.
      document_data-doc_size  = ( tab_lines - 1 ) * 255 + STRLEN( contents_txt ).
      document_data-doc_size  = tab_lines .
      CLEAR packing_list-transf_bin.
      packing_list-head_start = 1.
      packing_list-head_num   = 0.
      packing_list-body_start = 1.
      packing_list-body_num   = tab_lines.
      packing_list-doc_type   = c_raw.
      packing_list-doc_size   = document_data-doc_size.
      APPEND packing_list.
      LOOP AT p_lines.
        CLEAR l_str.
        l_str+0(2)   = p_lines-tdformat.
        l_str+2(132) = p_lines-tdline.
        v2 = v1 + c_134.
        IF v2 LE c_255.
          contents_bin-line+v1(c_134) = l_str. v1 = v2.
        ELSE.
          v3 = v2 - c_255.
          v2 = c_255 - v1.
          IF NOT v2 IS INITIAL.
            contents_bin-line+v1(v2) = l_str+0(v2).
          ENDIF.
          APPEND contents_bin.
          CLEAR  contents_bin.
          v1 = v3.
          v3 = 134 - v1.
          IF NOT v1 IS INITIAL.
            contents_bin-line+0(v1) = l_str+v3(v1).
          ENDIF.
        ENDIF.
      ENDLOOP.
      APPEND contents_bin.
      CLEAR  contents_bin.
      DESCRIBE TABLE contents_bin LINES tab_lines.
      READ     TABLE contents_bin INDEX tab_lines.
      CONCATENATE 'Hy-I Report'
                  p_repdt+6(2)
                  p_repdt+4(2)
                  '.' p_repdt+0(4)
                  '.pdf'
             INTO object_header.
      APPEND object_header.
      packing_list-transf_bin = c_x.
      packing_list-head_start = 1.
      packing_list-head_num   = 1.
      packing_list-body_start = 1.
      packing_list-body_num   = tab_lines.
      packing_list-doc_type   = c_pdf.
      packing_list-obj_name   = 'text1'.
      packing_list-obj_descr  = 'Production report'.
      packing_list-doc_size   = tab_lines * 255 + STRLEN( contents_bin ).
      APPEND packing_list.
      receivers-receiver      = p_dist_list.
      receivers-rec_type      = 'C'.
      APPEND receivers.
      CLEAR  receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
        EXPORTING
          document_data              = document_data
          put_in_outbox              = ' '
          SENDER_ADDRESS             = 'CZPPPLG'
          SENDER_ADDRESS_TYPE        = 'B'
          commit_work                = 'X'
        TABLES
          packing_list               = packing_list
          object_header              = object_header
          contents_bin               = contents_bin
          contents_txt               = contents_txt
          receivers                  = receivers
        EXCEPTIONS
          too_many_receivers         = 1
          document_not_sent          = 2
          document_type_not_exist    = 3
          operation_no_authorization = 4
          parameter_error            = 5
          x_error                    = 6
          enqueue_error              = 7
          OTHERS                     = 8.
      IF sy-subrc = 0.
        WAIT UP TO 2 SECONDS.
        SUBMIT rsconn01 with mode = 'INT' AND RETURN.
      ENDIF.
    ENDFORM.                    " mail_users

  • Authorization object for running a report in background

    Good day experts,
    I tried running a report in background, I choose immediately so that it doesn't have to be scheduled. But when I checked it in my own jobs, It remains at scheduled status. When I tried it on my admin account, It works and with status finished. It seems to be an authorization problem. What object could I be missing with my user account? I tried S_TCODE SMX and SP02 but still not working.
    Thanks in advance!

    Hi karshbax,
    What you're looking for is authorization object S_BTCH_JOB. You need authorization for field JOBACTION = RELE.
    In future use transaction SU53. It shows last error authorization error, so if this is authorization problem then after try of manual releasing of job you'll find in SU53 precise info what went wrong.
    Best Regards
    Marcin Cholewczuk

  • Need a program for  Y/Z report (extended report ) in START_REPORT

    Hi,
    Am trying to execute a Y transaction (report ) which is called by start_report transaction. Pls find the details below.
    D_SREPOVARI-REPORTTYPE= RE
    D_SREPOVARI-REPORT=
    D_SREPOVARI-EXTDREPORT= KP  01RPSCO_X                       Z12KST1D4
    I want to execute this by using SUBMIT statement, for that need a program name of Y report . Let me know the prog name /  How to execute this type of reports ?
    Thanks in advance.
    Best regards,
    Shasidhar.C

    Hi ,
    Am trying to execute a Y/S transaction ( extended reports S_ALR_87013559 / S_ALR_87013557 / Y_DVE_38000074 / Y_DVE_38000044 ) in a custom report. The transactions are related to budget/cost/planing reports in PS module.  In se 93, that is called by START_REPORT transaction with the below mentioned details.
    D_SREPOVARI-REPORTTYPE= RE                                                             "report type
    D_SREPOVARI-REPORT=
    D_SREPOVARI-EXTDREPORT= KP 01RPSCO_X            Z12KST1D4         "extended report
    The Y/S transaction program is varying from client to client. We are using ECC6.0 version.
    Thanks & Regards,
    Shasidhar.C

  • Need a Demo for creating a report painter

    Hi,
    I am new to report painter. i have already gone through some documents but i dint get a clear idea.
    Can anyone give a demo for creating a Report Painter?
    Thanks in advance.
    Regards.

    hi
    you can refer to following links
    http://help.sap.com/saphelp_47x200/helpdata/en/eb/1377e443c411d1896f0000e8322d00/frameset.htm
    For Report Painter
    http://help.sap.com/saphelp_47x200/helpdata/en/66/bc7d2543c211d182b30000e829fbfe/content.htm
    For Report Writer
    http://help.sap.com/saphelp_47x200/helpdata/en/66/bc7dc143c211d182b30000e829fbfe/content.htm
    Refer the following links :
    http://www.virtuosollc.com/PDF/Get_Reporter.pdf
    http://sap.ittoolbox.com/groups/technical-functional/sap-r3-other/accessing-tables-using-report-painterwriter-98766
    http://help.sap.com/saphelp_47x200/helpdata/en/da/6ada3889432f48e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_bw31/helpdata/en/66/bc7d2543c211d182b30000e829fbfe/frameset.htm
    this may help you
    regards

  • I need a code for VENDOR AGEING REPORT

    plz help me i am in urgent need of source code of
    VENDOR AGEING REPORT.
    if any body help me regarding this above report i will be
    great ful to him/her.
    bcoz deadline is today.
    i  need ur urgent help, i treid very much but i failed,
    so hope help from anybody there.

    REPORT  zvender_os NO STANDARD PAGE  HEADING
                                  LINE-SIZE 132
                                  LINE-COUNT 65.
    Tables
    TABLES: bsik,          "open items (A/C: Secondary Index for Customers)
            lfa1,          "customer master
            lfb1,
            rf140,        "temp stru (Work Fields for Corrence(SAPF140*))
            bsak,          "cleared items (A/c Secnd Index for Cust(Clrms))
            skat.
    constants and variables
    TYPE-POOLS: slis.
    DATA: fieldcat             TYPE slis_t_fieldcat_alv,
          fieldcat1             TYPE slis_t_fieldcat_alv,
          fieldcat_ln          TYPE slis_fieldcat_alv,
          layout_in            TYPE slis_layout_alv,
          layout_in1           TYPE slis_layout_alv,
          sortcat              TYPE slis_t_sortinfo_alv,
          sortcat1              TYPE slis_t_sortinfo_alv,
          sortcat_ln           LIKE LINE OF sortcat,
          eventcat1             TYPE slis_t_event,
          eventcat             TYPE slis_t_event,
          eventcat_ln          LIKE LINE OF eventcat,
          col_pos              TYPE i.
    DATA:  targ_month(2)         TYPE n,                        "0001
           targ_year(4)          TYPE n,                        "0001
           targ_mth_abs          TYPE p,                        "0001
           doc_month(2)          TYPE n,                        "0001
           doc_year(4)           TYPE n,                        "0001
           doc_mth_abs           TYPE p,                        "0001
           mth_result            TYPE p,                        "0001
           doc_days              TYPE p,
           targ_days             TYPE p,
           addl_days             TYPE p,
           ext_days              TYPE p,
           v_days(3)             TYPE c,
           v_kkber               LIKE knkk-kkber.
    DATA:
          BEGIN OF inrec OCCURS 1000,                           "0001
            lifnr    LIKE bsik-lifnr,
            belnr    LIKE bsik-belnr,
            gjahr    LIKE bsik-gjahr,
            bldat    LIKE bsik-bldat,
            xblnr    LIKE bsik-xblnr,
            blart    LIKE bsik-blart,
            sgtxt    LIKE bsik-sgtxt,
            shkzg    LIKE bsik-shkzg,
            dmbtr    LIKE bsik-dmbtr,
            zfbdt    LIKE bsik-zfbdt,
            zbd1t    LIKE bsik-zbd1t,
            zbd2t    LIKE bsik-zbd2t,
            zbd3t    LIKE bsik-zbd3t,
            zuonr    LIKE bsik-zuonr,
          END OF inrec.
    DATA:
          BEGIN OF inrect OCCURS 1000,                          "0001
            lifnr    LIKE bsik-lifnr,
            belnr    LIKE bsik-belnr,
            gjahr    LIKE bsik-gjahr,
            bldat    LIKE bsik-bldat,
            xblnr    LIKE bsik-xblnr,
            blart    LIKE bsik-blart,
            sgtxt    LIKE bsik-sgtxt,
            shkzg    LIKE bsik-shkzg,
            dmbtr    LIKE bsik-dmbtr,
            zfbdt    LIKE bsik-zfbdt,
            zbd1t    LIKE bsik-zbd1t,
            zbd2t    LIKE bsik-zbd2t,
            zbd3t    LIKE bsik-zbd3t,
            zuonr    LIKE bsik-zuonr,
          END OF inrect,
          BEGIN OF t_item OCCURS 1000,                          " 0001
            lifnr LIKE bsik-lifnr,
            belnr LIKE bsik-belnr,
            gjahr LIKE bsik-gjahr,
            bldat LIKE bsik-bldat,
            xblnr LIKE bsik-xblnr,
            blart LIKE bsik-blart,
            sgtxt LIKE bsik-sgtxt,
            zfbdt LIKE bsik-zfbdt,
            dmbtr LIKE bsik-dmbtr,
            days(3)  TYPE c,
            zuonr    LIKE bsik-zuonr,
          END OF t_item,
          t_line LIKE t_item OCCURS 1000 WITH HEADER LINE,      " 0001
          BEGIN OF itab OCCURS 1000,
            lifnr    LIKE lfa1-lifnr,
            total    LIKE bsik-dmbtr,
            zfuture  LIKE bsik-dmbtr,
            zcurrent LIKE bsik-dmbtr,
            crbal   LIKE bsik-dmbtr,
            30days   LIKE bsik-dmbtr,
            60days   LIKE bsik-dmbtr,
            90days   LIKE bsik-dmbtr,
            99days   LIKE bsik-dmbtr,
            120days  LIKE bsik-dmbtr,
            180days  LIKE bsik-dmbtr,
            365days  LIKE bsik-dmbtr,
            bzirk    LIKE knvv-bzirk,
            vkbur    LIKE knvv-vkbur,
            vwerk    LIKE knvv-vwerk,
            vkgrp    LIKE knvv-vkgrp,
            klimk    LIKE knkk-klimk,
            cashd    LIKE knkk-cashd,
            grupp    LIKE knkk-grupp,
            erdat    LIKE lfa1-erdat,
            name1    LIKE lfa1-name1,
            name2    LIKE lfa1-name2,
            stras    LIKE lfa1-stras,
            ort01    LIKE lfa1-ort01,
            telf1    LIKE lfa1-telf1,
            psort(10),
            sperr    LIKE lfa1-sperr,
            totsal   LIKE bsik-dmbtr,
            txt50    LIKE skat-txt50,
            gsber    LIKE bsik-gsber,
          END OF itab.
    DATA: sel_tab     TYPE TABLE OF rsparams WITH HEADER LINE,
          p_debit(1) TYPE c,
          p_credit(1) TYPE c.
    DATA: t_variant LIKE disvariant OCCURS 0 WITH HEADER LINE.
    parameters and select-options
    SELECTION-SCREEN BEGIN OF BLOCK blck0 WITH FRAME TITLE text-002.
    PARAMETERS: stida LIKE sy-datum DEFAULT sy-datum OBLIGATORY,
                p_bukrs LIKE t001-bukrs DEFAULT 'PIIL' MEMORY ID buk
    OBLIGATORY.
              P_BUKRS LIKE T001-BUKRS DEFAULT 'CC01' OBLIGATORY.  "0003
    SELECT-OPTIONS: s_lifnr   FOR bsik-lifnr ,
                   s_vkbur FOR knvv-vkbur,
                   s_vkgrp FOR knvv-vkgrp,
                   s_bzirk FOR knvv-bzirk,
                   s_konda FOR knvv-konda,
                   s_kdgrp FOR knvv-kdgrp NO-DISPLAY ,
                   s_kvgr2 FOR knvv-kvgr2 NO-DISPLAY ,
                   s_kkber FOR knkk-kkber NO-DISPLAY ,
                   s_grupp FOR knkk-grupp NO-DISPLAY ,
                   s_ctlpc FOR knkk-ctlpc,
                    s_akont FOR lfb1-akont,
                    s_gsber FOR bsik-gsber.
    PARAMETERS: p_future AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK blck0.
    SELECTION-SCREEN BEGIN OF BLOCK blck1 WITH FRAME TITLE text-002.
    PARAMETERS: p_abs RADIOBUTTON GROUP zrad,
                p_due RADIOBUTTON GROUP zrad DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK blck1.
    *SELECTION-SCREEN BEGIN OF BLOCK blck2 WITH FRAME TITLE text-003.
    *PARAMETERS: c_run RADIOBUTTON GROUP zrac DEFAULT 'X',
               c_blk RADIOBUTTON GROUP zrac,
               c_all RADIOBUTTON GROUP zrac.
    *SELECTION-SCREEN END OF BLOCK blck2.
    *SELECTION-SCREEN BEGIN OF BLOCK blck3 WITH FRAME TITLE text-004.
    *PARAMETERS: p_debit AS CHECKBOX DEFAULT 'X' ,
               p_credit AS CHECKBOX DEFAULT 'X' NO-DISPLAY,
    *selection-screen end of block blck3.
    start-of-selection.
    START-OF-SELECTION.
    PERFORM BUILD_EVENTCAT.
      p_debit = 'X'.
      p_credit = 'X'.
      PERFORM get_customer_invoices.
    filter records based on selection criteria
      PERFORM filter_records.
    END-OF-SELECTION.
      PERFORM add_sort_field.
      PERFORM modify_field.
      PERFORM write_report.
    *&      Form  FILTER_RECORDS
          To collect all the required data from DB and store them in
          internal table.
    -->  p1        text
    <--  p2        text
    FORM filter_records.
    delete records based on selection criteria
      LOOP AT itab.
       SELECT vkbur vkgrp vwerk erdat konda kdgrp bzirk kvgr2
         INTO (itab-vkbur, itab-vkgrp, itab-vwerk, knvv-erdat,
               knvv-konda, knvv-kdgrp,itab-bzirk,knvv-kvgr2)
         FROM knvv WHERE lifnr =  itab-lifnr
                   ORDER BY erdat DESCENDING.
    AKS :- Not Required for PI
         CASE itab-vkbur.
           WHEN 'SA1'.
             itab-vkbur = 'SF25'.
           WHEN 'QLD1'.
             itab-vkbur = 'SF23'.
           WHEN 'WA1'.
             itab-vkbur = 'SF26'.
         ENDCASE.
    AKS.
         EXIT.
       ENDSELECT.
       IF itab-vkbur IN s_vkbur AND
          itab-vkgrp IN s_vkgrp AND
          knvv-konda IN s_konda AND
          knvv-kdgrp IN s_kdgrp AND
          itab-bzirk IN s_bzirk AND
          knvv-kvgr2 IN s_kvgr2.
       ELSE.
         DELETE itab.
         CONTINUE.
       ENDIF.
       SELECT SINGLE klimk grupp cashd
         INTO (itab-klimk, itab-grupp, itab-cashd)
         FROM knkk WHERE lifnr =  itab-lifnr
                   AND   kkber IN s_kkber
                   AND   ctlpc IN s_ctlpc
                   AND   grupp IN s_grupp.
       IF SY-SUBRC NE 0.
         DELETE ITAB.
         CONTINUE.
       ENDIF.
        SELECT SINGLE skat~txt50
             INTO (itab-txt50)
             FROM lfb1 INNER JOIN skat
             ON lfb1akont EQ skatsaknr
             WHERE lfb1~lifnr =  itab-lifnr
                       AND   lfb1~akont IN s_akont
                       AND   skat~spras EQ 'EN'.
        IF sy-subrc NE 0.
          DELETE itab.
          CONTINUE.
        ENDIF.
        SELECT SINGLE name1 name2 telf1 erdat stras ort01 sperr
             INTO (itab-name1, itab-name2, itab-telf1,
                     itab-erdat, itab-stras, itab-ort01, itab-sperr )
               FROM lfa1
               WHERE lifnr =  itab-lifnr
        IF sy-subrc NE 0 .
          DELETE itab.
          CONTINUE.
        ENDIF.
    AKS For Filteration of Customer base on Block Area.
       IF c_all NE 'X'.
         IF c_run EQ 'X' AND itab-sperr EQ 'X'.
           DELETE itab.
           CONTINUE.
         ELSE.
           IF c_blk EQ 'X' AND itab-sperr NE 'X'.
             DELETE itab.
             CONTINUE.
           ENDIF.
         ENDIF.
       ENDIF.
        MODIFY itab.
      ENDLOOP.
    ENDFORM.                               " FILTER_RECORDS
    *&      Form  GET_CUSTOMER_INVOICES
          text
    -->  p1        text
    <--  p2        text
    FORM get_customer_invoices.
      DATA:ztotcre  LIKE bsik-dmbtr.
      DATA:ztotsal  LIKE bsik-dmbtr.
      DATA: fsdate LIKE sy-datum.
      DATA: l_perio(4) TYPE c.
      MOVE stida             TO rf140-stida.
      MOVE rf140-stida+4(2)  TO targ_month.
      MOVE rf140-stida+0(4)  TO targ_year.
      MOVE rf140-stida+6(2)  TO targ_days.
      targ_mth_abs           =  ( targ_year * 12 ) + targ_month.
      CALL FUNCTION 'ZGET_PERIOD_FROM_DATE'
        EXPORTING
          i_date  = stida
        IMPORTING
          e_perio = l_perio.
      CONCATENATE l_perio '0401' INTO fsdate.
    select open items.
      IF p_due EQ 'X'.
        SELECT lifnr belnr gjahr bldat xblnr blart sgtxt        " 0001
               shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
               zuonr
          FROM bsik INTO TABLE inrect
          WHERE bukrs =  p_bukrs
          AND   budat LE stida
          AND   lifnr IN s_lifnr
          AND   gsber IN s_gsber
          AND   umskz NE 'T'
          AND   umskz NE 'F'
          AND   umskz NE 'R'
          AND   umskz NE 'P'
          AND   umskz NE 'J'
          AND umskz NE 'L'.
    LOOP AT INREC.
       IF INREC-SHKZG = 'H'.
         INREC-DMBTR  = INREC-DMBTR * -1.
       ENDIF.
       MOVE-CORRESPONDING INREC TO T_ITEM.                     " 0001
       PERFORM COLLECT_INVOICE USING   INREC-lifnr    INREC-DMBTR
                                       INREC-ZFBDT    INREC-ZBD1T
                                       INREC-ZBD2T    INREC-ZBD3T.
       APPEND T_ITEM.
       CLEAR T_ITEM.
    ENDLOOP.
        LOOP AT inrect.
          inrec-lifnr = inrect-lifnr.
          inrec-belnr    = inrect-belnr.
          inrec-gjahr    = inrect-gjahr.
          inrec-bldat    = inrect-bldat.
          inrec-xblnr    = inrect-xblnr.
          inrec-blart    = inrect-blart.
          inrec-sgtxt    = inrect-sgtxt.
          inrec-shkzg    = inrect-shkzg.
          inrec-dmbtr    = inrect-dmbtr.
          CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
            EXPORTING
              date      = inrect-zfbdt
              days      = inrect-zbd1t
              months    = 00
              signum    = '+'
              years     = 00
            IMPORTING
              calc_date = inrec-zfbdt.
          inrec-zbd1t    = inrect-zbd1t.
          inrec-zbd2t    = inrect-zbd2t.
          inrec-zbd3t    = inrect-zbd3t.
          inrec-zuonr    = inrect-zuonr.
          APPEND inrec.
          CLEAR inrec.
        ENDLOOP.
      ELSE.
        SELECT lifnr belnr gjahr bldat xblnr blart sgtxt        " 0001
               shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
               zuonr
          FROM bsik INTO TABLE inrec
          WHERE bukrs =  p_bukrs
          AND   budat LE stida
          AND   lifnr IN s_lifnr
          AND   gsber IN s_gsber
          AND   umskz NE 'T'
          AND   umskz NE 'F'
          AND   umskz NE 'R'
          AND   umskz NE 'P'
          AND   umskz NE 'J'
          AND umskz NE 'L'.
      ENDIF.
      SORT inrec BY lifnr shkzg zfbdt .
      LOOP AT inrec.
        AT NEW lifnr.
    For Customers Credit Balance Transaction to be display in Report
    End of Credit Balance
          ztotcre = 0.
          ztotsal = 0.
        ENDAT.
        IF inrec-shkzg = 'H'.
          inrec-dmbtr = inrec-dmbtr * -1.
          ztotcre = ztotcre + inrec-dmbtr.
        ELSE.
          IF inrec-blart = 'RV'.
            IF inrec-bldat GE fsdate.
              ztotsal = ztotsal + inrec-dmbtr.
            ENDIF.
          ENDIF.
          ztotcre = ztotcre +  inrec-dmbtr.
       endif.
          IF p_debit EQ 'X'.
            IF ztotcre > 0.
              MOVE-CORRESPONDING inrec TO t_item.               " 0001
              PERFORM collect_invoice USING inrec-lifnr    ztotcre
                                          inrec-zfbdt    inrec-zbd1t
                                          inrec-zbd2t    inrec-zbd3t
                                          ztotsal.
              APPEND t_item.
              CLEAR t_item.
              ztotcre = 0.
              ztotsal = 0.
            ENDIF.
          ENDIF.
        ENDIF.
        IF p_credit EQ 'X'.
         AT END OF lifnr.
          IF ztotcre < 0.
            MOVE-CORRESPONDING inrec TO t_item.                 " 0001
            PERFORM collect_invoice USING inrec-lifnr    ztotcre
                                        inrec-zfbdt       inrec-zbd1t
                                        inrec-zbd2t    inrec-zbd3t
                                        ztotsal.
            APPEND t_item.
            CLEAR t_item.
            ztotcre = 0.
            ztotsal = 0.
           APPEND t_item.
           CLEAR t_item.
          ENDIF.
         ENDAT.
        ENDIF.
      ENDLOOP.
    select cleared items
      IF p_due EQ 'X'.
        REFRESH inrect.  CLEAR inrect.
        SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
               shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
               zuonr
          FROM bsak INTO TABLE inrect
          WHERE bukrs =  p_bukrs
          AND   budat LE stida
          AND   augdt >  stida
          AND   lifnr IN s_lifnr
          AND   gsber IN s_gsber
        REFRESH inrec.  CLEAR inrec.
        LOOP AT inrect.
          inrec-lifnr = inrect-lifnr.
          inrec-belnr    = inrect-belnr.
          inrec-gjahr    = inrect-gjahr.
          inrec-bldat    = inrect-bldat.
          inrec-xblnr    = inrect-xblnr.
          inrec-blart    = inrect-blart.
          inrec-sgtxt    = inrect-sgtxt.
          inrec-shkzg    = inrect-shkzg.
          inrec-dmbtr    = inrect-dmbtr.
          CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
            EXPORTING
              date      = inrect-zfbdt
              days      = inrect-zbd1t
              months    = 00
              signum    = '+'
              years     = 00
            IMPORTING
              calc_date = inrec-zfbdt.
          inrec-zbd1t    = inrect-zbd1t.
          inrec-zbd2t    = inrect-zbd2t.
          inrec-zbd3t    = inrect-zbd3t.
          inrec-zuonr    = inrect-zuonr.
          APPEND inrec.
          CLEAR inrec.
        ENDLOOP.
      ELSE.
        REFRESH inrec.  CLEAR inrec.
        SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
               shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
               zuonr
          FROM bsak INTO TABLE inrec
          WHERE bukrs =  p_bukrs
          AND   budat LE stida
          AND   augdt >  stida
          AND   lifnr IN s_lifnr
          AND   gsber IN s_gsber
      ENDIF.
      SORT inrec BY lifnr shkzg zfbdt .
      LOOP AT inrec.
        AT NEW lifnr.
          ztotcre = 0.
          ztotsal = 0.
        ENDAT.
        IF inrec-shkzg = 'H'.
          inrec-dmbtr = inrec-dmbtr * -1.
          ztotcre = ztotcre + inrec-dmbtr.
        ELSE.
          IF inrec-blart = 'RV'.
            IF inrec-bldat GE fsdate.
              ztotsal = ztotsal + inrec-dmbtr.
            ENDIF.
          ENDIF.
          ztotcre = ztotcre +  inrec-dmbtr.
      endif.
          IF p_debit EQ 'X'.
            IF ztotcre > 0.
              MOVE-CORRESPONDING inrec TO t_item.               " 0001
              PERFORM collect_invoice USING inrec-lifnr    ztotcre
                                          inrec-zfbdt    inrec-zbd1t
                                          inrec-zbd2t    inrec-zbd3t
                                          ztotsal.
              APPEND t_item.
              CLEAR t_item.
              ztotcre = 0.
              ztotsal = 0.
            ENDIF.
          ENDIF.
        ENDIF.
        IF p_credit EQ 'X'.
         AT END OF lifnr.
          IF ztotcre < 0.
            MOVE-CORRESPONDING inrec TO t_item.                 " 0001
            PERFORM collect_invoice USING inrec-lifnr    ztotcre
                                        inrec-zfbdt    inrec-zbd1t
                                        inrec-zbd2t    inrec-zbd3t
                                        ztotsal.
            APPEND t_item.
            CLEAR t_item.
            ztotcre = 0.
            ztotsal = 0.
           APPEND t_item.
           CLEAR t_item.
          ENDIF.
         ENDAT.                                                " 0001
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " GET_CUSTOMER_INVOICES
    *&      Form  COLLECT_INVOICE
          text
         -->P_bsik_lifnr  text
         -->P_bsik_DMBTR  text
         -->P_bsik_ZFBDT  text
         -->P_bsik_ZFBDT1  text
         -->P_bsik_ZFBDT2  text
         -->P_bsik_ZFBDT3  text
    FORM collect_invoice USING    pp_lifnr
                                  pp_dmbtr
                                  pp_zfbdt
                                  pp_zbd1t
                                  pp_zbd2t
                                  pp_zbd3t
                                  pp_ztotsal.
      doc_month            =  pp_zfbdt+4(2).
      doc_year             =  pp_zfbdt+0(4).
      doc_mth_abs          =  ( doc_year * 12 ) + doc_month.
      mth_result           =  ( targ_mth_abs    - doc_mth_abs ).
    logic given by Mr. Ashok Singhvi
      doc_days             =  pp_zfbdt+6(2).
      addl_days            =  ( doc_days  -  targ_days ).
      IF addl_days <= 0.
        ADD 1 TO mth_result.
      ENDIF.
      IF NOT pp_zbd3t IS INITIAL.
        MOVE pp_zbd3t TO ext_days.
      ELSEIF NOT pp_zbd2t IS INITIAL.
        MOVE pp_zbd2t TO ext_days.
      ELSEIF NOT pp_zbd1t IS INITIAL.
        MOVE pp_zbd1t TO ext_days.
      ELSE.
        CLEAR ext_days.
      ENDIF.
    CHECK with Andrew whether this is working or not
    if extended payment terms exist, subtract no of mths from mth_result
    IF NOT ext_days IS INITIAL.
       CASE ext_days.
         WHEN 30.
           SUBTRACT 1 FROM mth_result.
         WHEN 60.
           SUBTRACT 2 FROM mth_result.
         WHEN 90.
           SUBTRACT 3 FROM mth_result.
         WHEN 120.
           SUBTRACT 4 FROM mth_result.
       ENDCASE.
    ENDIF.
    change to key date
      IF pp_dmbtr > 0.
        IF p_future = 'X'.                                      " 0001
          IF mth_result      <= 0.
            itab-zcurrent    =  pp_dmbtr.
            t_item-days       = 'CUR'.
          ELSEIF mth_result  =  1.
            itab-30days      =  pp_dmbtr.
            t_item-days       = '30D'.
          ELSEIF mth_result  =  2.
            itab-60days      =  pp_dmbtr.
            t_item-days        = '60D'.
          ELSEIF mth_result  =  3.
            itab-90days      =  pp_dmbtr.
            t_item-days        = '90D'.
          ELSEIF mth_result  >  3 AND mth_result  <=  4 .
            itab-99days      =  pp_dmbtr.
            t_item-days        = '99D'.
          ELSEIF mth_result  >  4 AND mth_result  <=  6 .
            itab-120days      =  pp_dmbtr.
            t_item-days        = '120D'.
          ELSEIF mth_result  >  6 AND mth_result  <=  12 .
            itab-180days      =  pp_dmbtr.
            t_item-days        = '180D'.
          ELSEIF mth_result  >  12 .
            itab-365days      =  pp_dmbtr.
            t_item-days        = '365D'.
          ENDIF.
        ELSE.
          IF mth_result      < 0.
            itab-zfuture     =  pp_dmbtr.
            t_item-days       = 'FUT'.
          ELSEIF mth_result  = 0.
            itab-zcurrent = pp_dmbtr.
            t_item-days       = 'CUR'.
          ELSEIF mth_result  =  1.
            itab-30days      =  pp_dmbtr.
            t_item-days       = '30D'.
          ELSEIF mth_result  =  2.
            itab-60days      =  pp_dmbtr.
            t_item-days       = '60D'.
          ELSEIF mth_result  =  3.
            itab-90days      =  pp_dmbtr.
            t_item-days       = '90D'.
          ELSEIF mth_result  >  3 AND mth_result  <=  4 .
            itab-99days      =  pp_dmbtr.
            t_item-days        = '99D'.
          ELSEIF mth_result  >  4 AND mth_result  <=  6 .
            itab-120days      =  pp_dmbtr.
            t_item-days        = '120D'.
          ELSEIF mth_result  >  6 AND mth_result  <=  12 .
            itab-180days      =  pp_dmbtr.
            t_item-days        = '180D'.
          ELSEIF mth_result  >  12 .
            itab-365days      =  pp_dmbtr.
            t_item-days        = '365D'.
          ENDIF.
        ENDIF.                                                  " 0001
        itab-crbal         = 0.
        itab-total         = pp_dmbtr.
      ELSE.
        IF p_future = 'X'.                                      " 0001
          IF mth_result      <= 0.
            itab-zcurrent    =  pp_dmbtr.
            t_item-days       = 'CUR'.
          ELSEIF mth_result  =  1.
            itab-30days      =  pp_dmbtr.
            t_item-days       = '30D'.
          ELSEIF mth_result  =  2.
            itab-60days      =  pp_dmbtr.
            t_item-days        = '60D'.
          ELSEIF mth_result  =  3.
            itab-90days      =  pp_dmbtr.
            t_item-days        = '90D'.
          ELSEIF mth_result  >  3 AND mth_result  <=  4 .
            itab-99days      =  pp_dmbtr.
            t_item-days        = '99D'.
          ELSEIF mth_result  >  4 AND mth_result  <=  6 .
            itab-120days      =  pp_dmbtr.
            t_item-days        = '120D'.
          ELSEIF mth_result  >  6 AND mth_result  <=  12 .
            itab-180days      =  pp_dmbtr.
            t_item-days        = '180D'.
          ELSEIF mth_result  >  12 .
            itab-365days      =  pp_dmbtr.
            t_item-days        = '365D'.
          ENDIF.
        ELSE.
          IF mth_result      < 0.
            itab-zfuture     =  pp_dmbtr.
            t_item-days       = 'FUT'.
          ELSEIF mth_result  = 0.
            itab-zcurrent = pp_dmbtr.
            t_item-days       = 'CUR'.
          ELSEIF mth_result  =  1.
            itab-30days      =  pp_dmbtr.
            t_item-days       = '30D'.
          ELSEIF mth_result  =  2.
            itab-60days      =  pp_dmbtr.
            t_item-days       = '60D'.
          ELSEIF mth_result  =  3.
            itab-90days      =  pp_dmbtr.
            t_item-days       = '90D'.
          ELSEIF mth_result  >  3 AND mth_result  <=  4 .
            itab-99days      =  pp_dmbtr.
            t_item-days        = '99D'.
          ELSEIF mth_result  >  4 AND mth_result  <=  6 .
            itab-120days      =  pp_dmbtr.
            t_item-days        = '120D'.
          ELSEIF mth_result  >  6 AND mth_result  <=  12 .
            itab-180days      =  pp_dmbtr.
            t_item-days        = '180D'.
          ELSEIF mth_result  >  12 .
            itab-365days      =  pp_dmbtr.
            t_item-days        = '365D'.
          ENDIF.
        ENDIF.                                                  " 0001
        itab-total         = pp_dmbtr.
        itab-crbal         = 0.
      ENDIF.
      itab-lifnr         = pp_lifnr.
      itab-totsal        = pp_ztotsal.
      COLLECT itab.
      CLEAR itab.
    ENDFORM.                    " COLLECT_INVOICE
    *&      Form  ADD_SORT_FIELD
          text
    -->  p1        text
    <--  p2        text
    FORM add_sort_field.
      DATA: l_amount(9)  TYPE n.
      IF p_future = 'X'.
        LOOP AT itab.
          l_amount = 999999999.
          IF     itab-365days > 0.
            l_amount = l_amount - itab-365days.
            CONCATENATE 'A' l_amount INTO itab-psort.
          ELSEIF     itab-180days > 0.
            l_amount = l_amount - itab-180days.
            CONCATENATE 'B' l_amount INTO itab-psort.
          ELSEIF     itab-120days > 0.
            l_amount = l_amount - itab-120days.
            CONCATENATE 'C' l_amount INTO itab-psort.
          ELSEIF     itab-99days > 0.
            l_amount = l_amount - itab-99days.
            CONCATENATE 'D' l_amount INTO itab-psort.
          ELSEIF itab-90days > 0.
            l_amount = l_amount - itab-90days.
            CONCATENATE 'E' l_amount INTO itab-psort.
          ELSEIF itab-60days > 0.
            l_amount = l_amount - itab-60days.
            CONCATENATE 'F' l_amount INTO itab-psort.
          ELSEIF itab-30days > 0.
            l_amount = l_amount - itab-30days.
            CONCATENATE 'G' l_amount INTO itab-psort.
          ELSEIF itab-zcurrent > 0.
            l_amount = l_amount - itab-zcurrent.
            CONCATENATE 'H' l_amount INTO itab-psort.
        ELSEif itab-zfuture > 0.
          L_AMOUNT = L_AMOUNT - ITAB-zfuture.
          CONCATENATE 'F' L_AMOUNT INTO ITAB-PSORT.
          ELSE.
            l_amount = ABS( itab-total ).
            CONCATENATE 'I' l_amount INTO itab-psort.
          ENDIF.
          MODIFY itab.
        ENDLOOP.
      ELSE.
        LOOP AT itab.
          l_amount = 999999999.
          IF     itab-365days > 0.
            l_amount = l_amount - itab-365days.
            CONCATENATE 'A' l_amount INTO itab-psort.
          ELSEIF     itab-180days > 0.
            l_amount = l_amount - itab-180days.
            CONCATENATE 'B' l_amount INTO itab-psort.
          ELSEIF     itab-120days > 0.
            l_amount = l_amount - itab-120days.
            CONCATENATE 'C' l_amount INTO itab-psort.
          ELSEIF     itab-99days > 0.
            l_amount = l_amount - itab-99days.
            CONCATENATE 'D' l_amount INTO itab-psort.
          ELSEIF itab-90days > 0.
            l_amount = l_amount - itab-90days.
            CONCATENATE 'E' l_amount INTO itab-psort.
          ELSEIF itab-60days > 0.
            l_amount = l_amount - itab-60days.
            CONCATENATE 'F' l_amount INTO itab-psort.
          ELSEIF itab-30days > 0.
            l_amount = l_amount - itab-30days.
            CONCATENATE 'G' l_amount INTO itab-psort.
          ELSEIF itab-zcurrent > 0.
            l_amount = l_amount - itab-zcurrent.
            CONCATENATE 'H' l_amount INTO itab-psort.
          ELSEIF itab-zfuture > 0.
            l_amount = l_amount - itab-zfuture.
            CONCATENATE 'I' l_amount INTO itab-psort.
          ELSE.
            l_amount = ABS( itab-total ).
            CONCATENATE 'J' l_amount INTO itab-psort.
          ENDIF.
          MODIFY itab.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " ADD_SORT_FIELD
    *&      Form  WRITE_REPORT
          text
    -->  p1        text
    <--  p2        text
    FORM write_report.
      PERFORM build_fieldcat.
      PERFORM build_sortcat.
      PERFORM build_eventcat.
      PERFORM build_layout.
      PERFORM start_list_viewer.
    ENDFORM.                    " WRITE_REPORT
    *&      Form  BUILD_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    FORM build_fieldcat.
    lifnr
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
      fieldcat_ln-ref_tabname        = 'lfa1'.
      fieldcat_ln-fieldname          = 'LIFNR'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      APPEND fieldcat_ln TO fieldcat.
    Name1
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
      fieldcat_ln-ref_tabname        = 'lfa1'.
      fieldcat_ln-fieldname          = 'NAME1'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-seltext_l          = 'Name'.
      APPEND fieldcat_ln TO fieldcat.
    City Details
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
      fieldcat_ln-ref_tabname        = 'lfa1'.
      fieldcat_ln-fieldname          = 'ORT01'.
      fieldcat_ln-seltext_l          = 'City'.
      fieldcat_ln-col_pos            = col_pos.
      APPEND fieldcat_ln TO fieldcat.
    Credit Limit
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'KNKK'.
    fieldcat_ln-fieldname          = 'KLIMK'.
    fieldcat_ln-col_pos            = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    APPEND fieldcat_ln TO fieldcat.
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
    fieldcat_ln-fieldname          = 'CRBAL'.
    fieldcat_ln-col_pos            = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-do_sum             = 'X'.
    fieldcat_ln-seltext_l          = 'Cr. Bal.'.
    fieldcat_ln-seltext_m          = 'Cr. Bal.'.
    fieldcat_ln-seltext_s          = 'Cr. Bal.'.
    APPEND fieldcat_ln TO fieldcat.
    Total Amount
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
      fieldcat_ln-fieldname          = 'TOTAL'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-seltext_l          = 'Out.St.Amt.'.
      fieldcat_ln-seltext_m          = 'Out.St.Amt.'.
      fieldcat_ln-seltext_s          = 'Out.St.Amt.'.
      fieldcat_ln-ref_tabname        = 'zbsik'.
      fieldcat_ln-ref_fieldname      = 'ZDMBTR'.
      APPEND fieldcat_ln TO fieldcat.
      IF p_future NE 'X'.
    Future
        ADD 1 TO col_pos.
        CLEAR fieldcat_ln.
       fieldcat_ln-ref_tabname        = 'bsik'.
       fieldcat_ln-ref_fieldname      = 'DMBTR'.
        fieldcat_ln-fieldname          = 'ZFUTURE'.
        fieldcat_ln-col_pos            = col_pos.
        fieldcat_ln-do_sum             = 'X'.
        fieldcat_ln-hotspot            = 'X'.
        fieldcat_ln-emphasize = 'C41'.
        fieldcat_ln-seltext_l          = 'Future Due'.
        fieldcat_ln-seltext_m          = 'Future Due'.
        fieldcat_ln-seltext_s          = 'Future Due'.
        APPEND fieldcat_ln TO fieldcat.
      ENDIF.
    Current
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = 'ZCURRENT'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = 'Normal Due'.
      fieldcat_ln-seltext_m          = 'Normal Due'.
      fieldcat_ln-seltext_s          = 'Normal Due'.
      APPEND fieldcat_ln TO fieldcat.
    30 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '30DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '0-30 Days'.
      fieldcat_ln-seltext_m          = '0-30 Days'.
      fieldcat_ln-seltext_s          = '0-30 Days'.
      APPEND fieldcat_ln TO fieldcat.
    60 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '60DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '31-60 Days'.
      fieldcat_ln-seltext_m          = '31-60 Days'.
      fieldcat_ln-seltext_s          = '31-60 Days'.
      APPEND fieldcat_ln TO fieldcat.
    90 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '90DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '61-90 Days'.
      fieldcat_ln-seltext_m          = '61-90 Days'.
      fieldcat_ln-seltext_s          = '61-90 Days'.
      APPEND fieldcat_ln TO fieldcat.
    99 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '99DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '91-120 Days'.
      fieldcat_ln-seltext_m          = '91-120 Days'.
      fieldcat_ln-seltext_s          = '91-120 Days'.
      APPEND fieldcat_ln TO fieldcat.
    *120Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '120DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '121-180 Days'.
      fieldcat_ln-seltext_m          = '121-180 Days'.
      fieldcat_ln-seltext_s          = '121-180 Days'.
      APPEND fieldcat_ln TO fieldcat.
    *180 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '180DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '181-365 Days'.
      fieldcat_ln-seltext_m          = '181-365 Days'.
      fieldcat_ln-seltext_s          = '181-365 Days'.
      APPEND fieldcat_ln TO fieldcat.
    *365 Days
      ADD 1 TO col_pos.
      CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'bsik'.
    fieldcat_ln-ref_fieldname      = 'DMBTR'.
      fieldcat_ln-fieldname          = '365DAYS'.
      fieldcat_ln-col_pos            = col_pos.
      fieldcat_ln-do_sum             = 'X'.
      fieldcat_ln-hotspot            = 'X'.
      fieldcat_ln-emphasize = 'C41'.
      fieldcat_ln-seltext_l          = '>365 Days'.
      fieldcat_ln-seltext_m          = '>365 Days'.
      fieldcat_ln-seltext_s          = '>365 Days'.
      APPEND fieldcat_ln TO fieldcat.
    Last Payment Date
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'KNKK'.
    fieldcat_ln-fieldname          = 'CASHD'.
    fieldcat_ln-col_pos            = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Street Name
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME        = 'lfa1'.
    FIELDCAT_LN-FIELDNAME          = 'STRAS'.
    FIELDCAT_LN-COL_POS            = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Telephone
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME        = 'lfa1'.
    FIELDCAT_LN-FIELDNAME          = 'TELF1'.
    FIELDCAT_LN-COL_POS            = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Credit Group
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME        = 'KNKK'.
    FIELDCAT_LN-FIELDNAME          = 'GRUPP'.
    FIELDCAT_LN-COL_POS            = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    *Sales District
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'KNVV'.
    fieldcat_ln-fieldname          = 'BZIRK'.
    fieldcat_ln-col_pos            = col_pos.
    fieldcat_ln-seltext_l          = 'S_Distt'.
    fieldcat_ln-seltext_m          = 'S_Distt'.
    fieldcat_ln-seltext_s          = 'S_Distt'.
    APPEND fieldcat_ln TO fieldcat.
    Sales Office
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname        = 'KNVV'.
    fieldcat_ln-fieldname          = 'VKBUR'.
    fieldcat_ln-col_pos            = col_pos.
    fieldcat_ln-seltext_l          = 'S_Off'.
    fieldcat_ln-seltext_m          = 'S_Off'.
    fieldcat_ln-seltext_s          = 'S_Off'.
    APPEND fieldcat_ln TO fieldcat.
    Cust Creat Date
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME        = 'lfa1'.
    FIELDCAT_LN-FIELDNAME          = 'ERDAT'.
    FIELDCAT_LN-COL_POS            = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.

  • Needs a solution for loading Crystal Report

    Hi.....
    I have already desiged & loaded crystal reports through SAP B1 Main Menu.
    But I need help (Code in C#.Net) for loading a crystal report template(already created) for a System form (eg; A/R Invoice) immediately after the form load by a menu click(means through UI interface)
    and report generated by identifying the Forms Document Number.

    HI...
    See  this following link
    https://www.sdn.sap.com/irj/sdn/businessone?rid=/webcontent/uuid/807d22cb-cb1d-2b10-8794-fb76d7feca88#section2
    Regards
    Billa 2007

  • Need authorization object for relaese of Invoice to accounting

    Dear Folks,
    Could you please let me know the authorization object which is available in standard SAP which restricts users from release of invoice to accounting and should have authorization to change the invoice....Pls don't forward  generic reply's...tried with available authorization objects using tcode SU24...for tcode VF02.
    Regards,
    Kishore

    Hi,
    See the program :   MV60AF0V_VBRK_BEARBEITEN
    Freigabe für Buchhaltung ( Accounting for release)
    ENHANCEMENT 65  OIC_SDP_SAPMV60A.    "active version
    *Coding for Invoice Approval Process.             "SDP-BILLING
        IF TVFK-OIINVAPP EQ CHARX.
          PERFORM RELE_AUTH_CHECK.
        ENDIF.
    ENDENHANCEMENT.
    Here incorporate your Z authorisation object or you can use any of the standard one.
    So that it will check the authorisation object before posting the same.
    Hope this will resolve your problem.
    regards,

  • Archive Link Authorization problem for Business Partner.

    Hi Experts,
    Currently we are attaching documents to respective objects through Tr. OAWD & these documents are available in service for object as attachment, until this it is working fine.
    But we are facing problem of authorization for archive link of ISU- Business Partner. Letu2019s say we had two users USER-A & USER-B responsible to upload documents of Business partners started with 1 & 2 respectively.
    We needed authorization control for USER A&B so that,
    USER-A should upload documents for Business Partner 1001 to 1999
    & USER-B should upload documents for Business Partner 2001 to 2999
    we need to know can we restrict USER A&B so that they can not upload documents for Business Partner for which they are not responsible. we allready checked the roles "SAP_BC_SRV_ARL_*  " but not found useful to restrict USER A&B.
    Thanks in advance....

    Hi Sam,
    as this sounds like you search for suitable authorization objects I think that the authorization trace in transaction ST01 could be useful for you. For further information please see the following link: http://wiki.sdn.sap.com/wiki/display/PLM/AuthorizationTraceintransactionST01
    Best regards,
    Christoph

  • Steps for Creating a Report in Oracle Apps

    I need the steps for creating a Report 2.5 in Oracle Apps.
    Please let me know the steps involved in detail
    Regards
    Choudary

    First you create the report using reports 2.5. (You need to refer Application Developer's User Guide to understand Apps standards for customization)
    Then register the report in Apps:
    1) Define the executable
    2) Place the executable in the appropriate directory (You need to refer Apps installation guide to find the directory structure for placing reports)
    3) Define the concurrent program (Pay attention when you define program parameters and value sets associated)
    4) Attach your report to the request group attached to your responsibility
    5) Run the concurrent program using SRS (you will not see the report when you open Submit Requests Form, if you do have permission)
    The above procedure is applicable if you are defining the report directly in your instance. If you are using chain link, then you may have to migrate the objects appropriately.
    Some of the above activities are usually done by System Administrator and users are not given permissions.

  • Where do I get my authorization code for adobe acrobat 8.1.0 professional? I have serial and activation numbers

    I had to re install My OS and need Authorization code for my  adobe acrobat 8.1.0 professional. Please Help.

    Hi Gary ,
    I would request you to connect with the Adobe support team to get your query regarding Authorization code fixed .
    http://helpx.adobe.com/x-productkb/global/service1.html
    Please click the blue"Still need help" button on the chat support page .
    Regards
    Sukrit Dhingra

  • Help for asset aqusition report

    hi,
    here i am sending my code for asset aqusition report but not getting right output ie i am not able to get all the line items for particular asset no.
    bcoz an asset has different line items with different doc no.
    REPORT  XXXXXX                            .
    TABLES : sflight.
    TYPE-POOLS: slis.
    DATA : w_repid LIKE sy-repid.
    w_repid = sy-repid.
    DATA : BEGIN OF it_sflight OCCURS 0,
           checkbox(1),
           carrid LIKE sflight-carrid,
           END OF it_sflight.
    *layout
    DATA: wa_layout           TYPE slis_layout_alv.
    *field catalog
    DATA: it_fieldcatalog TYPE slis_t_fieldcat_alv,
          wa_fieldcatalog TYPE slis_fieldcat_alv.
    START-OF-SELECTION.
      SELECT carrid FROM sflight INTO CORRESPONDING FIELDS OF TABLE
    it_sflight.
    END-OF-SELECTION.
      CLEAR it_fieldcatalog.
      REFRESH it_fieldcatalog.
      wa_fieldcatalog-fieldname = 'CHECKBOX'.
      wa_fieldcatalog-outputlen = '3'.
      wa_fieldcatalog-col_pos = '1'.
      wa_fieldcatalog-seltext_m   = 'Chk'.
      wa_fieldcatalog-checkbox = 'X'.
      wa_fieldcatalog-edit = 'X'.
      APPEND  wa_fieldcatalog TO it_fieldcatalog.
      CLEAR  wa_fieldcatalog.
      wa_fieldcatalog-fieldname = 'CARRID'.
      wa_fieldcatalog-outputlen = '10'.
      wa_fieldcatalog-col_pos = '2'.
      wa_fieldcatalog-seltext_m   = 'Carrid'.
      APPEND  wa_fieldcatalog TO it_fieldcatalog.
      CLEAR  wa_fieldcatalog.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = w_repid
          is_layout               = wa_layout
          i_callback_user_command = 'USER_COMMAND'
          it_fieldcat           = it_fieldcatalog
        TABLES
          t_outtab                = it_sflight
        EXCEPTIONS
          program_error           = 1
          OTHERS                  = 2.
    *&      Form  USER_COMMAND
    FORM user_command USING p_ucomm TYPE sy-ucomm
                          p_selfld TYPE slis_selfield.
      CASE p_ucomm.
        WHEN '&DATA_SAVE'.
          DATA ref1 TYPE REF TO cl_gui_alv_grid.
          CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
            IMPORTING
              e_grid = ref1.
          CALL METHOD ref1->check_changed_data.
          LOOP AT it_sflight WHERE checkbox = 'X'.
            DELETE it_sflight INDEX sy-tabix.
          ENDLOOP.
          p_selfld-refresh = 'X'.
      ENDCASE.
    ENDFORM.                    "user_command
    Check the following code...
    DATA: BEGIN OF itab OCCURS 0,
    check,
    value(20),
    END OF itab.
    SET PF-STATUS 'TEST1'.
    itab-value = 'ETSAT'.
    APPEND itab.
    itab-value = 'ETSATADSF'.
    APPEND itab.
    itab-value = 'ETSAT'.
    APPEND itab.
    LOOP AT itab.
    WRITE: / itab-check AS CHECKBOX,
    itab-value.
    ENDLOOP.
    AT USER-COMMAND.
    DATA: wa LIKE itab.
    DATA: itab_download LIKE itab OCCURS 0 WITH HEADER LINE.
    IF sy-ucomm = 'DOWNLOAD'.
    DESCRIBE TABLE itab.
    DO sy-tfill TIMES.
    READ LINE sy-index FIELD VALUE itab-check.
    IF sy-subrc <> 0.
    EXIT.
    ENDIF.
    CHECK itab-check = 'X'.
    itab_download-value = itab-value.
    APPEND itab_download.
    ENDDO.
    DOWNLOAD
    CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
    filename = 'C:\TEST.XLS '
    TABLES
    data_tab = itab_download.
    ENDIF.
    Thanks
    Shobi

    Hi,
      One the guy has same report as problem,  ok, my friend Eswar as given the code for that, i will send you that, hope it is helpful
    <b>Please check with this code now:
    TYPE-POOLS : SLIS.
    TABLES : ANLA,                     "ASSET MASTER RECORD-SEGMENT
            ANLZ.                     "time dependent asset allocations
    DATA : BEGIN OF T_ANLA OCCURS 0,
          BUKRS LIKE ANLA-BUKRS,
          ANLN1 LIKE ANLA-ANLN1,
          ANLN2 LIKE ANLA-ANLN2,
          AKTIV LIKE ANLA-AKTIV,
          TXT50 LIKE ANLA-TXT50,
          ZUGDT LIKE ANLA-ZUGDT,
          MENGE LIKE ANLA-MENGE,
          MEINS LIKE ANLA-MEINS,
          END OF T_ANLA.
    DATA : BEGIN OF T_ANLZ OCCURS 0,
          BUKRS LIKE ANLZ-BUKRS,
          ANLN1 LIKE ANLZ-ANLN1,
          ANLN2 LIKE ANLZ-ANLN2,
          GSBER LIKE ANLZ-GSBER,
          KOSTL LIKE ANLZ-KOSTL,
          STORT LIKE ANLZ-STORT,
          RAUMN LIKE ANLZ-RAUMN,
          KFZKZ LIKE ANLZ-KFZKZ,
          END OF T_ANLZ.
    DATA : BEGIN OF T_ANEK OCCURS 0,
          BUKRS LIKE ANEK-BUKRS,
          ANLN1 LIKE ANEK-ANLN1,
          ANLN2 LIKE ANEK-ANLN2,
          BELNR LIKE ANEK-BELNR,
          BUDAT LIKE ANEK-BUDAT,
          XBLNR LIKE ANEK-XBLNR,
          SGTXT LIKE ANEK-SGTXT,
          END OF T_ANEK.
    DATA : BEGIN OF T_ANLC OCCURS 0,
          BUKRS LIKE ANLC-BUKRS,
          ANLN1 LIKE ANLC-ANLN1,
          ANLN2 LIKE ANLC-ANLN2,
          KANSW LIKE ANLC-KANSW,
          KNAFA LIKE ANLC-KNAFA,
          AAFAP LIKE ANLC-AAFAP,
          AFABE LIKE ANLC-AFABE,
          GJAHR LIKE ANLC-GJAHR,
          END OF T_ANLC.
    DATA : BEGIN OF IT_FINAL OCCURS 0,
           ANLN1 LIKE ANLA-ANLN1,
           ANLN2 LIKE ANLA-ANLN2,
           AKTIV LIKE ANLA-AKTIV,
           TXT50 LIKE ANLA-TXT50,
           ZUGDT LIKE ANLA-ZUGDT,
           MENGE LIKE ANLA-MENGE,
           MEINS LIKE ANLA-MEINS,
           GSBER LIKE ANLZ-GSBER,
           KOSTL LIKE ANLZ-KOSTL,
           STORT LIKE ANLZ-STORT,
           RAUMN LIKE ANLZ-RAUMN,
           KFZKZ LIKE ANLZ-KFZKZ,
           BELNR LIKE ANEK-BELNR,
           BUDAT LIKE ANEK-BUDAT,
           XBLNR LIKE ANEK-XBLNR,
           SGTXT LIKE ANEK-SGTXT,
           KANSW LIKE ANLC-KANSW,
           KNAFA LIKE ANLC-KNAFA,
           AAFAP LIKE ANLC-AAFAP,
           GJAHR LIKE ANEK-GJAHR,
           END OF IT_FINAL.
    DATA : LINE_COLOR(4) TYPE C.
    DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
    SELECTION-SCREEN : BEGIN OF BLOCK B_FA WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_BUKRS FOR ANLA-BUKRS DEFAULT 'ML',
                    S_ANLN1 FOR ANLA-ANLN1,
                    S_ANLN2 FOR ANLA-ANLN2.
                    s_gjahr FOR anlc-gjahr.
    SELECTION-SCREEN : END OF BLOCK B_FA.
    *SELECT-OPTIONS : s_belnr FOR anek-belnr.
    SELECT BUKRS ANLN1 ANLN2 AKTIV TXT50 ZUGDT MENGE MEINS
          FROM ANLA
          INTO CORRESPONDING FIELDS OF TABLE T_ANLA
          WHERE ANLN1 IN S_ANLN1
          AND   ANLN2 IN S_ANLN2
          AND   BUKRS IN S_BUKRS.
    CHECK: NOT T_ANLA[] IS INITIAL.
    SELECT BUKRS ANLN1 ANLN2 GSBER KOSTL STORT RAUMN KFZKZ
          FROM ANLZ
          INTO CORRESPONDING FIELDS OF TABLE T_ANLZ
          FOR ALL ENTRIES IN T_ANLA
          WHERE ANLN1 = T_ANLA-ANLN1
          AND   ANLN2 = T_ANLA-ANLN2
          AND   BUKRS = T_ANLA-BUKRS.
    *IF sy-subrc EQ 0.
    SELECT BUKRS ANLN1 ANLN2 BELNR BUDAT XBLNR SGTXT GJAHR
          FROM ANEK
          INTO CORRESPONDING FIELDS OF TABLE T_ANEK
          FOR ALL ENTRIES IN T_ANLA
          WHERE ANLN1 = T_ANLA-ANLN1
          AND   ANLN2 = T_ANLA-ANLN2
          AND   BUKRS = T_ANLA-BUKRS.
          AND   gjahr = t_anek-gjahr.
    *ENDIF.
    SELECT BUKRS ANLN1 ANLN2 KANSW KNAFA AAFAP AFABE GJAHR
          FROM ANLC
          INTO CORRESPONDING FIELDS OF TABLE T_ANLC
          FOR ALL ENTRIES IN T_ANLA
          WHERE ANLN1 = T_ANLA-ANLN1
          AND   ANLN2 = T_ANLA-ANLN2
          AND   BUKRS = T_ANLA-BUKRS
          AND   GJAHR = T_ANLC-GJAHR.
          AND   afabe = '01'.
    LOOP AT T_ANLA.
      MOVE : T_ANLA-ANLN1 TO IT_FINAL-ANLN1,
             T_ANLA-ANLN2 TO IT_FINAL-ANLN2,
             T_ANLA-AKTIV TO IT_FINAL-AKTIV,
             T_ANLA-TXT50 TO IT_FINAL-TXT50,
             T_ANLA-ZUGDT TO IT_FINAL-ZUGDT,
             T_ANLA-MENGE TO IT_FINAL-MENGE,
             T_ANLA-MEINS TO IT_FINAL-MEINS.
      READ TABLE T_ANLZ WITH KEY BUKRS = T_ANLA-BUKRS
                                ANLN1 = T_ANLA-ANLN1
                                ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        MOVE : T_ANLZ-GSBER TO IT_FINAL-GSBER,
               T_ANLZ-KOSTL TO IT_FINAL-KOSTL,
               T_ANLZ-STORT TO IT_FINAL-STORT,
               T_ANLZ-RAUMN TO IT_FINAL-RAUMN,
               T_ANLZ-KFZKZ TO IT_FINAL-KFZKZ.
      ENDIF.
      READ TABLE T_ANLC WITH KEY BUKRS = T_ANLA-BUKRS
                                ANLN1 = T_ANLA-ANLN1
                                ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
      IF SY-SUBRC EQ 0.
        MOVE : T_ANLC-KANSW TO IT_FINAL-KANSW,
               T_ANLC-KNAFA TO IT_FINAL-KNAFA,
               T_ANLC-AAFAP TO IT_FINAL-AAFAP.
      ENDIF.
    *SORT t_anla.
    *READ TABLE T_ANEK WITH KEY BUKRS = T_ANLA-BUKRS
                             ANLN1 = T_ANLA-ANLN1
                             ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
    *IF SY-SUBRC EQ 0.
    LOOP AT T_ANEK WHERE BUKRS = T_ANLA-BUKRS AND ANLN1 = T_ANLA-ANLN1 AND
    ANLN2 = T_ANLA-ANLN2.
        MOVE : T_ANEK-BELNR TO IT_FINAL-BELNR,
               T_ANEK-BUDAT TO IT_FINAL-BUDAT,
               T_ANEK-XBLNR TO IT_FINAL-XBLNR,
               T_ANEK-SGTXT TO IT_FINAL-SGTXT.
    *ENDIF.
        APPEND IT_FINAL.
      ENDLOOP.
    ENDLOOP.
    *ENDIF.
    PERFORM BUILD_FIELDCATALOG.
    PERFORM DISPLAY_ALV_REPORT.
    PERFORM BUILD_LAYOUT.
          FORM BUILD_FIELDCATALOG                                       *
    FORM BUILD_FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'ANLN1'.
      FIELDCATALOG-SELTEXT_M = 'ASSET MAIN NO'.
      FIELDCATALOG-COL_POS   = 0.
      FIELDCATALOG-OUTPUTLEN = 14.
      FIELDCATALOG-EMPHASIZE = 'X'.
      FIELDCATALOG-KEY       = 'X'.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'ANLN2'.
      FIELDCATALOG-SELTEXT_M = 'SUB NO'.
      FIELDCATALOG-COL_POS   = 1.
      FIELDCATALOG-OUTPUTLEN = 7.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'AKTIV'.
      FIELDCATALOG-SELTEXT_M = 'CAP.DATE'.
      FIELDCATALOG-COL_POS   = 2.
      FIELDCATALOG-OUTPUTLEN = 10.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'TXT50'.
      FIELDCATALOG-SELTEXT_M = 'NAME'.
      FIELDCATALOG-COL_POS   = 3.
      FIELDCATALOG-OUTPUTLEN = 50.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'ZUGDT'.
      FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.
      FIELDCATALOG-COL_POS   = 4.
      FIELDCATALOG-OUTPUTLEN = 10.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'MENGE'.
      FIELDCATALOG-SELTEXT_M = 'QTY'.
      FIELDCATALOG-COL_POS   = 5.
      FIELDCATALOG-OUTPUTLEN = 13.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'MEINS'.
      FIELDCATALOG-SELTEXT_M = 'UNITS'.
      FIELDCATALOG-COL_POS   = 6.
      FIELDCATALOG-OUTPUTLEN = 3.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'GSBER'.
      FIELDCATALOG-SELTEXT_M = 'BA'.
      FIELDCATALOG-COL_POS   = 7.
      FIELDCATALOG-OUTPUTLEN = 4.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'KOSTL'.
      FIELDCATALOG-SELTEXT_M = 'COST CENTER'.
      FIELDCATALOG-COL_POS   = 8.
      FIELDCATALOG-OUTPUTLEN = 13.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'STORT'.
      FIELDCATALOG-SELTEXT_M = 'LOCATION'.
      FIELDCATALOG-COL_POS   = 9.
      FIELDCATALOG-OUTPUTLEN = 10.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'RAUMN'.
      FIELDCATALOG-SELTEXT_M = 'ROOM'.
      FIELDCATALOG-COL_POS   = 10.
      FIELDCATALOG-OUTPUTLEN = 10.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'KFZKZ'.
      FIELDCATALOG-SELTEXT_M = 'LICENSE PLATE NO'.
      FIELDCATALOG-COL_POS   = 11.
      FIELDCATALOG-OUTPUTLEN = 20.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'BELNR'.
      FIELDCATALOG-SELTEXT_M = 'DOC NO'.
      FIELDCATALOG-COL_POS   = 12.
      FIELDCATALOG-OUTPUTLEN = 13.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'BUDAT'.
      FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.
      FIELDCATALOG-COL_POS   = 13.
      FIELDCATALOG-OUTPUTLEN = 15.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'XBLNR'.
      FIELDCATALOG-SELTEXT_M = 'REF NO'.
      FIELDCATALOG-COL_POS   = 14.
      FIELDCATALOG-OUTPUTLEN = 25.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'SGTXT'.
      FIELDCATALOG-SELTEXT_M = 'TEXT'.
      FIELDCATALOG-COL_POS   = 15.
      FIELDCATALOG-OUTPUTLEN = 50.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
    ENDFORM.                    "BUILD_FIELDCATALOG
          FORM BUILD_LAYOUT                                             *
    FORM BUILD_LAYOUT.
      GD_LAYOUT-ZEBRA = 'X'.
      GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
    ENDFORM.                    "BUILD_LAYOUT
          FORM DISPLAY_ALV_REPORT                                       *
    FORM DISPLAY_ALV_REPORT.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
          EXPORTING
            I_INTERFACE_CHECK        = ' '
            I_CALLBACK_PROGRAM       = ' '
            I_CALLBACK_PF_STATUS_SET = ' '
            I_CALLBACK_USER_COMMAND  = ' '
            I_STRUCTURE_NAME         =
             IS_LAYOUT                = GD_LAYOUT
               IT_FIELDCAT              = FIELDCATALOG[]
            IT_EXCLUDING             =
            IT_SPECIAL_GROUPS        =
            IT_SORT                  =
            IT_FILTER                =
            IS_SEL_HIDE              =
            I_DEFAULT                = 'X'
            I_SAVE                   = ' '
            IS_VARIANT               = ' '
            IT_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                 = IT_FINAL
           EXCEPTIONS
                PROGRAM_ERROR            = 1
                OTHERS                   = 2.
    ENDFORM.                    "DISPLAY_ALV_REPORT
    Thanks & Regards
    Eswar. B
    Tel: +65 6544 7449
    mailto: [email protected]
    From: [email protected] [mailto:[email protected]]
    Sent: Tuesday, November 28, 2006 7:36 PM
    To: Boddeti, Eswar Rao
    Subject: Re: need ur help for asset aqusition report
    Hai,
       Sorry sorry this is the right Code.
    Z_FA_ACQ  NO STANDARD PAGE HEADING
                    LINE-SIZE 400
                    LINE-COUNT 65(3).
    TYPE-POOLS : SLIS.
    TABLES : ANLA,                     "ASSET MASTER RECORD-SEGMENT
            ANLZ.                     "time dependent asset allocations
    DATA : BEGIN OF T_ANLA OCCURS 0,
          BUKRS LIKE ANLA-BUKRS,
          ANLN1 LIKE ANLA-ANLN1,
          ANLN2 LIKE ANLA-ANLN2,
          AKTIV LIKE ANLA-AKTIV,
          TXT50 LIKE ANLA-TXT50,
          ZUGDT LIKE ANLA-ZUGDT,
          MENGE LIKE ANLA-MENGE,
          MEINS LIKE ANLA-MEINS,
          END OF T_ANLA.
    DATA : BEGIN OF T_ANLZ OCCURS 0,
          BUKRS LIKE ANLZ-BUKRS,
          ANLN1 LIKE ANLZ-ANLN1,
          ANLN2 LIKE ANLZ-ANLN2,
          GSBER LIKE ANLZ-GSBER,
          KOSTL LIKE ANLZ-KOSTL,
          STORT LIKE ANLZ-STORT,
          RAUMN LIKE ANLZ-RAUMN,
          KFZKZ LIKE ANLZ-KFZKZ,
          END OF T_ANLZ.
    DATA : BEGIN OF T_ANEK OCCURS 0,
          BUKRS LIKE ANEK-BUKRS,
          ANLN1 LIKE ANEK-ANLN1,
          ANLN2 LIKE ANEK-ANLN2,
          BELNR LIKE ANEK-BELNR,
          BUDAT LIKE ANEK-BUDAT,
          XBLNR LIKE ANEK-XBLNR,
          SGTXT LIKE ANEK-SGTXT,
          END OF T_ANEK.
    DATA : BEGIN OF T_ANLC OCCURS 0,
          BUKRS LIKE ANLC-BUKRS,
          ANLN1 LIKE ANLC-ANLN1,
          ANLN2 LIKE ANLC-ANLN2,
          KANSW LIKE ANLC-KANSW,
          KNAFA LIKE ANLC-KNAFA,
          AAFAP LIKE ANLC-AAFAP,
          AFABE LIKE ANLC-AFABE,
          GJAHR LIKE ANLC-GJAHR,
          END OF T_ANLC.
    DATA : BEGIN OF IT_FINAL OCCURS 0,
           ANLN1 LIKE ANLA-ANLN1,
           ANLN2 LIKE ANLA-ANLN2,
           AKTIV LIKE ANLA-AKTIV,
           TXT50 LIKE ANLA-TXT50,
           ZUGDT LIKE ANLA-ZUGDT,
           MENGE LIKE ANLA-MENGE,
           MEINS LIKE ANLA-MEINS,
           GSBER LIKE ANLZ-GSBER,
           KOSTL LIKE ANLZ-KOSTL,
           STORT LIKE ANLZ-STORT,
           RAUMN LIKE ANLZ-RAUMN,
           KFZKZ LIKE ANLZ-KFZKZ,
           BELNR LIKE ANEK-BELNR,
           BUDAT LIKE ANEK-BUDAT,
           XBLNR LIKE ANEK-XBLNR,
           SGTXT LIKE ANEK-SGTXT,
           KANSW LIKE ANLC-KANSW,
           KNAFA LIKE ANLC-KNAFA,
           AAFAP LIKE ANLC-AAFAP,
           GJAHR LIKE ANEK-GJAHR,
           END OF IT_FINAL.
    DATA : LINE_COLOR(4) TYPE C.
    DATA : FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
    SELECTION-SCREEN : BEGIN OF BLOCK B_FA WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_BUKRS FOR ANLA-BUKRS DEFAULT 'ML',
                    S_ANLN1 FOR ANLA-ANLN1,
                    S_ANLN2 FOR ANLA-ANLN2.
                    s_gjahr FOR anlc-gjahr.
    SELECTION-SCREEN : END OF BLOCK B_FA.
    *SELECT-OPTIONS : s_belnr FOR anek-belnr.
    SELECT BUKRS ANLN1 ANLN2 AKTIV TXT50 ZUGDT MENGE MEINS
          FROM ANLA
          INTO CORRESPONDING FIELDS OF TABLE T_ANLA
          WHERE ANLN1 IN S_ANLN1
          AND   ANLN2 IN S_ANLN2
          AND   BUKRS IN S_BUKRS.
    SELECT BUKRS ANLN1 ANLN2 GSBER KOSTL STORT RAUMN KFZKZ
          FROM ANLZ
          INTO CORRESPONDING FIELDS OF TABLE T_ANLZ
          FOR ALL ENTRIES IN T_ANLA
          WHERE ANLN1 = T_ANLA-ANLN1
          AND   ANLN2 = T_ANLA-ANLN2
          AND   BUKRS = T_ANLA-BUKRS.
    *IF sy-subrc EQ 0.
    SELECT BUKRS ANLN1 ANLN2 BELNR BUDAT XBLNR SGTXT GJAHR
          FROM ANEK
          INTO CORRESPONDING FIELDS OF TABLE T_ANEK
          FOR ALL ENTRIES IN T_ANLA
          WHERE ANLN1 = T_ANLA-ANLN1
          AND   ANLN2 = T_ANLA-ANLN2
          AND   BUKRS = T_ANLA-BUKRS.
          AND   gjahr = t_anek-gjahr.
    *ENDIF.
    SELECT BUKRS ANLN1 ANLN2 KANSW KNAFA AAFAP AFABE GJAHR
          FROM ANLC
          INTO CORRESPONDING FIELDS OF TABLE T_ANLC
          FOR ALL ENTRIES IN T_ANLA
          WHERE ANLN1 = T_ANLA-ANLN1
          AND   ANLN2 = T_ANLA-ANLN2
          AND   BUKRS = T_ANLA-BUKRS
          AND   GJAHR = T_ANLC-GJAHR.
          AND   afabe = '01'.
    LOOP AT T_ANLA.
    MOVE : T_ANLA-ANLN1 TO IT_FINAL-ANLN1,
            T_ANLA-ANLN2 TO IT_FINAL-ANLN2,
            T_ANLA-AKTIV TO IT_FINAL-AKTIV,
            T_ANLA-TXT50 TO IT_FINAL-TXT50,
            T_ANLA-ZUGDT TO IT_FINAL-ZUGDT,
            T_ANLA-MENGE TO IT_FINAL-MENGE,
            T_ANLA-MEINS TO IT_FINAL-MEINS.
    READ TABLE T_ANLZ WITH KEY BUKRS = T_ANLA-BUKRS
                              ANLN1 = T_ANLA-ANLN1
                              ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE : T_ANLZ-GSBER TO IT_FINAL-GSBER,
           T_ANLZ-KOSTL TO IT_FINAL-KOSTL,
           T_ANLZ-STORT TO IT_FINAL-STORT,
           T_ANLZ-RAUMN TO IT_FINAL-RAUMN,
           T_ANLZ-KFZKZ TO IT_FINAL-KFZKZ.
    ENDIF.
    READ TABLE T_ANLC WITH KEY BUKRS = T_ANLA-BUKRS
                              ANLN1 = T_ANLA-ANLN1
                              ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE : T_ANLC-KANSW TO IT_FINAL-KANSW,
           T_ANLC-KNAFA TO IT_FINAL-KNAFA,
           T_ANLC-AAFAP TO IT_FINAL-AAFAP.
    ENDIF.
    *SORT t_anla.
    READ TABLE T_ANEK WITH KEY BUKRS = T_ANLA-BUKRS
                              ANLN1 = T_ANLA-ANLN1
                              ANLN2 = T_ANLA-ANLN2 BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    MOVE : T_ANEK-BELNR TO IT_FINAL-BELNR,
           T_ANEK-BUDAT TO IT_FINAL-BUDAT,
           T_ANEK-XBLNR TO IT_FINAL-XBLNR,
           T_ANEK-SGTXT TO IT_FINAL-SGTXT.
    ENDIF.
    APPEND IT_FINAL.
    *ENDLOOP.
    ENDLOOP.
    *ENDIF.
    PERFORM BUILD_FIELDCATALOG.
    PERFORM DISPLAY_ALV_REPORT.
    PERFORM BUILD_LAYOUT.
          FORM BUILD_FIELDCATALOG                                       *
    FORM BUILD_FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'ANLN1'.
    FIELDCATALOG-SELTEXT_M = 'ASSET MAIN NO'.
    FIELDCATALOG-COL_POS   = 0.
    FIELDCATALOG-OUTPUTLEN = 14.
    FIELDCATALOG-EMPHASIZE = 'X'.
    FIELDCATALOG-KEY       = 'X'.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'ANLN2'.
    FIELDCATALOG-SELTEXT_M = 'SUB NO'.
    FIELDCATALOG-COL_POS   = 1.
    FIELDCATALOG-OUTPUTLEN = 7.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'AKTIV'.
    FIELDCATALOG-SELTEXT_M = 'CAP.DATE'.
    FIELDCATALOG-COL_POS   = 2.
    FIELDCATALOG-OUTPUTLEN = 10.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'TXT50'.
    FIELDCATALOG-SELTEXT_M = 'NAME'.
    FIELDCATALOG-COL_POS   = 3.
    FIELDCATALOG-OUTPUTLEN = 50.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'ZUGDT'.
    FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.
    FIELDCATALOG-COL_POS   = 4.
    FIELDCATALOG-OUTPUTLEN = 10.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'MENGE'.
    FIELDCATALOG-SELTEXT_M = 'QTY'.
    FIELDCATALOG-COL_POS   = 5.
    FIELDCATALOG-OUTPUTLEN = 13.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'MEINS'.
    FIELDCATALOG-SELTEXT_M = 'UNITS'.
    FIELDCATALOG-COL_POS   = 6.
    FIELDCATALOG-OUTPUTLEN = 3.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'GSBER'.
    FIELDCATALOG-SELTEXT_M = 'BA'.
    FIELDCATALOG-COL_POS   = 7.
    FIELDCATALOG-OUTPUTLEN = 4.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'KOSTL'.
    FIELDCATALOG-SELTEXT_M = 'COST CENTER'.
    FIELDCATALOG-COL_POS   = 8.
    FIELDCATALOG-OUTPUTLEN = 13.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'STORT'.
    FIELDCATALOG-SELTEXT_M = 'LOCATION'.
    FIELDCATALOG-COL_POS   = 9.
    FIELDCATALOG-OUTPUTLEN = 10.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'RAUMN'.
    FIELDCATALOG-SELTEXT_M = 'ROOM'.
    FIELDCATALOG-COL_POS   = 10.
    FIELDCATALOG-OUTPUTLEN = 10.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'KFZKZ'.
    FIELDCATALOG-SELTEXT_M = 'LICENSE PLATE NO'.
    FIELDCATALOG-COL_POS   = 11.
    FIELDCATALOG-OUTPUTLEN = 20.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
    FIELDCATALOG-FIELDNAME = 'BELNR'.
    FIELDCATALOG-SELTEXT_M = 'DOC NO'.
    FIELDCATALOG-COL_POS   = 12.
    FIELDCATALOG-OUTPUTLEN = 13.
    APPEND FIELDCATALOG TO FIELDCATALOG.
    CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'BUDAT'.
      FIELDCATALOG-SELTEXT_M = 'POSTING DATE'.
      FIELDCATALOG-COL_POS   = 13.
      FIELDCATALOG-OUTPUTLEN = 15.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'XBLNR'.
      FIELDCATALOG-SELTEXT_M = 'REF NO'.
      FIELDCATALOG-COL_POS   = 14.
      FIELDCATALOG-OUTPUTLEN = 25.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
      FIELDCATALOG-FIELDNAME = 'SGTXT'.
      FIELDCATALOG-SELTEXT_M = 'TEXT'.
      FIELDCATALOG-COL_POS   = 15.
      FIELDCATALOG-OUTPUTLEN = 50.
      APPEND FIELDCATALOG TO FIELDCATALOG.
      CLEAR FIELDCATALOG.
    ENDFORM.
          FORM BUILD_LAYOUT                                             *
    FORM BUILD_LAYOUT.
    GD_LAYOUT-ZEBRA = 'X'.
    GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
    ENDFORM.
          FORM DISPLAY_ALV_REPORT                                       *
    FORM DISPLAY_ALV_REPORT.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
         EXPORTING
            I_INTERFACE_CHECK        = ' '
            I_CALLBACK_PROGRAM       = ' '
            I_CALLBACK_PF_STATUS_SET = ' '
            I_CALLBACK_USER_COMMAND  = ' '
            I_STRUCTURE_NAME         =
            IS_LAYOUT                = GD_LAYOUT
              IT_FIELDCAT              = FIELDCATALOG[]
            IT_EXCLUDING             =
            IT_SPECIAL_GROUPS        =
            IT_SORT                  =
            IT_FILTER                =
            IS_SEL_HIDE              =
            I_DEFAULT                = 'X'
            I_SAVE                   = ' '
            IS_VARIANT               = ' '
            IT_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                 = IT_FINAL
          EXCEPTIONS
               PROGRAM_ERROR            = 1
               OTHERS                   = 2.
    ENDFORM.
    Thanks
    manju

  • Create authorization check for a report

    Hi,
    I need to create an authorization check for a report. It means that I need to restrict the usage of the report to couple of users ( 'USER1' and 'USER2' ). How can I do that? I did read through a lot of threads regarding this piece got a bit confused and stuck while creating the authorization object.
    Say the report name is ZHR_TIMEABC.
    Can anyone explain how to create an authorization object and how are they tied to the object and call them in the abap code?
    Thanks in advance,
    VG

    Hi,
    Thanks. Here is my understanding, S_C_FUNCT calls a system generated function module to make an authority check. So, if different users say USER1 and USER2 have different authroization levels, defined in their user profile, just adding this piece code will take care of authroization check for the program OR do I need to take care of something else?
    If so, when do we need to create the authorization objects using SU20 and assign the group and follo this process? When do we use this approach ( lot of threads on authority check have mentioned this procedure)?
    Your inputs will be helpful to understand this concept.
    Thanks,
    VG

Maybe you are looking for