Neu HTMLToPlainText - Kleiner "Fehler" und wie man ihn umgehen kann

Thomas_T

Sehr aktives Mitglied
19. Dezember 2019
250
58
Werdau
Da wir in unseren Angeboten die Kurzbeschreibung des Artikels (ist in HTML) einblenden wollen muss man sich die Daten via HTMLToPlainText umwandeln.

Dort wird man jedoch feststellen, dass der Text extrem viele Zeilenumbrüche und Leerzeilen hat. Dies liegt daran, dass HTMLToPlainText zwar das HTML korrekt "übersetzt" aber jeden Zeilenumbruch im Quellcode (der ja eben nicht interpretiert werden dürfte, da es kein Befehl für die HTML-Ausgabe ist) auch einen Zeilenumbruch im Text erzwingt (+ den Zeilenumbruch der durch den HTML-Befehl ausgelöst wird).

Aus
Code:
...
<ul>
<li>eins</li>
<li>zwei</li>
<li>drei</li>
</ul>
...

wird
Code:
...


- eins

- zwei

- drei


...

Die Lösung ist relativ simpel: Bevor das HTML umgewandelt wird müssen alle Zeilenumbrüche im Quellcode entfernt werden.
Code:
HTMLToPlainText$(RegExSubst$(SalesQuotationPosition.ItemDescriptionBrief,"¶",""))
Ersetzungen der Zeilenumbrüche über "\r", "\n" oder ähnliches gehen leider nicht.

Wer in seinem Dokument (in unserem Fall im Angebot) die Kurzbeschreibung und alternativ die Meta-Description (wenn keine Kurzbeschreibung vorhanden) haben will, kann sich gerne den Schnipsel hier nehmen:

Code:
cond(SalesQuotationPosition.ItemDescriptionBrief != "",HTMLToPlainText$(RegExSubst$(SalesQuotationPosition.ItemDescriptionBrief,"¶","")),JTL_DirectQuery ("SELECT tArtikelBeschreibung.cMetaDescription
FROM tArtikelBeschreibung
LEFT JOIN tArtikel on tArtikelBeschreibung.kArtikel = tArtikel.kArtikel
WHERE tArtikel.cArtNr = '" + SalesQuotationPosition.SKU + "'"))
 
  • Gefällt mir
Reaktionen: Dull

AndreasNe

Aktives Mitglied
27. Dezember 2023
92
7
Funktioniert super in den Lieferscheinen. Nur wie müsste folgende Zeile aussehen?

Preislistenartikel.Artikelname + "¶¶" + cond((AskStringChoice$ ('Kurz- oder Langbeschreibung ?',False,'Kurzbeschreibung|Langbeschreibung') == 'Kurzbeschreibung'),HTMLToPlainText$(Preislistenartikel.Artikelkurzbeschreibung),(Preislistenartikel.Artikelbeschreibung))

Mache ich es so, dann funktioniert es nicht: Preislistenartikel.Artikelname + "¶¶" + cond((AskStringChoice$ ('Kurz- oder Langbeschreibung ?',False,'Kurzbeschreibung|Langbeschreibung') == 'Kurzbeschreibung'),HTMLToPlainText$(Preislistenartikel.Artikelkurzbeschreibung),(Preislistenartikel.Artikelbeschreibung,"¶",""))


MfG
Andreas
 

AndreasNe

Aktives Mitglied
27. Dezember 2023
92
7
Ich hatte etwas vergessen... oh man. Jetzt geht es.

Preislistenartikel.Artikelname + "¶¶" + cond((AskStringChoice$ ('Kurz- oder Langbeschreibung ?',False,'Kurzbeschreibung|Langbeschreibung') == 'Kurzbeschreibung'),HTMLToPlainText$(RegExSubst$(Preislistenartikel.Artikelkurzbeschreibung ,"¶","")),Preislistenartikel.Artikelbeschreibung)
 

Ähnliche Themen