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.
1367
Views
Tabelle in Adobe Forms ausgeben
von L0w-RiDer » 12.05.2022 11:06 • Verfasst in ABAP® für Anfänger
5
Antw.
3682
Views
Adobe Smart Forms Include Text
von jokabi » 19.12.2014 16:02 • Verfasst in ABAP® für Anfänger
0
Antw.
2263
Views
Adobe Forms Etiketten mehrfach ausgeben und nur 1x anpassen
von gago » 08.03.2018 14:26 • Verfasst in ABAP® Core
3
Antw.
2133
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.
2608
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

Feldwerte vergleichen
vor 5 Stunden von wreichelt 2 / 27
Workflow-Datenfluss mit Multi-Line-Container
vor 7 Stunden von ewx gelöst 2 / 82
Mahnung erstellen
vor 11 Stunden von Sebastian82 4 / 112
Absprung VA02 Position
vor 2 Tagen von gs3rr4 gelöst 3 / 108

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

Feldwerte vergleichen
vor 5 Stunden von wreichelt 2 / 27
Workflow-Datenfluss mit Multi-Line-Container
vor 7 Stunden von ewx gelöst 2 / 82
Mahnung erstellen
vor 11 Stunden von Sebastian82 4 / 112
Absprung VA02 Position
vor 2 Tagen von gs3rr4 gelöst 3 / 108

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 2 Tagen von Manfred K. 1 / 70
Export von Spools in XLSX
vor einer Woche von abapamateur 1 / 760
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 1359