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 auf aattr.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.