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.LanguageIdsorgt dafür, dass du den Wert in der Formularsprache erhältst.- Nutze
attrs.cNamemit deinen echten Attributnamen (genau wie sie in JTL heißen). - Wenn ein Attribut numerisch gepflegt ist, greife statt
aattrs.cWertVarcharaufaattr.nWertIntzu. - 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.
