Daten mit Benutzerdialog auf den Präsentationsserver schreiben 

Um Daten aus einer internen Tabelle mit Benutzerdialog auf den Präsentationsserver zu schreiben, benutzen Sie den Funktionsbaustein DOWNLOAD. Die wichtigsten Parameter sind unten aufgelistet. Weitere Informationen finden Sie in der Dokumentation zum Funktionsbaustein in Transaktion SE37.

Wichtige Importparameter

Parameter

Funktion

BIN_FILESIZE

Dateilänge für binäre Dateien

CODEPAGE

Nur für Download unter DOS: Wert IBM

FILENAME

Dateiname (Vorgabewert für Benutzerdialog)

FILETYPE

Dateityp (Vorgabewert für Benutzerdialog)

ITEM

Überschrift für Benutzerdialogfenster

MODE

Schreibmodus (leer = überschreiben, 'A' = anhängen)

Mit FILETYPE geben Sie den Übertragungsmodus an. Mögliche Werte:

Binäre Dateien: Sie müssen die Dateilänge angeben. Die interne Tabelle muß aus einer Spalte mit Datentyp X bestehen.

ASCII-Dateien.

Excel-Dateien: Die Spalten werden durch Tabulatoren getrennt, die Zeilen durch Zeilenschaltungen und Zeilenvorschübe.

Excel- und Lotus-Dateien: Die Daten werden in ein WK1-Spreadsheet geschrieben.

Wichtige Exportparameter

Parameter

Funktion

ACT_FILENAME

Dateiname (eingegeben im Benutzerdialog)

ACT_FILETYPE

Dateityp (eingegeben im Benutzerdialog)

FILESIZE

Anzahl der übertragenen Bytes

Table Parameters

Parameter

Funktion

DATA_TAB

Interne Quelltabelle

Ausnahmeparameter

Parameter

Funktion

INVALID_FILESIZE

Ungültiger Parameter BIN_FILESIZE

INVALID_TABLE_WIDTH

Ungültige Tabellenstruktur

INVALID_TYPE

Ungültiger Wert für Parameter FILETYPE

 

Angenommen, das für die Präsentation verwendete Betriebssystem ist WINDOWS NT und das folgende Programm liegt vor:

REPORT demo_data_ext_download.

DATA: name TYPE rlgrap-filename, typ TYPE rlgrap-filetype,
      fname TYPE rlgrap-filename, ftype TYPE rlgrap-filetype,
      fsize TYPE i.

TYPES: BEGIN OF line,
         col1 TYPE i,
         col2 TYPE i,
       END OF line.

DATA: lin TYPE line,
      tab TYPE TABLE OF line.

DO 5 TIMES.
  lin-col1 = sy-index.
  lin-col2 = sy-index ** 2.
  APPEND lin TO tab.
ENDDO.

name = 'C:\temp\saptest.xls'.
typ  = 'DAT'.

CALL FUNCTION 'DOWNLOAD'
     EXPORTING
          codepage            = 'IBM'
          filename            = name
          filetype            = typ
          item                = 'Test für Excel File'(005)
     IMPORTING
          act_filename        = fname
          act_filetype        = ftype
          filesize            = fsize
     TABLES
          data_tab            = tab
     EXCEPTIONS
          invalid_filesize    = 1
          invalid_table_width = 2
          invalid_type        = 3.

IF sy-subrc NE 0.
  MESSAGE e888(sabapdocu) WITH text-006.
ENDIF.

WRITE: 'SY-SUBRC:'(001), sy-subrc,
     / 'Name    :'(002), (60) fname,
     / 'Type    :'(003), ftype,
     / 'Size    :'(004), fsize.

Nach dem Starten dieses Programms erscheint das folgende Benutzerdialogfenster:

In diesem Fenster kann der Benutzer die Vorgabewerte ändern. Nach Anklicken von Übertragen überträgt das System die Daten aus der internen Tabelle TAB, die im Programm gefüllt wurde, in die Datei d:\temp\saptest.xls. Wenn die Datei bereits existiert, fragt das System den Benutzer, ob sie ersetzt werden soll. Das System fügt Tabulatoren zwischen den Spalten sowie Zeilenschaltungen und Zeilenvorschübe am Ende jeder Zeile ein.

Ausgabe:

SY-SUBRC: 0
Name : d:\temp\saptest.xls
Type : DAT
Size : 27

Die Datei d:\temp\saptest.xls kann jetzt aus Excel heraus auf dem Präsentationsserver geöffnet werden. Das Excel-Bild sieht dann so aus: