Skip to Content
-4
Jun 03, 2020 at 01:32 PM

not able to get all GL related documents number in output..!!! thanks advance

552 Views

*&---------------------------------------------------------------------*
*& Report Z_FI_GLACC
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_fi_glacc NO STANDARD PAGE HEADING.


TABLES : bseg,bkpf,skat,lfa1.


TYPES: BEGIN OF ty_final,
         sel,                 " for extra coloun in alv
         prctr  TYPE prctr,   " profit centre
         hkont  TYPE hkont,   " General Ledger Account
         belnr  TYPE belnr_d, " Accounting Document Number
         budat  TYPE budat,   " Posting Date in the Document
         bldat  TYPE bldat,   " Document Date in Document
         augcp  TYPE augcp,   " Clearing Entry Date
         pswsl  TYPE pswsl,   " Amount for Updating in General Ledger
         sgtxt  TYPE sgtxt,   " Item Text
         dzuonr TYPE dzuonr,  " Assignment number
         wrbtr  TYPE wrbtr,   " Amount in document currency
         lifnr  TYPE lifnr,   " Account Number of Vendor or Creditor
         gsber  TYPE gsber,   " Business area
         bupla  TYPE bupla,   " business place
         xblnr  TYPE xblnr,   " Reference Document Number
         bktxt  TYPE bktxt,   " Document Header Text
         cpudt  TYPE cpudt,   " Day On Which Accounting Document Was Entered
         saknr  TYPE saknr,   " gl account
         txt50  TYPE txt50_skat,   " G/L Account Long Text
         name1  TYPE name1,   " Vendor Namae
       END OF  ty_final.


DATA: gt          TYPE TABLE OF ty_final,
      gwa         TYPE ty_final,
      gt_fcat     TYPE slis_t_fieldcat_alv,
      wa_fcat     TYPE slis_fieldcat_alv,
      gs_layout   TYPE slis_layout_alv,
      gs_varient  TYPE disvariant,
      v_prog      TYPE sy-repid,
      v_name      TYPE sy-uname,
      rs_selfield TYPE slis_selfield,
      v_selfield  TYPE slis_selfield-value,
      r_ucomm     TYPE sy-ucomm.


INITIALIZATION.
  v_prog = sy-repid.
  v_name = sy-uname.


  SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS : s_hkont FOR bseg-hkont,         " gl account num
                   s_budat FOR bseg-h_budat,       " posting data
                   s_prctr FOR bseg-prctr.         " profit centre
  SELECTION-SCREEN END OF BLOCK b1.


START-OF-SELECTION.
  PERFORM get_data.


END-OF-SELECTION.
  PERFORM fcat.
  PERFORM alvcall.
  PERFORM usercmd USING r_ucomm CHANGING rs_selfield.


FORM get_data.


  SELECT
          prctr,
          hkont,
          belnr,
          h_budat,
          h_bldat,
          augcp,
          pswsl,
          sgtxt,
          zuonr,
          wrbtr,
          lifnr,
          gsber,
          bupla
          FROM bseg INTO TABLE @DATA(l_bseg)
          WHERE hkont IN @s_hkont
          AND h_budat IN @s_budat
          AND prctr IN @s_prctr.


  CHECK sy-subrc EQ 0.




  SELECT  xblnr,
          bktxt,
          cpudt,
          belnr
          FROM bkpf INTO TABLE @DATA(l_bkpf) FOR ALL ENTRIES IN  @l_bseg
          WHERE belnr EQ @l_bseg-belnr
          AND budat IN @s_budat.




    SELECT saknr,
           txt50
           FROM skat INTO TABLE @DATA(l_skat) FOR ALL ENTRIES IN @l_bseg
           WHERE saknr EQ @l_bseg-hkont.


  ENDIF.


  SELECT lifnr,
         name1 FROM lfa1 INTO TABLE @DATA(l_lfa1) FOR ALL ENTRIES IN @l_bseg
         WHERE lifnr EQ @l_bseg-lifnr.


  SORT: l_bseg BY belnr ,
        l_bkpf BY belnr.


  LOOP AT l_bseg INTO DATA(w_bseg).
    gwa-prctr = w_bseg-prctr.
    gwa-hkont = w_bseg-hkont.
    gwa-belnr = w_bseg-belnr.
    gwa-budat = w_bseg-h_budat.
    gwa-bldat = w_bseg-h_bldat.
    gwa-augcp = w_bseg-augcp.
    gwa-pswsl = w_bseg-pswsl.
    gwa-sgtxt = w_bseg-sgtxt.
    gwa-dzuonr = w_bseg-zuonr.
    gwa-wrbtr = w_bseg-wrbtr.
    gwa-lifnr = w_bseg-lifnr.
    gwa-gsber = w_bseg-gsber.
    gwa-bupla = w_bseg-bupla.


    READ TABLE l_bkpf INTO DATA(w_bkpf) WITH KEY belnr = w_bseg-belnr BINARY SEARCH.


    IF sy-subrc EQ 0.
      gwa-xblnr = w_bkpf-xblnr.
      gwa-bktxt = w_bkpf-bktxt.
      gwa-cpudt = w_bkpf-cpudt.
    ENDIF.


    READ TABLE l_skat INTO DATA(w_skat) WITH KEY saknr = w_bseg-hkont BINARY SEARCH.


    IF sy-subrc EQ 0.
      gwa-saknr = w_skat-saknr.
      gwa-txt50 = w_skat-txt50.
    ENDIF.


    READ TABLE l_lfa1 INTO DATA(w_lfa1) WITH KEY lifnr = w_bseg-lifnr .


    IF sy-subrc EQ 0.
      gwa-name1 = w_lfa1-name1.
    ENDIF.


    APPEND gwa TO gt.
    CLEAR gwa.
  ENDLOOP.


ENDFORM.


FORM fcat.


  gs_layout-zebra = 'X'.
  gs_layout-colwidth_optimize = 'X'.
  gs_layout-box_fieldname  = 'SEL'.
  gs_varient-report = sy-repid.


  wa_fcat-fieldname = 'BELNR'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Document Number'.
  wa_fcat-hotspot = 'X'.
  wa_fcat-outputlen = '15'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'SGTXT'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Text'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'PRCTR'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Profit Centre'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'BUDAT'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Posting Date'.
  wa_fcat-datatype    = 'DATS'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'AUGCP'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Clearing Entry Date'.
  wa_fcat-datatype    = 'DATS'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'BLDAT'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Document Date'.
  wa_fcat-datatype    = 'DATS'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'CPUDT'.
  wa_fcat-ref_tabname = 'BKPF'.
  wa_fcat-seltext_m = 'Entry Date'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'WRBTR'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Amount in Document Currency'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'PSWSL'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Currency'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'LIFNR'.
  wa_fcat-ref_tabname = 'LFA1'.
  wa_fcat-seltext_m = 'Vendor Number'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'NAME1'.
  wa_fcat-ref_tabname = 'LFA1'.
  wa_fcat-seltext_m = 'Vendor Name'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'XBLNR'.
  wa_fcat-ref_tabname = 'BKPF'.
  wa_fcat-seltext_m = 'Reference Document Number'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'DZUONR'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Assignmeant'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'BKTXT'.
  wa_fcat-ref_tabname = 'BKPF'.
  wa_fcat-seltext_m = 'Header Text'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'SAKNR'.
  wa_fcat-ref_tabname = 'SKA1'.
  wa_fcat-seltext_m = 'G/L Account'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'TXT50'.
  wa_fcat-ref_tabname = 'SKAT'.
  wa_fcat-seltext_m = 'G/L Discription'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.


  wa_fcat-fieldname = 'GSBER'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Business Area'.
  wa_fcat-outputlen = '15'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.




  wa_fcat-fieldname = 'BUPLA'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Business Place'.
  wa_fcat-outputlen = '15'.
  APPEND wa_fcat TO gt_fcat.
  CLEAR wa_fcat.




ENDFORM.




FORM alvcall.


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = v_prog
      i_callback_user_command = 'USERCMD'
      i_grid_title            = 'G/L ACCOUNTS DETAILS'
      is_layout               = gs_layout
      it_fieldcat             = gt_fcat
      is_variant              = gs_varient
    TABLES
      t_outtab                = gt.


ENDFORM.




FORM  usercmd  USING r_ucoma TYPE sy-ucomm CHANGING rs_selfield TYPE slis_selfield.
  CASE r_ucoma.
    WHEN '&IC1'.
      CASE rs_selfield-fieldname.
        WHEN 'BELNR'.
          SET PARAMETER ID 'BLN'
          FIELD rs_selfield-value.
          CALL TRANSACTION 'FB03'.
          " AND SKIP FIRST SCREEN.
      ENDCASE.
  ENDCASE.
ENDFORM.