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 / 4419 / 224 / 1189 ) »
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 / 4419 / 224 / 1189 ) »
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.
1358
Views
Tabelle in Adobe Forms ausgeben
von L0w-RiDer » 12.05.2022 11:06 • Verfasst in ABAP® für Anfänger
5
Antw.
3678
Views
Adobe Smart Forms Include Text
von jokabi » 19.12.2014 16:02 • Verfasst in ABAP® für Anfänger
0
Antw.
2260
Views
Adobe Forms Etiketten mehrfach ausgeben und nur 1x anpassen
von gago » 08.03.2018 14:26 • Verfasst in ABAP® Core
3
Antw.
2132
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.
2605
Views
Adobe Interactive Forms, Tabelle lesen
von ali0013 » 05.09.2008 13:43 • 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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1738
HR-Entgeltnachweis
Gestern von ChrisB 4 / 2294

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1738
HR-Entgeltnachweis
Gestern von ChrisB 4 / 2294

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 280
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 871
MS-Word als Editor
letzen Monat von tekko 1 / 4379