JTL-Formulare (Lieferschein): Artikel-Attribute („eigene Felder“) anzeigen
Nutze JTL_DirectTableQuery
, um Werte aus den Artikelattributen auf dem Lieferschein (Positionsbereich) auszugeben. Das zweite Argument ist der Trenner zwischen mehreren Treffern.
Basis (sprachsicher, mehrere Attribute möglich)
JTL_DirectTableQuery("
SELECT
LTRIM(RTRIM(aattrs.cWertVarchar))
FROM dbo.tArtikel a
LEFT JOIN dbo.tArtikelAttribut aattr
ON aattr.kArtikel = a.kArtikel
LEFT JOIN dbo.tArtikelAttributSprache aattrs
ON aattrs.kArtikelAttribut = aattr.kArtikelAttribut
AND aattrs.kSprache = Report.LanguageId
LEFT JOIN dbo.tAttributSprache attrs
ON attrs.kAttribut = aattr.kAttribut
AND attrs.kSprache = Report.LanguageId
WHERE a.cArtNr = '" + DeliveryNotePosition.SKU + "'
AND attrs.cName IN ('Material','Farbe','Artikelname')
"," / ","")
Feste Reihenfolge der Ausgabe (z. B. Material → Farbe → Artikelname)
JTL_DirectTableQuery("
SELECT
LTRIM(RTRIM(aattrs.cWertVarchar))
FROM dbo.tArtikel a
JOIN dbo.tArtikelAttribut aattr
ON aattr.kArtikel = a.kArtikel
JOIN dbo.tArtikelAttributSprache aattrs
ON aattrs.kArtikelAttribut = aattr.kArtikelAttribut
AND aattrs.kSprache = Report.LanguageId
JOIN dbo.tAttributSprache attrs
ON attrs.kAttribut = aattr.kAttribut
AND attrs.kSprache = Report.LanguageId
WHERE a.cArtNr = '" + DeliveryNotePosition.SKU + "'
AND attrs.cName IN ('Material','Farbe','Artikelname')
ORDER BY CASE attrs.cName
WHEN 'Material' THEN 1
WHEN 'Farbe' THEN 2
WHEN 'Artikelname' THEN 3
ELSE 99
END
"," / ","")
Nur bestimmtes Attribut (ein Wert)
JTL_DirectTableQuery("
SELECT TOP 1
LTRIM(RTRIM(aattrs.cWertVarchar))
FROM dbo.tArtikel a
JOIN dbo.tArtikelAttribut aattr
ON aattr.kArtikel = a.kArtikel
JOIN dbo.tArtikelAttributSprache aattrs
ON aattrs.kArtikelAttribut = aattr.kArtikelAttribut
AND aattrs.kSprache = Report.LanguageId
JOIN dbo.tAttributSprache attrs
ON attrs.kAttribut = aattr.kAttribut
AND attrs.kSprache = Report.LanguageId
WHERE a.cArtNr = '" + DeliveryNotePosition.SKU + "'
AND attrs.cName = 'Material'
"," ","")
Hinweise
Report.LanguageId
sorgt dafür, dass du den Wert in der Formularsprache erhältst.Nutze
attrs.cName
mit deinen echten Attributnamen (genau wie sie in JTL heißen).Wenn ein Attribut numerisch gepflegt ist, greife statt
aattrs.cWertVarchar
aufaattr.nWertInt
zu.Der Trenner
" / "
kann beliebig geändert werden.
Hinweis zur Nutzung von Code-Beispielen
Die auf dieser Website bereitgestellten Code-Beispiele und Skripte dienen ausschließlich zu Demonstrations- und Lernzwecken. Die Nutzung in produktiven Umgebungen erfolgt auf eigene Verantwortung. Wir übernehmen keine Haftung für Schäden oder Datenverluste, die durch unsachgemäße Anwendung entstehen.