Inhaltsverzeichnis

    Individuelle Datenbankabfragen im Formulareditor

    Wichtig: Bitte verwenden Sie Direct Querys nur, wenn Sie ein erfahrener Anwender sind. Die auf dieser Seite eingefügten Code-Beispiele müssen ggf. noch angepasst werden und dienen lediglich zur Illustration. Wenden Sie sich im Zweifelsfall an einen JTL-Servicepartner, der Ihnen bei der Umsetzung behilflich sein kann.

    Jedem Formular wird eine vorgefertigte Liste mit Variablen zur Verfügung gestellt, die im Formular genutzt werden können. Es kommt dennoch vor, dass man Informationen braucht, die nicht zur Verfügung stehen. Würden wir jedem Formular alle erdenklichen Variablen immer zur Verfügung stellen, wäre einerseits die Liste mit verfügbaren Variablen sehr lang und unübersichtlich, andererseits müssten all diese Informationen vor jedem Druck des Formulars aus der Datenbank geholt und aufbereitet werden, was den Druckvorgang verzögern würde.

    Fehlende Informationen können jedoch über individuelle Datenbankabfragen im Formular selbst geholt und verwendet werden.

    Jede Formularvorlage kann die Funktion JTL_DirectQuery(string) nutzen, um individuelle Abfragen zu tätigen.

    Im Folgenden werden einige Beispiele präsentiert:

    Merkmalwert des Merkmals Farbe:

    JTL_DirectQuery ("SELECT tMerkmalWertSprache.cWert FROM tMerkmalWertSprache
    JOIN tArtikelMerkmal ON tArtikelMerkmal.kMerkmalWert=tMerkmalWertSprache.kMerkmalWert
    JOIN tmerkmal on tArtikelMerkmal.kMerkmal=tmerkmal.kMerkmal
    WHERE  tArtikelMerkmal.kArtikel="+Fstr$(Artikel.kArtikel,"?")+"
    AND tMerkmalWertSprache.kSprache=1
    AND tmerkmal.cName='Farbe'")
    

    Man kann jedes andere Merkmal auch referenzieren – man muss lediglich den Wert ‚Farbe‘ auf das Gewünschte ändern, z.B. ‚Jahrgang‘.

    Kundengruppe des Kunden, an den das Formular (Auftrag, Angebot, Rechnung, usw.) geht:

    Menge im Zulauf ermitteln

    Mit folgender Abfrage kann die Menge im Zulauf auf die Druckformulare (z.B. Preisliste) gebracht werden:

    JTL_DirectQuery ("SELECT ISNULL(SUM(ISNULL(tLieferantenBestellungPos.fMenge, 0.0)), 0.0) - ISNULL(SUM(ISNULL(WarenLagerEingang.Menge, 0.0)), 0.0) AS Menge
    	FROM tLieferantenBestellungPos
    	LEFT JOIN tLieferantenBestellung ON tlieferantenBestellungPos.kLieferantenBestellung = tlieferantenbestellung.kLieferantenbestellung
    		AND tlieferantenbestellung.nStatus IN (20, 30, 50)
    	LEFT JOIN 
    	(
    		SELECT tWarenLagerEingang.kLieferantenBestellungPos, ISNULL(SUM(tWarenLagerEingang.fAnzahl), 0.0) AS Menge FROM tWarenLagerEingang
    		GROUP BY tWarenLagerEingang.kLieferantenBestellungPos
    	) AS WarenLagerEingang ON WarenLagerEingang.kLieferantenBestellungPos = tlieferantenBestellungPos.kLieferantenBestellungPos
    	WHERE tLieferantenBestellungPos.kArtikel =  "+Fstr$(Artikel.kArtikel,"?"))
    

    Amazon Geschenknachricht abfragen

    Mit dieser Abfrage wird die erste vorhandene Geschenknachricht der Bestellung abgefragt werden. Natürlich funktioniert diese Abfrage überall in den Formualren, die einen Bezug zur Bestellung haben, wie etwa Lieferschein, Auftrag, Rechnung, Fulfillmentauftrag, usw.:

    JTL_DirectQuery ("select TOP 1 pf_amazon_bestellungpos.cGrusstext FROM pf_amazon_bestellungpos
    JOIN tbestellpos ON tbestellpos.kAmazonBestellungPos = pf_amazon_bestellungpos.kAmazonBestellungPos
    JOIN tbestellung on tbestellung.kBestellung = tbestellpos.tBestellung_kBestellung
    WHERE tbestellung.cBestellNr='"+JTL.WaWi.Vorgang.BestellNr+"' AND cGrusstext!=''")

    Variation auf Artikeletikett

    JTL_DirectQuery ("SELECT teigenschaftwert.cName
    FROM teigenschaft
    JOIN tEigenschaftKombiWert ON tEigenschaftKombiWert.kEigenschaft = teigenschaft.kEigenschaft
    JOIN tartikel on tartikel.kEigenschaftKombi = tEigenschaftKombiWert.kEigenschaftKombi
    JOIN teigenschaftwert ON teigenschaftwert.kEigenschaftWert = tEigenschaftKombiWert.kEigenschaftWert
    WHERE teigenschaft.cName='Größe'
    AND tartikel.kartikel="+ToString$(Artikel.kArtikel))

    teigenschaft.cName=’Größe‘ kann natürlich individuell angepasst werden. Wichtig ist nur, dass die Schreibweise exakt übereinstimmt mit dem Namen der Variation.