Liebe/-r Experte/-in,
ich habe ein Problem als Neueinsteiger in ABAP (Student), und zwar verstehe ich einige Anweisungen nicht (trotz Googeln), Das Programm gibt Sachkonten mit dem ALV-Grid aus, dabei beinhaltet der erste Programmteil ein Include, da sonst der Programmcode zu lang und unübersichtlich geworden wäre. Die Select-Option, soll zwischen 3 verschieden Optionen auswählen können, nämlich: GUV und Bilanzkonten, nur Bilanzkonten, und nur GuV-Konten. Das Programm nimmt die Daten aus der Struktur, welche angelegt worden ist, und zwar aus den Tabellen SKA1, SKB1 und SKAT. Die hauptsächlichen Probleme habe ich mit dem Include. Ich hoffe Sie können mir die einzelnen wichtigsten Begriffe näher erläutern bezüglich ihrer Funktion. Vor allem verstehe ich If lv_lines >0 nicht.
FORM f_fill_tables.
DATA: lv_lines TYPE i.
CLEAR: it_ska1[], it_skb1[], it_skat[],it_tab[].
* Einträge aus SKA1-Tabelle auswählen
DESCRIBE TABLE so_ktonr LINES lv_lines.
IF lv_lines > 0.
* Selektion über Kontenplan und Kontennummer
SELECT * FROM ska1 INTO TABLE it_ska1
WHERE ktopl = p_ktplan AND saknr IN so_ktonr.
ELSE.
* Selektion nur über Kontenplan
SELECT * FROM ska1 INTO TABLE it_ska1
WHERE ktopl = p_ktplan.
ENDIF.
* passende Einträge aus der SKB1-Tabelle auswählen
DESCRIBE TABLE it_ska1 LINES lv_lines.
IF lv_lines > 0.
IF NOT p_bkreis IS INITIAL.
* Selection über Kontennummer und Buchungskreis
SELECT * FROM skb1 INTO TABLE it_skb1
FOR ALL ENTRIES IN it_ska1
WHERE saknr = it_ska1-saknr AND bukrs = p_bkreis.
ELSE.
* Selektion nur über Kontennummer
SELECT * FROM skb1 INTO TABLE it_skb1
FOR ALL ENTRIES IN it_ska1
WHERE saknr = it_ska1-saknr.
ENDIF.
* passende Bezeichnungen auswählen
SELECT * FROM skat INTO TABLE it_skat
FOR ALL ENTRIES IN it_ska1
WHERE SPRAS = sy-langu AND KTOPL = it_ska1-ktopl
AND SAKNR = it_ska1-saknr.
ENDIF.
* Ergebnistabelle zusammenbauen
LOOP AT it_skb1 INTO wa_skb1.
* Arbeitszeile initialisieren
CLEAR wa_zeile.
* Komponenten der SKB1-Tabelle übernehmen
wa_zeile-BUKRS = wa_skb1-BUKRS.
wa_zeile-SAKNR = wa_skb1-SAKNR.
wa_zeile-BEGRU = wa_skb1-BEGRU.
wa_zeile-BUSAB = wa_skb1-BUSAB.
wa_zeile-DATLZ = wa_skb1-DATLZ.
wa_zeile-ERDAT_SKB1 = wa_skb1-ERDAT.
wa_zeile-ERNAM_SKB1 = wa_skb1-ERNAM.
wa_zeile-FDGRV = wa_skb1-FDGRV.
wa_zeile-FDLEV = wa_skb1-FDLEV.
wa_zeile-FIPLS = wa_skb1-FIPLS.
wa_zeile-FSTAG = wa_skb1-FSTAG.
wa_zeile-HBKID = wa_skb1-HBKID.
wa_zeile-HKTID = wa_skb1-HKTID.
wa_zeile-KDFSL = wa_skb1-KDFSL.
wa_zeile-MITKZ = wa_skb1-MITKZ.
wa_zeile-MWSKZ = wa_skb1-MWSKZ.
wa_zeile-STEXT = wa_skb1-STEXT.
wa_zeile-VZSKZ = wa_skb1-VZSKZ.
wa_zeile-WAERS = wa_skb1-WAERS.
wa_zeile-WMETH = wa_skb1-WMETH.
wa_zeile-XGKON = wa_skb1-XGKON.
wa_zeile-XINTB = wa_skb1-XINTB.
wa_zeile-XKRES = wa_skb1-XKRES.
wa_zeile-XLOEB = wa_skb1-XLOEB.
wa_zeile-XNKON = wa_skb1-XNKON.
wa_zeile-XOPVW = wa_skb1-XOPVW.
wa_zeile-XSPEB_SKB1 = wa_skb1-XSPEB.
wa_zeile-ZINDT = wa_skb1-ZINDT.
wa_zeile-ZINRT = wa_skb1-ZINRT.
wa_zeile-ZUAWA = wa_skb1-ZUAWA.
wa_zeile-ALTKT = wa_skb1-ALTKT.
wa_zeile-XMITK = wa_skb1-XMITK.
wa_zeile-RECID = wa_skb1-RECID.
wa_zeile-FIPOS = wa_skb1-FIPOS.
wa_zeile-XMWNO = wa_skb1-XMWNO.
wa_zeile-XSALH = wa_skb1-XSALH.
wa_zeile-BEWGP = wa_skb1-BEWGP.
wa_zeile-INFKY = wa_skb1-INFKY.
wa_zeile-TOGRU = wa_skb1-TOGRU.
* Komponenten der SKA1-Tabelle füllen
READ TABLE it_ska1 INTO wa_ska1 WITH KEY saknr = wa_skb1-saknr.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_ska1 TO wa_zeile.
* dabei auch zugehörige Bezeichnungen füllen
READ TABLE it_skat INTO wa_skat WITH KEY
SPRAS = sy-langu KTOPL = wa_ska1-ktopl
SAKNR = wa_ska1-saknr.
IF sy-subrc = 0.
wa_zeile-TXT20 = wa_skat-TXT20.
wa_zeile-TXT50 = wa_skat-TXT50.
ENDIF.
ENDIF.
* gefüllte Zeile an Tabelle anhängen
APPEND wa_zeile TO it_tab.
ENDLOOP.
ENDFORM. " f_get_tables
Hier der Include