Skip to Content
-2
May 18, 2020 at 10:35 AM

abap 7.5 loop at error

590 Views

hi all,

i not getting these fields data in alv output...

VBELN, AUDAT, POSNR, MATNR, MEINS, MAKTX. please check code.

REPORT zmanoj4.
TABLES : kna1, vbak, vbap, makt.

TYPES : BEGIN OF ty,
          kunnr  TYPE kunnr,
          name1  TYPE name1,
          vbeln  TYPE vbeln,
          audat  TYPE audat,
          posnr  TYPE posnr,
          matnr  TYPE matnr,
          kwmeng TYPE kwmeng,
          meins  TYPE meins,
          netwr  TYPE netwr,
          maktx  TYPE maktx,
        END OF ty.


DATA : it TYPE TABLE OF ty,
       wa TYPE ty.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
      wa_fieldcat TYPE slis_fieldcat_alv.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS p_num TYPE kna1-kunnr.
SELECTION-SCREEN END OF BLOCK b1.

START-OF-SELECTION.
  PERFORM get.
  PERFORM alv.
  PERFORM out.

FORM get.
  SELECT kunnr,
         name1 FROM kna1 INTO TABLE @DATA(it_knal)
         WHERE kunnr EQ @p_num.

  IF sy-subrc EQ 0.
  SELECT vbeln,
           audat,
           kunnr FROM vbak INTO TABLE @DATA(it_vbak)
           FOR ALL ENTRIES IN @it_knal
           WHERE kunnr EQ @it_knal-kunnr.
  ENDIF.

  SELECT vbeln,
         posnr,
         matnr,
         kwmeng,
         meins,
         netwr FROM vbap INTO TABLE @DATA(it_vbap)
         FOR ALL ENTRIES IN @it_vbak
         WHERE vbeln EQ @it_vbak-vbeln.

  IF sy-subrc EQ 0.
    SELECT matnr,
           maktx FROM makt INTO TABLE @DATA(it_makt)
           FOR ALL ENTRIES IN @it_vbap
           WHERE matnr EQ @it_vbap-matnr.
  ENDIF.


  LOOP AT it_vbak INTO DATA(wa_vbak).
    READ TABLE it_vbap INTO DATA(wa_vbap) WITH KEY vbeln = wa_vbak-vbeln.
    READ TABLE it_knal  INTO DATA(wa_knal) WITH KEY kunnr = wa_vbak-kunnr.
    READ TABLE it_makt INTO DATA(wa_makt) WITH KEY matnr = wa_vbap-matnr.
    APPEND wa_vbak TO it.
  ENDLOOP.
ENDFORM.



FORM alv.
  wa_fieldcat-fieldname = 'KUNNR'.
  wa_fieldcat-ref_tabname = 'KNA1'.
  wa_fieldcat-seltext_m = 'Accounting Document Number'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname = 'NAME1'.
  wa_fieldcat-ref_tabname = 'KNA1'.
  wa_fieldcat-seltext_m = 'AccountDocument Number'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname = 'VBELN'.
  wa_fieldcat-ref_tabname = 'VBAK'.
  wa_fieldcat-seltext_m = 'Accounng Document Number'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.

  wa_fieldcat-fieldname = 'AUDAT'.
  wa_fieldcat-ref_tabname = 'VBAK'.
  wa_fieldcat-seltext_m = 'AccounDocument Number'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.


  wa_fieldcat-fieldname = 'POSNR'.
  wa_fieldcat-ref_tabname = 'VBAP'.
  wa_fieldcat-seltext_m = 'Acing Document Number'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.


  wa_fieldcat-fieldname = 'MATNR'.
  wa_fieldcat-ref_tabname = 'VBAP'.
  wa_fieldcat-seltext_m = 'Acincument Number'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.


  wa_fieldcat-fieldname = 'KWMENG'.
  wa_fieldcat-ref_tabname = 'VBAP'.
  wa_fieldcat-seltext_m = 'Acing Document Number'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.


  wa_fieldcat-fieldname = 'MEINS'.
  wa_fieldcat-ref_tabname = 'VBAP'.
  wa_fieldcat-seltext_m = 'Acing Document Number'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.


  wa_fieldcat-fieldname = 'NETWR'.
  wa_fieldcat-ref_tabname = 'VBAP'.
  wa_fieldcat-seltext_m = 'AcingD'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.


  wa_fieldcat-fieldname = 'MAKTX'.
  wa_fieldcat-ref_tabname = 'MAKT'.
  wa_fieldcat-seltext_m = 'Acing r'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
ENDFORM.

FORM out.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_grid_title = 'ACCOUNTING DOCUMENT DETAILS'
      it_fieldcat  = it_fieldcat
    TABLES
      t_outtab     = it.
ENDFORM.