Neu Darstellungsbedingung Stücklisten-Tabelle

windpocke02

Gut bekanntes Mitglied
6. März 2017
110
6
Hallo,
ich habe eben auf die Wawi 1.9 geupdated. Erfreulicherweise kann man hier wieder eine Tabelle mit den Stücklisten-Komponenten auf dem Lieferschein etc. ausgeben.
Angezeigt wird mir das auf dem Lieferschein wunderbar. Ich habe nun aber das Problem, dass der Zeilenabstand zwischen "normalen" Artikeln nun größer ist als vorher.
Ich vermute das hängt damit zusammen, dass bei der Tabelle für die Stücklisten eingestellt ist "immer anzeigen".
Ich wollte nun eine Darstellungsbedingung bei der Tabelle hinterlegen, dass diese nur angezeigt wird, wenn es sich um einen Stücklistenartikel hat.
Ich finde allerdings keine Varibale für Stücklistenartikel = ja.
Kann mir jemand bei der Darstellungsbedingung helfen?

Vielen Dank und beste Grüße
Daniel
 

frankell

Sehr aktives Mitglied
9. September 2019
368
183
Flensburg
Hallo @windpocke02,

probier mal Folgendes für Pickliste pro Auftrag:

Code:
JTL_DirectQuery("
SELECT CASE WHEN EXISTS
(SELECT 1 FROM tStueckliste WHERE kVaterartikel = "+Fstr$(PickListPositionOrder.ProductInternalId,"?")+"
THEN 'true'
ELSE 'false'
END
")

Bzw. Folgendes für Pickliste pro Lager:

Code:
JTL_DirectQuery("
SELECT CASE WHEN EXISTS
(SELECT 1 FROM tStueckliste WHERE kVaterartikel = "+Fstr$(PickListPositionWarehouse.ProductInternalId,"?")+"
THEN 'true'
ELSE 'false'
END
")
 

windpocke02

Gut bekanntes Mitglied
6. März 2017
110
6
Hallo @windpocke02,

probier mal Folgendes für Pickliste pro Auftrag:

Code:
JTL_DirectQuery("
SELECT CASE WHEN EXISTS
(SELECT 1 FROM tStueckliste WHERE kVaterartikel = "+Fstr$(PickListPositionOrder.ProductInternalId,"?")+"
THEN 'true'
ELSE 'false'
END
")

Bzw. Folgendes für Pickliste pro Lager:

Code:
JTL_DirectQuery("
SELECT CASE WHEN EXISTS
(SELECT 1 FROM tStueckliste WHERE kVaterartikel = "+Fstr$(PickListPositionWarehouse.ProductInternalId,"?")+"
THEN 'true'
ELSE 'false'
END
")
Hallo,

vielen Dank für den Tipp. Auf dem Lieferschein (also dort wo ich es benötige) funktioniert das leider nicht.
Kommt ein Syntaxfeler "PickListPositionOrder.ProductInternalId" kann nicht interpretiert werden.

lg
 

frankell

Sehr aktives Mitglied
9. September 2019
368
183
Flensburg
Hallo,

vielen Dank für den Tipp. Auf dem Lieferschein (also dort wo ich es benötige) funktioniert das leider nicht.
Kommt ein Syntaxfeler "PickListPositionOrder.ProductInternalId" kann nicht interpretiert werden.

lg
Oh man, lesen müsste man können... 😂 Sorry, war grad voll im Picklistenthema, als ich schrieb. Das Feld funktioniert natürlich nicht in Lieferscheinen. Nimm stattdessen: DeliveryNotePosition.Product.InternalID
 

windpocke02

Gut bekanntes Mitglied
6. März 2017
110
6
Oh man, lesen müsste man können... 😂 Sorry, war grad voll im Picklistenthema, als ich schrieb. Das Feld funktioniert natürlich nicht in Lieferscheinen. Nimm stattdessen: DeliveryNotePosition.Product.InternalID
Vielen Dank. Also die Bedinigung nimmt er jetzt an. Führt aber dazu, dass auch bei Stücklistenartikeln die Komponenten nicht angezeigt werden :(
 

frankell

Sehr aktives Mitglied
9. September 2019
368
183
Flensburg
Wenn ich das richtig überblicke, kann in der Darstellungsbedingung überhaupt nicht auf Felder aus DeliveryNotePosition zurückgegriffen werden. Das wäre aber notwendig, um bspw. sagen zu können: Zeige die Tabelle nur an, wenn die Lieferscheinposition ein (Stücklisten-)Vaterartikel ist. Daher wirft DeliveryNotePosition.Product.InternalID auch immer nur 0 aus, weswegen die Tabelle immer ausgeblendet wird. Ich habe auch die anderen Felder probiert, die auch ohne SQL das Gewünschte bringen sollten. Aber alle führen zum selben Ergebnis.

Entweder ist das ein Bug, oder ich habe nur noch nicht verstanden, wie es geht.

Workaround:
  1. Abstand nach und vor löschen.
  2. Wenn Du in der Kopfzeile der Untertabelle ohne Hintergrundfarben und ohne vertikale Linien auskommst, dann kannst Du den Spalten der Kopfzeile einen bestimmten Abstand [n] von oben mitgeben: If(CurrentDataLineIndex()=1,[n],0)
    Es funktioniert auch eine Gruppenkopfzeile, jedoch nur ohne Kopfzeile, weil die Gruppen...zeilen die Datenzeilen einschließen, also die Kopfzeile über der Gruppenkopfzeile liegt und die Fußzeile unter der Gruppenfußzeile. Der Kopfzeile eine leere Zeile oben hinzuzufügen, führt dazu, dass bei einem Seitenumbruch innerhalb der Stücklistenkomponenten die Gruppenkopfzeile am Anfang der Folgeseite erneut ausgegeben wird.
  3. Du kannst der Tabelle eine leere Gruppenfußzeile spendieren mit der von Dir gewünschten festen Höhe. Diese wird tatsächlich nur angezeigt, wenn die Tabelle nicht leer ist, also wirklich eine Stückliste vorliegt. Aber: Das funktioniert analog zur Gruppenkopfzeile nur, wenn Du auf eine Fußzeile verzichtest, denn die Gruppenfußzeile liegt oberhalb der Fußzeile. Also wird die Fußzeile auch vor einem Seitenumbruch innerhalb der Stücklistentabelle erneut ausgegeben.
Recht kompliziert.