Ich hab immer zu kompliziert gedacht, das hat mich weitergebracht. Allerdings würde ich jetzt eine VaterTabelle machen und eine Kindtabelle, damit diese Unterschiedliche Angaben ausgeben können.(Weniger, kleinere Tabelle für Kind)
Nun würde ich mit Darstellungsbedingungen arbeiten, aber wenn ich sage ist kein Vaterartikel, zeigt er normale Artikel auch nicht mehr an :/
Hat mich ja nicht losgelassen...
Wie gesagt, das ist mit Untertabellen, die so nicht vorgesehen sind und auch dementsprechend nicht von JTL als solche angelegt wurden, eine sehr verzwickte Sache, zuweilen unmöglich. Wobei ich auch nicht ausprobiert habe, wie es sich verhält, wenn man versucht, in die Tabelle einer Preisliste mit Filter "nur Vaterartikel" eine Tabelle aus einer Preisliste mit Filter "nur Kindartikel" als Untertabelle einzufügen. Das Problem ist, so glaube ich zumindest, dass ein möglicher Filter wie "Zeige nur die Kindartikel des Vaters an, dessen Untertabelle Du bist" für die Untertabelle (mindestens, wenn sie nicht von außen kommt), einmal Preislistenartikel.Artikel.InterneArtikelnummer des Vaters und einmal des Kindes benötigt, aber keine notwendige Distinktion existiert.
Dafür habe ich es jetzt über eine Kombination von Gruppierung und Darstellungsbedingungen hinbekommen, dass es zumindest aussieht wie eine Untertabelle. Hier die Vorgehensweise:
- Ändern der Einstellungen der Tabelle: Zeilenoptionen - Zebramuster: Transparent
- Ändern der Einstellungen der Tabelle: Sortierung: Artikelname (falls Artikelnummern nicht direkt aufeinanderfolgend)
- Verschieben der Kopfzeile in den Gruppenkopf (ausschneiden, einfügen). Das wird die Kopzeile der Vaterartikel.
Darstellungsbedingung: Preislistenartikel.Artikel.IstVaterartikel
Gruppieren nach: JTL_DirectQuery("SELECT kVaterArtikel FROM tArtikel WHERE kArtikel ="+Fstr$(Preislistenartikel.Artikel.InterneArtikelnummer,"?")+"")
Hintergrundanpassung dieser Zeile
- Duplizieren dieser Zeile über dieser Zeile mit nur einer Spalte, einem beliebigen Text (ich hab "FREIZEILE" genommen), Farbe dieses Texts auf Weiß. Hintergrund auf Transparent. Feste Höhe auf 8 mm.
Das sorgt für den Abstand nach oben.
- Nochmaliges Duplizieren der eigentlichen Kopfzeile als Zeile darunter, aber mit der Darstellungsbedingung: not Preislistenartikel.Artikel.IstVaterartikel
Das wird die Kindartikel-Kopfzeile.
- Anpassen der Formatierung und Spaltenbreiten der Kindartikel-Kopfzeile, ggf. Ergänzung einer Füllzelle am Anfang.
- Fast identisches Vorgehen im Bereich Datenzeile, also mit denselben Darstellungsbedingungen. Unterschiede:
Freizeile jetzt nicht über, sondern unter der Vaterartikel-Datenzeile und mit fester Höhe von 4 mm.
Kein "Gruppieren nach". Das gilt nur für den Gruppenkopf (und den Gruppenfuß, wenn man einen eingestellt hat).
Hintergrund der Kind-Datenzeile (Zebra Muster): Feste Farbe, aber mit Formel bei der Farbe: If(Even(CurrentDataLineIndex()),LL.Color.White,LL.Color.Gainsboro)
Die Formatierungen kann man natürlich nach dem eigenen Gusto anpassen, ebenso wie die Spalteninhalte.
Sieht nach der Anleitung bei uns so aus (Ausschnitt):
Möglicherweise benötigt man am Ende die Gruppierung gar nicht (dafür ist ja auch irgendeine Sortierung nötig, die sonst wohl automatisch durch die Abfolge Vater-Kinder-Vater-Kinder- usw. gegeben ist) und kann einfach die Gruppenkopfzeilen als normale Kopfzeilen setzen, aber immer noch mit den Darstellungsbedingungen. Hab das aber nicht mehr getestet. War am Ende froh, es überhaupt nach vielen Sackgasse mit Untertabellen hinbekommen zu haben, dass es wie eine Untertabellen aussieht.