Neu JTL_DirectQuery um Kundenpreisliste zu erzeugen

Erik Hartnagel

Aktives Mitglied
14. April 2021
24
5
Hallo Zusammen,

ich habe schon den einen oder anderen Beitrag gelesen dass man einem Formular eine eigene Datenbasis zur Verfügung stellen kann.
Leider weiß ich jedoch nicht, an welcher Stelle man die Datenbasis per JTL_DirectQuery einstellen kann?

Aufgabenstellung:
ich habe bei den Preislisten die Basisvorlage angepasst und alle relevanten Daten in den Tabellen Kategorien, Preislistenartikel und Staffelpreise gefunden.
Nun würde ich diese Preisliste gern für einen selektierten Kunden filtern um die Nettopreise und Staffelpreise für DIESEN Kunden zu drucken.
Mein Ansatz war diese Preisliste bei den Kundendetails einzufügen, damit ich den Button "Ausgabe -> Kundenstammdaten" verwenden kann, der auf den in der Kundenliste gewählten Kunden filtert.

Problem:
Die Preisliste kann ich jedoch nicht bei den Kundendetails einfügen, da dort die notwendigen Tabellen "Kategorie, Preislistenartikel und Staffelpreise nicht zur Verfügung gestellt werden.
In der Rubrik "Preisliste" fehlt mir dann leider die Tabelle Adressen um die Tabelle Staffelpreise nach den Kunden zu filtern.

Wunsch:
Gern würde ich die Preisliste über den Button "Ausgabe" in der Kundenliste nutzen. (Ausgabe-> Kundenstammdaten->bei Erweiterte Ausgabeeinstellungen dann das Vorlagenset "Kundenpreisliste" wählen)

Wer kann mir helfen den Ansatz zu finden, die SQL-Abfragen kann ich selbst erstellen, aber ich weiß einfach nicht wo ich die Datenbasis für das Formular hinterlegen kann? Wo gibt man den SQL-String JTL_DirectQuery(...) ein um dem Formular eine abweichende Datenbasis zu geben?
Eine Schritt-für-Schritt-Anleitung wäre wirklich super!

Vielen Dank und Grüße!
Erik
 

Erik Hartnagel

Aktives Mitglied
14. April 2021
24
5
ERGÄNZUNG:
Das man pro Feld ein JTL_DirectQuery einstellen kann habe ich nun herausgefunden. Nun weiß ich jedoch nicht, ob ich immer eine komplette Abfrage über alle betroffenen Tabellen pro Feld einstellen muss um das folgende Ergebnis zu erzielen:

Wunschergebnis:
Es sollen alle Artikel auf der Preisliste erscheinen, die das Häkchen bei "In Preisliste aufnehmen" gesetzt haben
Diese Artikel sollen sortiert nach Kategorie aufgelistet werden
Das es sich um eine KUNDENPREISLISTE handelt, sollen die Preise die für diesen Kunden eingerichtet sind gedruckt werden
Also der Kunden-Nettopreis aus der Tabelle tPreisDetail, der lt. meinem Verständnis den Listenpreis minus einem Kundenrabatt, oder aber den angelegten Sonderpreis für diesen Kunden darstellt.
Wenn für DIESEN Kunden auch Staffelpreise angelegt sind dann sollen diese auch angedruckt werden (sind auch in der Tabelle tPreisDetail)

Um das zu erreichen teste ich gerade 2 Wege:

1. Weg:
über den "Ausgabe" Button in der Kundenverwaltung. Hier habe ich einen Bericht in "Druck-/E-Mail-/Exportvorlagen->Kundendetails angelegt
Vorteil: Es werden die Daten des in der Kundenliste selektierten Kunden angezeigt und ich könnte elegant über @Key die Abfrage steuern um die Daten für den gewählten Kunden zu erhalten.
Problem: hier kann ich leider die notwendige Datenbasis (Kategorie, darunter Preislistenartikel und darunter Staffelpreise) nicht einstellen!
=> gibt es eine Möglichkeit dem Bericht diese Daten zu geben? (wäre der elegantere Weg über die Kundenliste zu gehen)


2. Weg:
über das Menü "Verkauf->Preisliste". Hier habe ich einen Bericht in "Druck-/E-Mail-/Exportvorlage->Preisliste" angelegt und fertig eingerichtet.
Status: Alle Artikel werden dargestellt, jedoch werden alle angelegten Sonderpreise von allen Kunden aufgelistet, nicht nur von einem zu wählenden Kunden.
Vorteil: Der Druckbericht ist fertig, aber wie kann ich den Ausdruck auf nur einen zu wählenden Kunden einschränken?
Lösungsansatz-1:
Ich markiere den Kunden in der Kundenliste (F5) und rufe von dort die Preisliste über das Menü "Verkauf->Preisliste" auf.
Jedes Feld aus der Tabelle Staffelpreise (vermutlich DB-Tabelle "tPreisDetail") befülle ich über ein JTL_DirectQuery in der ich in die Where Bedingung kKunde oder kAdresse = @Key aufnehme.
Hatte ich versucht und erhielt die Fehlermeldung: @Key muss deklariert werden.
=> Wie deklariere ich die @Key Variable so, dass Sie auf den gewählten Kunden in der Kundentabelle (F5) referenziert? Bevorzugt würde ich gern @Key als globale Variable für das Formular einrichten, damit ich in den Einzel-Abfragen nicht immer mit Declare arbeiten muss.
Lösungsansatz-2:
Sollte Lösungsansatz-1 nicht möglich sein, würde ich versuchen die Kundennummer über eine Prompt-Abfrage einzugeben.
=> Wie kann ich in Query eine Prompt-Abfrage einbauen in der ich die Kundennummer eingeben kann bevor das Query ausgeführt wird?

Das wären meine Ansätze/Fragen. Vielleicht gibt es auch noch andere Wege/Möglichkeiten? Für Tipps und Anregungen wäre ich sehr dankbar!

Gruß,
Erik
 

Ähnliche Themen