Neu Bestandsüberischt bzw. MHD-Liste auf Lager-Packliste (notfalls Pickliste)

Se David

Aktives Mitglied
4. Januar 2016
26
2
In der Artikelansicht kann man ja unter "Bestandsüberischt" die verschiedenen Stückanzahlen pro MHD einsehen - ich hätte das auch gern auf der Lager-Packliste oder zumindest das "älteste" MHD eines Produktes (damit Picker FIFO einfacher kontrollieren können). Variable gibt es offenbar keine?

Kann man das irgendwie über Direkt_SQL hinzimmern, dass man im besten Fall eben diese Bestandsübersicht oder zumindest das älteste vorhandene MHD eines Produktes auf der Packliste ausgibt?

Falls nicht auf der Packliste, würden wir eventuell sogar auf Picklisten umsteigen, lieber wäre uns aber die Lager-Packliste. (ich weiß, dass die etwas outdated ist...).

Vielen Dank im Voraus und liebe Grüße, David
 

Se David

Aktives Mitglied
4. Januar 2016
26
2
ich habe gerade kleine Fortschritte gemacht:

JTL_DirectQuery ("SELECT dMHD, fAnzahlAktuell FROM tWarenLagerEingang where fAnzahlAktuell > 0 and kArtikel="+ str$(Packlistenpositionen.Artikel.InterneArtikelnummer))

funktioniert noch nicht ganz, ich bekomme nur das MHD, aber ich muss wohl erst lernen, wie man korrekt mit diesen DirectQuery Abfragen umgeht, um an alle Informationen zu kommen :)
 

Se David

Aktives Mitglied
4. Januar 2016
26
2
ich habe es offengesagt aufgeben, die Geschichte schön und elegant zu lösen und da ich nur die maximal 2 ältesten MHD-Stufen benötige, habe ich einfach 2 Abfragen (und ja ich weiß, man hätte wohl noch mit Variablen usw arbeiten können...)
also schlampig gelöst, aber vl hilft es jemanden:

MHD Stufe 1: (kein Offset, einfach das erste Ergebnis):
IF(JTL_DirectQuery ("SELECT TOP(1) fAnzahlAktuell FROM tWarenLagerEingang WHERE fAnzahlAktuell > 0 AND kArtikel="+ str$(Packlistenpositionen.Artikel.InterneArtikelnummer)) > 0, LEFT$(JTL_DirectQuery ("SELECT TOP(1) dMHD FROM tWarenLagerEingang WHERE fAnzahlAktuell > 0 AND kArtikel="+ str$(Packlistenpositionen.Artikel.InterneArtikelnummer)),10) +" - " + FStr$(JTL_DirectQuery ("SELECT TOP(1) fAnzahlAktuell FROM tWarenLagerEingang WHERE fAnzahlAktuell > 0 AND kArtikel="+ str$(Packlistenpositionen.Artikel.InterneArtikelnummer)),"?&") + " Stk")

MHD-Stufe 2 (Offset 1):
IF(JTL_DirectQuery ("SELECT fAnzahlAktuell FROM tWarenLagerEingang WHERE fAnzahlAktuell > 0 and kArtikel="+ str$(Packlistenpositionen.Artikel.InterneArtikelnummer) + "ORDER BY(SELECT NULL) OFFSET 1 ROW FETCH NEXT 1 ROW ONLY") > 0, LEFT$(JTL_DirectQuery ("SELECT dMHD FROM tWarenLagerEingang WHERE fAnzahlAktuell > 0 AND kArtikel="+ str$(Packlistenpositionen.Artikel.InterneArtikelnummer) + "ORDER BY(SELECT NULL) OFFSET 1 ROW FETCH NEXT 1 ROW ONLY"),10)+" - " + FStr$(JTL_DirectQuery ("SELECT fAnzahlAktuell FROM tWarenLagerEingang WHERE fAnzahlAktuell > 0 AND kArtikel="+ str$(Packlistenpositionen.Artikel.InterneArtikelnummer) + "ORDER BY(SELECT NULL) OFFSET 1 ROW FETCH NEXT 1 ROW ONLY"),"?&") + " Stk")

die if condition am Anfang -> wenn beim MHD Bestand > 0 zeige es, sonst lass das ganze Feld leer
LEFT$ und FStr$ zum Formatieren der Ausgabe
das OFFSET eben um die 2. Stufe der MHD Artikel zu bekommen
Abgefragt wird MHD + Bestand für dieses MHD
 
  • Gefällt mir
Reaktionen: Marvin S.

DasPatte

Aktives Mitglied
16. Mai 2018
46
14
Okay, ich verstehe die Verzweiflung in der Herangehensweise, aber das wird dich auf kurz oder lang nicht zum Ziel führen.
Die ORDER-BY-Klauseln auf SELECT NULL laufen zu lassen, überlässt dem Zufall was gerade angezeigt wird...

Bsp:
Gehen wir von einer Haltbarkeit von 6 Monaten aus (einfachhalthalber)
ArtikelEingebuchtMHDAuflistungsreihenfolge
ABC-DEF-1​
01.02.2021 (WLE-Nr 10001)​
31.08.2021
1
ABC-DEF-1​
01.03.2021 (WLE-Nr 10005)​
31.09.2021
2
ABC-DEF-1​
01.04.2021 (WLE-Nr 10025)​
Achtung! Dieser Wareneingang hat eine verkürzte Haltbarkeit 31.07.2021
3

Deine Abfrage sortiert nur nach Warenlagereingang.

Sowas sollte klappen:

Rich (BB code):
JTL_DirectQuery("SELECT TOP(2) dMHD, (fAnzahlAktuell-fAnzahlReserviertPickPos) FROM tWarenlagerEingang WHERE (fAnzahlAktuell-fAnzahlReserviertPickPos) > 0 AND kArtikel = "
+ str$(Packlistenpositionen.Artikel.InterneArtikelnummer) + " AND (DATEDIFF(d,GETDATE(),dMHD)) > 0 ORDER BY dMHD ASC")

Damit gehst du auf Nummer sicher, dass das MHD auch noch positiv haltbar ist, kein MHD ausgewählt ist, was bereist auf einer anderen Pickliste reserviert ist und du bekommst beide Ergebnisse direkt in einem Abwasch.

Gruß, Patrick

P.S.: Der Code ist ungetestet. Also bitte wie immer bei direktem DB-Zugriff: Backup machen, 2. Backup machen, Test-System aufsetzen, alle Nachbarn informieren, den BND mitlesen lassen und... naja -> gesund bleiben!
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Einem bzw. mehreren Artikeln über den Import mehrere Kategorien zuordnen JTL-Wawi 1.7 1
Einlagerungsliste mit Lagerposition bzw. Feld "Kommentar1" JTL-Wawi 1.8 0
Gutscheine aktualisieren bzw. mehrere per Import deaktivieren? Allgemeine Fragen zu JTL-Vouchers 0
Neu Eigene Felder Checkbox Inhalt bzw. Text bei Mouseover anzeigen JTL-Wawi - Ideen, Lob und Kritik 0
Neu Freitext bzw. Pflichtext-Inhalt in Druckvorlage ausgeben Gelöste Themen in diesem Bereich 3
Neu Weiterleitungen direkt per Datenbank einfügen aufgrund Größe bzw. Anzahl? Betrieb / Pflege von JTL-Shop 9
Neu Exportvorlage für Versanddatenexport für DHL Versenden bzw. Versenden 3.0 Arbeitsabläufe in JTL-Wawi 0
In Diskussion CustomWorkflow löschen bzw. ändern JTL-Workflows - Ideen, Lob und Kritik 3
Neu Artikellabel mit MHD und Charge bzw. SN Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu E-Mail Vorlagen erweitern: Neue Vorlage à la Header, bzw. Sprachvariable nutzen? Templates für JTL-Shop 3
Neu Retoure von Stückliste bzw. Produktionsartikeln Arbeitsabläufe in JTL-Wawi 0
Gelöst Preise werden falsch aufsummiert - bzw. nicht mit berechnet Gelöste Themen in diesem Bereich 2
Freiposition und Gewinn bzw. EK Preis Angabe JTL-Wawi 1.8 0
Automatisches MHD bei Import JTL-Wawi 1.8 1
Neu Lagerplatz mit MHD und Einlagerungsdatum Eigene Übersichten in der JTL-Wawi 1

Ähnliche Themen