esDBImage to png mittels Transfer

In diesem Dokument erfahren Sie, wie Sie den Datentypen esDBImage aus Ihrer esoffice-Datenbank in ein für alle Systeme verständliches Bild im Dateityp *.PNG umwandeln können.

Dabei bleiben die Originaldaten unverändert. Die umgewandelten Bilddaten werden in extra Tabellen abgelegt und können von dort beispielsweise in Reports verwendet werden.

Um das neue Feature zu nutzen benötigen Sie das esdbm und die Bibliothek ESTransfer.ESO.dll.

 

Es ist erforderlich, dass sich die ESTransfer.ESO.dll im esdbm-Programmverzeichnis befindet, dies wird in der Regel durch die esdbm Installationsroutine sichergestellt.

Siehe auch esdbm Installation

 

Hinweis zum Verständnis der Funktion

Die Fotos der Mitarbeiter im Personalstamm werden in der esoffice Datenbank im esDBImage-Format gespeichert.

Um zum Beispiel einen Personaldaten-Report (Microsoft Reports) mit diesen Fotos erstellen zu können, ist der Zugriff auf die in der Datenbank gespeicherten Fotos erforderlich.

Da in den MS-Reports nicht auf Bilder / Grafiken im esDBImage-Format zugegriffen werden kann, ist eine Konvertierung in ein verwendbares Grafikformat notwendig.

Die Grafik / Bilddateien der Mitarbeiter-Fotos werden in der Tabelle PERSBILD gespeichert. Im Konvertierungsprozess wird eine Datenbanktabelle für die Speicherung der Bilder im PNG-Format benötigt. Den Namen dieser Tabelle und der dazugehörenden Felder, sowie die Anzahl der Felder können Sie frei festlegen.

Beispiel zum Anlegen einer MSSQL Tabelle

 

es2000 macht keine Angaben zu einer bestimmten Eignung der folgenden Informationen. Irrtümer und Fehler bleiben ausdrücklich vorbehalten, die Angaben erfolgen ohne Gewähr. Die Angaben stellen nur Beschreibungen dar und enthalten keine Garantie der Beschaffenheit der Produkte. Die Informationen können zum Teil auch ein Versuch sein, Ihnen bei einer Aufgabenstellung zu helfen, selbst wenn das Produkt eigentlich nicht für diesen speziellen Zweck vorgesehen wurde.

Kopieren
CREATE TABLE PersBild_Own
(
  PersonalNr INTEGER
  ,Foto_PNG BINARY
  PRIMARY KEY (PersonalNr)
)

Nach dem Ausführen des SQL-Befehls im esdbm (SQL-Abfrage) oder Microsoft SQL Management Studio kann die neu erstellte Tabelle für die Konvertierung der Bilddateien verwendet werden.

Transfer erstellen

Die Übertragung der Bilddateien wird über die Transfer-Funktion des esdbm vorgenommen, in diesem Zuge findet auch die Umwandlung ins PNG-Format statt.

Transfer anlegen

  1. Um einen neuen Transfer anzulegen, klicken Sie im esdbm Programmfenster auf die Symbol-Schaltfläche Transfer anlegen.

    Es wird ein neues Register Transferdatei geöffnet, in der Transferdatei ist nur der Hauptknoten Transfer vorhanden.

  2. Im Bereich Eingabehilfe wird der Quell-Alias und Ziel-Alias festgelegt.

     

    Als Vorgabe wird im Bereich Eingabehilfen der Alias ESWin als Quell-Alias eingetragen. Sie können auch einen anderen Alias auswählen.

    Die angezeigten Datenbanken-Aliase werden aus der Datei dbxconnections.ini aus dem esoffice Para-Verzeichnis ausgelesen. Die Datenbankverbindungen können Sie unter Verbindungseinstellungen einsehen / bearbeiten.

  3. Für die Übertragung der Bilddateien innerhalb einer Datenbank ist es notwendig bei Quell- und Ziel-Alias denselben Datenbank-Alias auszuwählen.

    Wählen Sie jeweils den Datenbank-Alias (1) aus für den Sie auch die neue Tabelle erstellt haben, zum Beispiel ESWin.

     

    Login Daten (bis esdbm Version 1.0.6.0)

    Wird ein Modul geöffnet oder eine Funktion mit Zugriff auf eine esoffice Datenbank ausgeführt, ist eine Anmeldung mit einem esoffice Benutzer erforderlich.

    Ab der esdbm Version 1.0.6.0 ist kein Login mehr notwendig.

    Der Benutzer benötigt die Berechtigung 110 - Grundeinstellungen.

    Haben Sie sich erfolgreich an eine esoffice Datenbank (Alias) im esdbm angemeldet, erfolgt beim weiteren Zugriff auf den Datenbank-Alias keine erneute Abfrage der Login Daten.

  4. Fügen Sie dem Transfer eine Assembly Referenz hinzu in dem Sie auf die Symbol-Schaltfläche klicken (2).

  5. Tragen Sie im Bereich Assembly im Feld Datei ESTransfer.ESO.dll ein (3).

     

    Es ist erforderlich, dass sich die angegebene DLL-Datei im esdbm-Programmverzeichnis befindet.

    Nach dem Eintragen des Dateinamens werden im Bereich Funktionen die zur Verfügung stehenden Transferfunktionen der Assembly angezeigt.

    Die Funktion ESoffice.ExtractPNG wird die Umwandlung der Grafikdateien verwendet.

  6. Fügen Sie einen Knoten Tabelle über die Symbol-Schaltfläche hinzu (1).

    Im Bereich Quelldaten unter Datenbank stellen Sie die Auswahl auf Quelle ein.

    Im Feld Tabellenname wählen Sie die Tabelle PERSBILD aus (2).

  7. Fügen Sie einen Transferknoten vom Typ Feld über die Symbol-Schaltfläche hinzu (1).

    Ordnen Sie im Bereich Quelle das Feld Personalnr zu (2).

    Im Bereich Ziel aktivieren Sie die Option Feld und wählen anschließend die Tabelle Persbild_own und unter Name das Feld PersonalNr aus (3).

    Die weiteren Eigenschaften werden automatisch gefüllt.

  8. Für die Verarbeitung des Personalbildes ist erforderlich dieses zunächst in eine Variable zu laden.

    Fügen Sie einen Transferknoten vom Typ Feld über die Symbol-Schaltfläche hinzu (1).

    Ordnen Sie im Bereich Quelle das Feld Foto zu (2).

    Im Bereich Ziel aktivieren Sie die Option Variable und vergeben einen frei wählbaren Namen für die Variable (zum Beispiel var_Foto).

    Setzen Sie den Modus auf Set, dass bedeutet, dass die Variable neu gefüllt wird, ein bisheriger Inhalt wird nicht übernommen.

  9. Im nächsten Transferschritt wird das ESDBImage in der Variable in eine PNG Grafikdatei umgewandelt.

    Fügen Sie dazu die Call-Funktion über die Symbol-Schaltfläche hinzu (1).

    Im Bereich Call wählen Sie die Funktion Esoffice.ExtractPNG aus und setzen die Funktionsparameter.

    Für den Parameter VarESImageData geben Sie den Variable-Namen aus dem vorherigen Schritt an. Für PageNo tragen wir den Wert 0 ein. In out VarData geben Sie einen neuen Variablen-Namen (zum Beispiel var_Foto_PNG) an, in dem die geänderten Bilddaten geladen werden (2).

  10. Im letzten Schritt werden die umgewandelten Grafikdaten in die neu erstellte Datenbank gespeichert.

    Fügen Sie dazu die Aus Variable-Funktion über die Symbol-Schaltfläche hinzu (1).

    Im Bereich Aus Variable wählen Sie im Feld Variable den neu erstellte Variable aus dem letzten Schritt aus (var_Foto_PNG) (2).

    Im Bereich Ziel aktivieren Sie die Option Feld und wählen anschließend die Tabelle Persbild_own und unter Name das Feld Foto_PNG aus (3).

    Die weiteren Eigenschaften werden automatisch gefüllt.

  11. Speichern Sie die Transferdatei für eine spätere Verwendung über das Dateimenü -> Speichern unter unter einen beliebigen Pfad / Dateinamen.

  12. Starten Sie den Transfer über die Schaltfläche.

    Während der Ausführung und nach Abschluss erhalten Sie eine Zusammenfassung zum Transfer.

    Hier finden Sie auch ggf. auftretende Fehler.

    Nach Abschluss der Übertragung wird das Protokoll (Log) angezeigt.

     

    Die Ausführung des Transfers kann über den Transfer-Zeitplan automatisiert werden.

XML-Transferdatei

Kopieren
esdbimage2png.estrx
<?xml version="1.0" encoding="utf-8"?>
<transfer version="1.2" verbose="false">
  <assembly filename="ESTransfer.ESO.dll" />
  <table checkupdate="true" stoponerror="false" name="PERSBILD">
    <field name="PERSONALNR" typ="I" action="C">
      <target table="PersBild_Own" field="PersonalNr" typ="I" />
    </field>
    <field name="FOTO" typ="B" action="C">
      <setvar name="var_Foto" />
    </field>
    <call name="ESoffice.ExtractPNG">
      <parameter id="VarESImageData" value="var_Foto" />
      <parameter id="PageNo" value="0" />
      <parameter id="out VarData" value="var_Foto_PNG" />
    </call>
    <fromvar name="var_Foto_PNG">
      <target table="PersBild_Own" field="Foto_PNG" typ="B" />
    </fromvar>
  </table>
</transfer>