Adobe Forms - Formatierten Text in Tabelle ausgeben

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Adobe Forms - Formatierten Text in Tabelle ausgeben

Beitrag von agarchow (ForumUser / 3 / 1 / 0 ) »
Hallo zusammen!

Ich habe ein Formular erstellt, in dem in einer Tabelle formatierte Texte ausgegeben werden sollen. Ich habe mich dabei an folgenden Guide gehalten:
https://blogs.sap.com/2016/03/31/render ... dobe-form/

Zum Testen nehme ich folgenden String:

Code: Alles auswählen.

lv_html = '<body xmlns="http://www.w3.org/1999/xhtml" xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"><p><b>this should be bold</b>this is not bold</p></body>'
Diesen konvertiere ich und übergebe den konvertierten Text an das Formular:

Code: Alles auswählen.

 
*    HTML to xString
        DATA(lv_len) = strlen( lv_html ).
        DATA(lr_conv) = cl_abap_conv_out_ce=>create( ).
        lr_conv->write( data = lv_chp_desc n = lv_len ).
        DATA(lv_xstr) = lr_conv->get_buffer( ).
*        Transformation 
        TRY.
            CALL TRANSFORMATION cl_html_transform
            SOURCE XML lv_xstr
            RESULT XML lv_xstr.
          CATCH cx_transformation_error INTO DATA(lr_transformation_error).
        ENDTRY.

        ls_table_text-text = cl_http_utility=>encode_X_base64( lv_xstr ). 
Das decodieren von Base64 funktionierte bei mir über die Variable nicht, daher rufe ich in meinem Interface zum Formular die folgende Methode:

Code: Alles auswählen.

DATA: lo_utility TYPE REF TO cl_http_utility.
CREATE OBJECT lo_utility.
LOOP AT it_table_text ASSIGNING FIELD-SYMBOL(<ls_table_text>) .

  lo_utility->decode_X_base64(
     EXPORTING
       encoded = <ls_table_text>-text
     RECEIVING
       decoded = <ls_table_text>-text ).

ENDLOOP.
Anschließend bekomme ich den Text wieder als xString.

In meinem Formular möchte ich das Ganze nun wie im Guide beschrieben ausgeben. Dafür nutze ich folgendes JavaScript Coding:

Code: Alles auswählen.

var i = 0; 

for(i=0 ; i<4 ; i++)  {
try{
var text_gen = xfa.resolveNode("Tab.Table1.Data[" + i + "].TextField1").rawValue;
xfa.resolveNode("Tab.Table1.Data[" + i + "].TextField1").value.exData.loadXML(text_gen,1,1);

}
catch(error) {
xfa.resolveNode("Tab.Table1.Data[" + i + "].TextField1").rawValue = error.message;
}
}
An diesem Punkt scheitert es bei mir. Ich bekomme eine Fehlermeldung zurück. (siehe Anhang)

Ich habe schon alles mögliche versucht; auch wenn ich die Konvertierungen weg lasse kommen diese Meldungen. Ich habe auch versucht, ein extra Feld in das Formular einzubinden und den Text hart zu übergeben, hier wurde allerdings gar nichts angezeigt.
Ich bin vollkommen ratlos, was ich noch versuchen könnte. Hat jemand eine Idee? :roll:

Vielen Dank,
Angelique
Zuletzt geändert von agarchow am 27.03.2018 14:22, insgesamt 1-mal geändert.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Adobe Forms - Formatierten Text in Tabelle ausgeben

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
Soweit ich das sehe hast du im JavaScript einmal die Variable "text_gen" und ein anderes Mal "encode_text_gen" verwendet.
Auch sind die zusätzlichen Parameter ",1,1" in dem Blog nicht erwähnt.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Adobe Forms - Formatierten Text in Tabelle ausgeben

Beitrag von agarchow (ForumUser / 3 / 1 / 0 ) »
Hi dead trousers,

da hast du recht, da habe ich mich vertippt. Passe ich an, damit niemand verwirrt ist. Danke! :)

Ich habe wie gesagt viel herumprobiert und sowohl die Variante loadXML(encode_text_gen,1,1) als auch die Variante loadXML(encode_text_gen) gefunden. Ich hatte gehofft, das könnte das Problem beheben.

Viele Grüße,
Angelique

Re: Adobe Forms - Formatierten Text in Tabelle ausgeben

Beitrag von a-dead-trousers (Top Expert / 4483 / 231 / 1205 ) »
Zu deinem Problem:
Ich glaube, der BODY Tag in deinem HTML-String ist zuviel.
Weiter unten in der Comment-Section von dem Blog ist erwähnt welche Tags mit der Transformation funktionieren sollen.
Probier das mal OHNE die XML-Transformation aus:

Code: Alles auswählen.

lv_html = '<div style="font-family : "Arial" ; font-size : 10pt ; font-weight : bold">this should be bold</div><div style="font-family : "Arial" ; font-size : 10pt ; font-weight : normal">this is not bold</div>'
Das wäre "echter" XFA-Text.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
agarchow

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Adobe Forms - Formatierten Text in Tabelle ausgeben

Beitrag von agarchow (ForumUser / 3 / 1 / 0 ) »
Danke dir!
Habe ich übernommen und die Transformation weggelassen. Allerdings wieder der gleiche Fehler..

Seite 1 von 1

Vergleichbare Themen

9
Antw.
3405
Views
Tabelle in Adobe Forms ausgeben
von L0w-RiDer » 12.05.2022 11:06 • Verfasst in ABAP® für Anfänger
5
Antw.
4657
Views
Adobe Smart Forms Include Text
von jokabi » 19.12.2014 16:02 • Verfasst in ABAP® für Anfänger
0
Antw.
3819
Views
Adobe Forms Etiketten mehrfach ausgeben und nur 1x anpassen
von gago » 08.03.2018 14:26 • Verfasst in ABAP® Core
3
Antw.
3704
Views
Adobe Forms: 2 Tabellen ausgeben, mit jeweils den gleichen Positionen auf einer Seite
von dpz » 04.12.2019 19:16 • Verfasst in ABAP® Core
3
Antw.
2921
Views
Adobe Forms Tabelle Kopfzeile wiederholen
von tm987456 » 02.11.2020 14:46 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Materialstammerweiterung: Neuer Reiter
vor 40 Minuten von ewx 1 / 9
Ermittlung der Arbeitstage (Mosid)
vor 11 Stunden von Radinator 11 / 45574
LSMW-Problem
vor einer Woche von DeathAndPain gelöst 6 / 3277
SFP (Adobe Forms) QR-Code wird nicht angezeigt
vor einer Woche von Sebastian82 gelöst 4 / 1897

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Materialstammerweiterung: Neuer Reiter
vor 40 Minuten von ewx 1 / 9
Ermittlung der Arbeitstage (Mosid)
vor 11 Stunden von Radinator 11 / 45574
LSMW-Problem
vor einer Woche von DeathAndPain gelöst 6 / 3277
SFP (Adobe Forms) QR-Code wird nicht angezeigt
vor einer Woche von Sebastian82 gelöst 4 / 1897