
In diesem einfachen Beispiel wird beschrieben, wie Sie vorgehen müssen, um ein Microsoft-Office-Dokument mit Hilfe des OfficeControl in eine Web-Dynpro-Anwendung integrieren zu können. Eine Beschreibung des OfficeControls finden Sie in der UI-Elemente-Referenz dieser Dokumentation.
Hierbei handelt es sich um ein reines Anzeige-Szenario ( OfficeControl.expertMode=false), das sich insbesondere für Prototyping anbietet. Beachten Sie, dass es bei derartigen Szenarios eventuell zu Performance-Engpässen kommen kann. Komplexere Beispiele finden Sie im System im Paket SIOS.
Das OfficeControl wird in einer Web-Dynpro-Anwendung benutzt, die für einen definierten Benutzerkreis verwendet wird, da die Installation des jeweiligen Office-Programms auf dem Client vorausgesetzt wird.
Bei eventuell möglichen Anzeigeproblemen des
OfficeControl stellen Sie sicher, dass
das Active Component Framework ACF korrekt installiert ist. Siehe auch SAP Hinweis
846952
.
Voraussetzungen
Web-Dynpro Component, Window und View für Ihre Anwendung
In diesem Beispiel wird eine Datei ausgelesen, die den Namen test.doc hat und im MIME-Repository abgelegt ist.
Context definieren
Verzweigen Sie in den Context Ihrer View und definieren Sie dort einen Context-Knoten mit einem Context-Element vom Typ XSTRING, das für das Speichern des Inhalts verwendet werden soll.
Definieren Sie ein weiteres Context-Element für die Sichtbarkeit, z.B. VISIBLE vom Typ WDUI_VISIBILITY.
Um Ihre Office-Datei im Context abzulegen, verwenden Sie die WDDOMODIFYVIEW-Methode.
METHOD wddomodifyview.
DATA:
mime_repository TYPE REF TO if_mr_api,
content TYPE xstring,
url TYPE string VALUE
'/SAP/BC/WebDynpro/SAP/PUblic/BC/ssr/uuielibs/office_integration' &
'/test.doc'.
* just do it once
CHECK first_time = abap_true.
mime_repository ?= cl_mime_repository_api=>get_api( ).
CALL METHOD mime_repository->get
EXPORTING
i_url = url
IMPORTING
e_content = content.
wd_context->set_attribute( name = 'DATAS' value = content ).
wd_context->set_attribute( name = 'visible' value =
cl_wd_office_control=>e_visible-visible ).
...
endmethod.
Sichern Sie Ihre Eingaben.
OfficeControl ins Layout einbinden
Fügen Sie in Ihrer View ein OfficeControl-UI-Element ein.
Binden Sie die Eigenschaft OfficeControl.dataSource an das Context-Attribut für den Inhalt.
Binden Sie die Eigenschaft OfficeControl.visible an den Context-Knoten für die Sichtbarkeit.
Sichern Sie Ihre Eingaben.