‎2007 Nov 27 6:25 PM
Hi
this is a report to display G/L Accounts with material doc No .
I am getting confused in looping
please solve the report.
REPORT ZGLACCOUNT_REP
NO STANDARD PAGE HEADING
LINE-SIZE 250
LINE-COUNT 30(3) .
**********DECLARING TABLES**********
TABLES: BSIS,
BSIM.
*******DATA DECLARATION*******
TYPES : BEGIN OF TY_BSIS,
BUKRS TYPE BSIS-BUKRS, "COMPANY CODE
HKONT TYPE BSIS-HKONT, "GENERAL LEDGER ACCOUNT
GJAHR TYPE BSIS-GJAHR, "FISCAL YEAR
BELNR TYPE BSIS-BELNR, "ACCOUNTING DOCUMENT NO
BUDAT TYPE BSIS-BUDAT, "POSTING DATE IN THEDOCUMENT
BLART TYPE BSIS-BLART, "DOCUMENT TYPE
SHKZG TYPE BSIS-SHKZG, "DEBIT/CREDIT INDICATOR
DMBTR TYPE BSIS-DMBTR, "AMOUNT IN LOCAL CURRENCY
KOSTL TYPE BSIS-KOSTL, "COST CENTER
END OF TY_BSIS,
BEGIN OF TY_BSIM,
MATNR TYPE BSIM-MATNR,
BELNR TYPE BSIM-BELNR,
GJAHR TYPE BSIM-GJAHR,
MENGE TYPE BSIM-MENGE,
END OF TY_BSIM,
BEGIN OF TY_FINAL,
BUKRS TYPE BSIS-BUKRS,
HKONT TYPE BSIS-HKONT,
GJAHR TYPE BSIS-GJAHR,
BELNR TYPE BSIM-BELNR,
BUDAT TYPE BSIS-BUDAT,
BLART TYPE BSIS-BLART,
SHKZG TYPE BSIS-SHKZG,
DMBTR TYPE BSIS-DMBTR,
KOSTL TYPE BSIS-KOSTL,
MATNR TYPE BSIM-MATNR,
MENGE TYPE BSIM-MENGE,
END OF TY_FINAL.
DATA: W_BSIS TYPE TY_BSIS,
W_BSIM TYPE TY_BSIM,
W_FINAL TYPE TY_FINAL,
IT_BSIS TYPE TY_BSIS OCCURS 1,
IT_BSIM TYPE TY_BSIM OCCURS 1,
IT_FINAL TYPE TY_FINAL OCCURS 1 .
**********SELECT OPTIONS**********
SELECT-OPTIONS: S_ACCNT FOR BSIS-HKONT,
S_CODE FOR BSIS-BUKRS,
S_FYEAR FOR BSIS-GJAHR,
S_DCTYPE FOR BSIS-BLART,
S_PSDT FOR BSIS-BUDAT.
***********AT SELECTION SCREEN*********
AT SELECTION-SCREEN.
IF S_ACCNT IS NOT INITIAL.
SELECT SINGLE HKONT
FROM BSIS
INTO BSIS-HKONT
WHERE BELNR = BSIM-BELNR.
ENDIF.
IF sy-subrc <> 0 .
MESSAGE E001(ZLAL_MSG).
ENDIF.
IF S_CODE IS NOT initial.
SELECT SINGLE BUKRS
FROM BSIS
INTO BSIS-BUKRS
WHERE BUKRS IN S_CODE.
ENDIF.
IF sy-subrc <> 0 .
MESSAGE E001(ZLAL_MSG).
ENDIF.
IF S_FYEAR IS NOT INITIAL.
SELECT SINGLE GJAHR
FROM BSIS
INTO bsis-gjahr
WHERE GJAHR IN S_FYEAR.
ENDIF.
IF SY-SUBRC <> 0 .
MESSAGE E001(ZLAL_MSG).
ENDIF .
**********TOP-OF-PAGE********
TOP-OF-PAGE.
ULINE.
WRITE: /5 'A/C DOCUMENT NO',
26 'POSTING DATE',
43 'DOCUMENT DATE',
61 'DOCUMENT TYPE',
80 'AMOUNT',
93 'QUANTITY',
107 'MATERIAL NO',
123 'MATERIAL DESCRIPTION',
148 'DEBIT/CREDIT NO',
168 'COST CENTER' .
ULINE.
**********END OF PAGE*********
END-OF-PAGE .
ULINE.
***********DATA EXTRACATION********
START-OF-SELECTION .
SELECT * FROM BSIS INTO CORRESPONDING FIELDS OF TABLE IT_BSIS WHERE
HKONT IN S_ACCNT AND
BUKRS IN S_CODE AND
GJAHR IN S_FYEAR AND
BLART IN S_DCTYPE AND
BUDAT IN S_PSDT.
IF it_bsis[] IS NOT INITIAL.
SELECT * FROM BSIM INTO CORRESPONDING FIELDS OF TABLE IT_BSIM FOR ALL ENTRIES IN IT_BSIS
WHERE BELNR = IT_bsis-BELNR.
ENDIF.
*LOOP AT IT_BSIS INTO W_BSIS .
*SELECT BUKRS
HKONT
GJAHR
BUDAT
BLART
SHKZG
DMBTR
KOSTL
FROM BSIS INTO W_BSIS
WHERE BELNR = W_BSIM-BELNR.
*LOOP AT IT_BSIM ITNO W_BSIM .
*SELECT MATNR
BELNR
GJAHR
MENGE
INTO W_BSIS
WHERE BELNR = W_BSIS-BELNR.
MOVE CORRESPONDING W_BSIS INTO IT_FINAl.
move-corresponding w_bsim into it_final .
*append w_final to It_final .
*clear w_final .
*endloop.
*endloop .
*
‎2007 Nov 27 6:33 PM
Please see:
<a href="/people/rob.burbank/blog/2007/11/12/quickly-retrieving-fi-document-data-from-bseg">Quickly Retrieving FI document Data from BSEG</a>
I have section there that deals with material documents.
Rob