Erstellt vor 3 Jahren

Geschlossen vor 3 Jahren

Zuletzt geändert vor 3 Jahren

#1748 closed Fehler (wont-fix)

Bedingtes Einfügen von longdescription bei OOo Ausgabe verursacht Fehler in content.xml

Erstellt von: ulrich.moser@… Verantwortlicher: m.bunkus@…
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 2.6.3
Schweregrad: schwerwiegend Stichworte: Verkauf
Beobachter:

Beschreibung

Berichtet wird von diesem Fehler im Forum unter dem Thema Open Office "Formatfehler in Teildokument content.xml ..."

Wenn man in den Positionen abhängig vom Vorhandensein eines Positionslangtextes diesen Einblenden will und dazu
<%if logdescription%>
<%longdescription%><%end if%>
in die OpenOffice?-Vorlage einbaut, wird ein Fehler im Element content.xml erzeugt. Fügt man nur nach einem Zeilenumbruch <%longdescription%> ein, dann entsteht bei leerem Langtext ein zusätzlicher Zeilenumbruch. Das ist zwar nicht schön, aber als Workaround vorläufig zu akzeptieren. Im Forum wurde der Fehler schon in 2010 beschrieben und jetzt von mir rekonstruiert.

Änderungshistorie (2)

comment:1 Geändert vor 3 Jahren durch m.bunkus@…

  • Lösung auf wontfix gesetzt
  • Status von new nach closed geändert

Das ist kein Bug, sondern eine Limitierung des Zusammenspiels zwischen XML als Struktur von OpenOffice?-Dokumenten und dem Inhalt. Er wird nicht behoben.

Generell darf man innerhalb von Blockanweisungen (<%if%>, seine Verneinung und <%foreach%>) keinerlei Elemente einsetzen, die dazu führen, dass bereits geöffnete XML-Tags geschlossen werden. Beispiele dazu sind der Absatz (durch Drücken der Return-Taste) sowie Formatänderungen, die entweder den Start- oder Endpunkt außerhelb des Blocks und den jeweils anderen Punkt innerhalb des Blocks haben (beispielsweise "Text (hierBeginntFettdruck) Text <%if var %>Text <%var%>(hierEndetFettdruck)<%end%>").

Ein forçierter Zeilenumbruch hingegen (Shift-Return) funktioniert im Allgemeinen, sofern man ihn nicht in einer wie oben beschriebenen, bereits kaputten Situation einsetzt.

comment:2 Geändert vor 3 Jahren durch ulrich.moser@…

Das Problem, das auch in lx-office Forum (http://forum.lx-office.org/index.php?mode=entry&id=12029) diskutiert wurde hängt wohl damit zusammen, dass in den OOo-Vorlagen </?text:span> Tags beim bedingten Einfügen der Variablenwerte resp. beim Entfernen der Variablen, wenn sie leer ist hängen bleiben. Der Grund ist, dass die Schachtelung von lx-office Platzhaltern und XML-Tags nicht korrekt ist. In meiner Vorlage sieht dies konkret so aus:
&lt;%if <text:span text:style-name="Source_20_Text"><text:span text:style-name="T3">longdescription%&gt;</text:span></text:span><text:line-break/><text:span text:style-name="Source_20_Text"><text:span text:style-name="T3">&lt;%longdescription%&gt;&lt;%end if%&gt;</text:span></text:span>

Etwas lesbarer dargestellt:
<%if
<text:span text:style-name="Source_20_Text">

<text:span text:style-name="T3">longdescription&>
</text:span>

</text:span>
<text:line-break/>
<text:span text:style-name="Source_20_Text">

<text:span text:style-name="T3">

<%longdescription%>
<%ebd if%>

</text:span>

</text:span>

Man sieht also die beiden letzten </text:span> werden nicht entfernt, was zu dem Problem führt. Eine Lösung ist in http://forum.lx-office.org/index.php?id=10544 beschrieben. Das ist allerdings die harte Tour.

Die bessere Version wäre die content.xml der Vorlage in einem XML-Editor zu öffnen und die Verschachtelung zu korrigieren.

Gruß ujmoser

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.