Code: Alles auswählen.
* Haupttabellenstruktur erstellen
paramtere s_sammg type vbsk-sammg.
* Lieferpositionen
DATA:
  begin of lief_pos,
    posnr type lips-posnr,
    matnr type lips-matnr,
    lfimg type lips-lfimg,
    vrkme type lips-vrkme,
  end of lief_pos,
  pos_tab like table of lief_pos,
  pos_line like line of pos_tab,
* Lieferungen
  begin of lief,
    vbeln type likp-vbeln,
    wadat type likp-wadat,
    btgew type likp-btgew,
    gewei type likp-gewei,
    pos_tab    like pos_tab,
  end of lief,
  lief_tab type table of lief,
  lief_line like line of lief_tab,
* Liefergruppen
  begin of liefgruppe,
    sammg type vbsk-sammg,
    smart type vbsk-smart,
    brgew type vbsk-brgew,
    gewei type vbsk-gewei,
    lief_tab   like lief_tab,
  end of liefgruppe.
**Daten suchen
  refresh: lief_tab, pos_tab.
    clear  : liefergruppe, lief_line, pos_line.
    clear: liefgruppe.
    liefgruppe-sammg = s_sammg.
    check not liefgruppe-sammg is initial.
*   Daten über die Liefergruppe
    select single smart brgew gewei
      into (liefgruppe-smart, liefgruppe-brgew,
            liefgruppe-gewei)
      from vbsk
     where sammg = liefgruppe-sammg.
*   Lieferungen in der Liefergruppe
    clear: lief_tab, lief_line.
    select vbeln
      into lief_line-vbeln
      from vbss
     where sammg = liefgruppe-sammg.
     
*     Daten aus der Lieferungen suchen
      select single wadat btgew gewei
        into (lief_line-wadat, lief_line-btgew,
              lief_line-gewei)
        from likp
       where vbeln = tmp_lief_line_vbeln.
      if sy-subrc = 0.
*       Lieferpositionen suchen      
        clear: lief_pos_tab.
        select posnr matnr lfimg vrkme
          into table lief_pos_tab
          from lips
         where vbeln = lief_line-vbeln.
      endif.
      lief_line-pos_tab[] = lief_pos_tab[].
      append lief_line to lief_tab.
      clear: lief_line, tmp_lief_line-vbeln.
    endselect.
    liefgruppe-lief_tab[] = lief_tab[].