on 2023 Dec 28 1:28 PM
Hallo,
ich habe einen Floorplan OVP und wollte jetzt ein PDF in einem UIBB anzeigen. Dazu erstellte ich einen Freestyle UIBB, dort eingebunden ist eine Webdypro Applikation. Diese hat ein InertactiveForm UI Element und zeigt den PDF XString an. Soweit die Theorie. Was ich hier beschrieben habe, habe ich bereits in 3 alten Szenarien so umgesetzt und das funktioniert auch. Jetzt wollte ich das einfach kopieren und stoße auf zwei Probleme. Zum einen gibt es im WD jetzt wohl keine InteractiveForm mehr, zum anderen, dafür habe ich eine alte Anwendung kopiert, wird das PDF im Floorplan UIBB nicht angezeigt. Wie kann ich die Anforderung jetzt umsetzen?
Vielen Dank
Stefan
Request clarification before answering.
Hallo Stefan,
Bitteschön 🙂 Was meinst Du mit "Thema Floorplan".
Für den Floorplan Manager allgemein haben wir die üblichen Doku-Quellen:
Viele Grüße,
Simon
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hallo Stefan,
ich würde im FlowLayout zunächst mal mit einer festen Höhe z.B. 400px beginnen.
Für eine 100% Höhe des Formulars muss ein anderes Layout, z.B. das MatrixLayout verwendet werden. In der Regel müssen dann auch alle Parent-Container im View das Matrix-Layout inclusive der Matrix-Layout-Data mit 100% Höhe haben. Dazu kommen weitere Properties auf allen Ebenen:
Es sind also weitere Anpassungen notwendig.
Viele Grüße,
Simon
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hallo Stefan,
ja, im obigen Beispiel wird das UI Element dynamisch erzeugt. Wichtig ist der Display Type '01'.
Man bindet die Source über das Attribut BIND_PDF_SOURCE. Die anderen Properties (HEIGHT, WIDTH, TITLE) kann man auch hart im Coding setzen.
Viele Grüße,
Simon
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Den PDF Source konnte ich jetzt binden. Wie kriege ich das UI Element jetzt aber auf 100%? Den Importparameter "BIND_HEIGHT" mit 100% zu belegen klappt nicht, jetzt habe ich im Context ein Attribut HEIGHT angelegt mit Default Wert 100% und dann gebunden. Das funktioniert aber nicht. Ich kann lediglich den Context Elementen den Default Wert 100 oder 100px mitgeben, aber nicht xx%.
Hallo Stefan,
natürlich sollte die Bindung der Kontextknoten zu Deiner Anwendung passen, hier bitte das Coding entsprechend anpassen.
Viele Grüße,
Simon
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hallo Stefan,
sorry ... in diesem Editor gibt es keine Syntaxprüfung 🙂
Es muss heißen:
data(lo_flow_data) = cl_wd_flow_data=>new_flow_data( lo_ifba ).
lo_ifba->set_layout_data( lo_flow_data ).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hallo Stefan,
das ist nur ein Problem mit dem Layout.
Wenn der Parent-Container ein FlowLayout hat, dann bitte die Zeilen
lo_grid_data = cl_wd_grid_data=>new_grid_data( lo_ifba ).
lo_ifba->set_layout_data( lo_grid_data ).
ersetzen durch
data(lo_layout_data) = cl_wd_layout_data=>new_layout_data( lo_ifba ).
lo_ifba->set_layout_data( lo_layout_data ).
Viele Grüße,
Simon
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
Migrate to Adobe PDF Form:
Check Compatibility:
Debug and Troubleshoot:
Review Copying:
SAP Support:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hallo Stefan,
die modernen Browser unterstützen kein ActiveX mehr, darum gibt es bei diesem Thema Änderungen.
In der Testanwendung WDR_TEST_PDF_VIEWER wird das UI Element dynamisch hinzugefügt mit DisplayType Native (01), siehe unten.
Viele Grüße,
Simon
method WDDOMODIFYVIEW .
IF first_time = abap_true.
DATA lo_rootContainer TYPE REF TO cl_wd_uielement_container.
DATA lo_ifba TYPE REF TO cl_wd_interactive_form.
DATA lo_grid_data TYPE REF TO cl_wd_grid_data.
DATA lv_disptype TYPE wdui_interact_form_disp_type VALUE '01'.
lo_rootContainer ?= view->GET_ROOT_ELEMENT( ).
CALL METHOD cl_wd_interactive_form=>new_interactive_form
EXPORTING
id = 'INTERACTIVE_FORM_PDF_VIEWER'
bind_pdf_source = 'PROPERTIES.PDF_CONTENT'
enabled = ''
bind_height = 'PROPERTIES.HEIGHT'
bind_width = 'PROPERTIES.WIDTH'
bind_title = 'PROPERTIES.TITLE'
display_type = lv_disptype
RECEIVING
control = lo_ifba.
lo_grid_data = cl_wd_grid_data=>new_grid_data( lo_ifba ).
lo_ifba->set_layout_data( lo_grid_data ).
lo_rootContainer->add_child( EXPORTING the_child = lo_ifba ).
ENDIF.
endmethod.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hallo Simon,
vielen Dank für den Tipp. Die o.g. Anwendung haben wir in unserem System gar nicht. Ich habe jetzt einfach mal meine alte Anwendung, wo die PDF Anzeige funktioniert, kopiert, im Layout des Views das PDF Element entfernt und Deinen Code in die MODIFY Methode gesetzt. Da kommt aber folgende Fehlermeldung.
Noch ein Tipp?
Vielen Dank und Gruß
User | Count |
---|---|
60 | |
8 | |
7 | |
6 | |
6 | |
4 | |
4 | |
4 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.