Skip to Content
-5
May 29, 2020 at 11:08 AM

abap fields in output are overlapping..

515 Views

getting same out put for multiple fields..!! help out..

abap fields in output are overlapping..

and user command set parameters on s00 ttcode is also not working..!!

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

TABLES : bseg,bkpf,skat.

TYPES: BEGIN OF ty_final,
         hkont  TYPE hkont, "  gl account number
         saknr  TYPE saknr,  "  gl account number
         belnr  TYPE belnr,  "  document number
         budat  TYPE budat,  "  posting date
         bldat  TYPE bldat,  "  documrnt date
         augcp  TYPE augcp,  "  entry date
*         dmbtr  TYPE dmbtr,  "  local currency
         pswsl  TYPE pswsl,
         xref1  TYPE xref1,  "  business partner
         sgxtx  TYPE sgtxt,  "  item text
         dzuonr TYPE dzuonr, "asignment number
         bktxt  TYPE bktxt,  "  header text
         wrbtr  TYPE wrbtr,
         txt50  TYPE txt50,

       END OF  ty_final.


DATA: it          TYPE TABLE OF ty_final,
      wa          TYPE ty_final,
      it_fcat     TYPE slis_t_fieldcat_alv,
      wa_fcat     TYPE slis_fieldcat_alv,
      it_event    TYPE slis_t_event,
      wa_event    TYPE slis_alv_event,
      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 : s1 FOR bseg-hkont,         " gl account num
                   s2 FOR bseg-h_budat,       " posting data
                   s3 FOR bseg-prctr.         " profit centre
  SELECTION-SCREEN END OF BLOCK b1.

*
*AT SELECTION-SCREEN ON s1.
*  IF s1 IS NOT INITIAL.
*    MESSAGE ' Enter Proper Data' TYPE 'E'.
*  ENDIF.
*
*AT SELECTION-SCREEN ON s2.
*  IF s2 IS NOT INITIAL.
*    MESSAGE ' Enter Proper Data' TYPE 'E'.
*  ENDIF.
*
*AT SELECTION-SCREEN ON s3.
*  IF s3 IS NOT INITIAL.
*    MESSAGE ' Enter Proper Data' TYPE 'E'.
*  ENDIF.



START-OF-SELECTION.

  PERFORM get_data.

END-OF-SELECTION.

  PERFORM fcat.
  PERFORM events.
  PERFORM alvcall.
  PERFORM usercmd USING r_ucomm CHANGING rs_selfield.

FORM get_data.

  SELECT belnr,
         hkont,
         h_budat,
         h_bldat,
         augcp,
         pswsl,
*         dmbtr,
         xref1,
         sgtxt,
         zuonr,
         wrbtr FROM bseg INTO TABLE @DATA(t_bseg)
         WHERE hkont IN @s1
         AND h_budat IN @s2
  AND prctr IN @s3.


  CHECK sy-subrc EQ 0.

  SELECT bktxt,
         belnr
         FROM bkpf INTO TABLE @DATA(t_bkpf) FOR ALL ENTRIES IN  @t_bseg
         WHERE belnr EQ @t_bseg-belnr
         AND budat IN @s2.



  IF t_bseg[] IS NOT INITIAL.
    SORT t_bseg BY hkont.
    DELETE ADJACENT DUPLICATES FROM t_bseg COMPARING hkont.

    SELECT saknr,
           txt50 " Gl Account
           FROM skat INTO TABLE @DATA(t_skat) FOR ALL ENTRIES IN @t_bseg
           WHERE saknr EQ @t_bseg-hkont.

  ENDIF.

  SORT: t_bseg BY belnr ,
        t_bkpf BY belnr.

  LOOP AT t_bseg INTO DATA(w_bseg).
    wa-belnr = w_bseg-belnr.
    wa-budat = w_bseg-h_budat.
    wa-bldat = w_bseg-h_bldat.
    wa-augcp = w_bseg-augcp.
    wa-wrbtr = w_bseg-wrbtr.
    wa-pswsl = w_bseg-pswsl.
    wa-xref1 = w_bseg-xref1.
    wa-dzuonr = w_bseg-zuonr.

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

    IF sy-subrc EQ 0.
      wa-bktxt = w_bkpf-bktxt.
    ENDIF.

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

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

    APPEND wa TO it.
    CLEAR wa.
  ENDLOOP.

ENDFORM.

FORM fcat.

  CLEAR wa_fcat.
  CLEAR it_fcat.
*  REFRESH wa_fcat.
  REFRESH it_fcat.

  wa_fcat-fieldname = 'BELNR'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Document Number'.
  APPEND wa_fcat TO it_fcat.
  CLEAR wa_fcat.

  wa_fcat-fieldname = 'H_BUDAT'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Posting Date'.
  APPEND wa_fcat TO it_fcat.
  CLEAR wa_fcat.

  wa_fcat-fieldname = 'H_BLDAT'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Document Date'.
  APPEND wa_fcat TO it_fcat.
  CLEAR wa_fcat.

  wa_fcat-fieldname = 'AUGCP'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Entry Date'.
  APPEND wa_fcat TO it_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 it_fcat.
  CLEAR wa_fcat.

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

*  wa_fcat-fieldname = 'DMBTR'.
*  wa_fcat-ref_tabname = 'BSEG'.
*  wa_fcat-seltext_m = 'Currency'.
*  APPEND wa_fcat TO it_fcat.
*  CLEAR wa_fcat.

  wa_fcat-fieldname = 'ZUONR'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Assignmeant'.
  APPEND wa_fcat TO it_fcat.
  CLEAR wa_fcat.

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

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

  wa_fcat-fieldname = 'XREF1'.
  wa_fcat-ref_tabname = 'BSEG'.
  wa_fcat-seltext_m = 'Business Partner'.
  APPEND wa_fcat TO it_fcat.
  CLEAR wa_fcat.

  wa_fcat-fieldname = 'TXT50'.
  wa_fcat-ref_tabname = 'SKAT'.
  wa_fcat-seltext_m = 'DISCRIPTION'.
  APPEND wa_fcat TO it_fcat.
  CLEAR wa_fcat.

  APPEND wa_fcat TO it_fcat.
  CLEAR wa_fcat.


ENDFORM.



FORM events.

  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    IMPORTING
      et_events       = it_event
    EXCEPTIONS
      list_type_wrong = 1
      OTHERS          = 2.

  IF it_event IS NOT INITIAL.
    CLEAR wa_event.
    READ TABLE it_event INTO wa_event WITH KEY name = 'USER_COMMAND'.
    wa_event-form = 'USER'.
    MODIFY it_event FROM wa_event
    INDEX sy-tabix TRANSPORTING form.
  ENDIF.

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'
      it_fieldcat             = it_fcat
      it_events               = it_event
    TABLES
      t_outtab                = it.

ENDFORM.


FORM  usercmd  USING r_ucoma TYPE sy-ucomm
CHANGING rs_selfield TYPE slis_selfield.
  CASE rs_selfield-fieldname.
    WHEN 'BELNR'.
      SET PARAMETER ID 'DFD'
      FIELD rs_selfield-value.
      CALL TRANSACTION 'FS00' AND SKIP FIRST SCREEN.
      MESSAGE 'INVALID FIELD' TYPE 'S'.
  ENDCASE.
ENDFORM.

Attachments

aaaaaaaaaaaaa.jpg (73.8 kB)