Eigentlich ist das ganz einfach, mit Bordmitteln sind die beiden Kommentarfelder aber nicht zu erreichen. Leider werden sie in der Datenbank auch in einem einzigen Kommentarfeld zusammengepfercht, so dass aus dem Beispiel
Kommentar1 > "Lager=1" und
Kommentar2 > "Regal=3-2-1" in der Datenbank
"Lager=1 | Regal=3-2-1" resultiert.
Hier aber erst einmal die Schritte, um überhaupt an den Kommentar-String zu kommen ...
Als erstes müsst Ihr Euch innerhalb der Tabelle Lieferscheinpositionen im Berichtscontainer eine Subtabelle an der Stelle einfügen, an der Eure Lagerinformation erscheinen soll. Als Datenquelle für diese Subtabelle wählt Ihr bei der entsprechenden Auswahl die Warenlagerausgänge aus.
Dann erzeugt Ihr Euch in dieser neuen Tabellenzeile eine Datenzeile mit einem Textfeld und gebt hier folgende Abfrage ein...
Code:
JTL_DirectQuery ("SELECT tWarenLagerEingang.cKommentar FROM tWarenLagerEingang JOIN tWarenLagerAusgang ON tWarenLagerEingang.kWarenLagerEingang=tWarenLagerAusgang.kWarenLagerEingang WHERE tWarenLagerAusgang.kWarenLagerAusgang='"+ToString$(Warenlagerausgänge.InterneWarenlagerausgangsnummer)+"'")
Den Wert, der dabei zurückgegeben wird, also die Lager+Regal Information, könnt Ihr natürlich genau so unverändert ausgeben, wenn Ihr mit dem "|" Zeichen zwischen den Werten leben könnt.
Da ich die Kommentare aber mit "Lager=" und "Regal=" begonnen habe (wichtig sind die Gleichheitszeichen), resultiert hieraus ein Rückgabestring, der sich ziemlich unverändert in einer Alias$() Abfrage einsetzen lässt. Konkret müsst Ihr die JTL_DirectQuery nur von den Leerzeichen um das Pipe Zeichen (vertikaler Strich) herum befreien, denn die verhindern die Erkennung des Regaleintrags. Dazu müsst Ihr den JTL Query-Befehl von oben wie folgt einbetten...
Code:
StrSubst$(JTL_DirectQuery ("SELECT tWarenLagerEingang.cKommentar FROM tWarenLagerEingang JOIN tWarenLagerAusgang ON tWarenLagerEingang.kWarenLagerEingang=tWarenLagerAusgang.kWarenLagerEingang WHERE tWarenLagerAusgang.kWarenLagerAusgang='"+ToString$(Warenlagerausgänge.InterneWarenlagerausgangsnummer)+"'")," | ","|")
Um Lager und Regal in separaten Zeilen ausgeben zu können, müsst Ihr die obige JTL_DirectQuery dann natürlich getrennt für "Lager" und "Regal" ausführen. Mit der Einbettung in eine Alias$() Abfrage wird dann z.B. für das "Lager" daraus ein ...
Code:
Alias$("Lager",StrSubst$(JTL_DirectQuery ("SELECT tWarenLagerEingang.cKommentar FROM tWarenLagerEingang JOIN tWarenLagerAusgang ON tWarenLagerEingang.kWarenLagerEingang=tWarenLagerAusgang.kWarenLagerEingang WHERE tWarenLagerAusgang.kWarenLagerAusgang='"+ToString$(Warenlagerausgänge.InterneWarenlagerausgangsnummer)+"'")," | ","|"))
... und für "Regal" ....
Code:
Alias$("Regal",StrSubst$(JTL_DirectQuery ("SELECT tWarenLagerEingang.cKommentar FROM tWarenLagerEingang JOIN tWarenLagerAusgang ON tWarenLagerEingang.kWarenLagerEingang=tWarenLagerAusgang.kWarenLagerEingang WHERE tWarenLagerAusgang.kWarenLagerAusgang='"+ToString$(Warenlagerausgänge.InterneWarenlagerausgangsnummer)+"'")," | ","|"))
Einfacher geht's hier leider nicht, da Lager und Regal ja pro Auftragsposition geholt werden müssen und bei Entnahme der Artikelmenge aus mehreren ehemaligen Lagereinbuchungen sogar mehrfach vorkommen können ...