delight crm

 Top Next

Handbücher für delight crm

Umfangreiches und flexibles CRM- und Adressverwaltungspaket, verwaltet Ihre Adressen, Termine, Briefe, Emails, SMS, Dokumente, Aufgaben, Anfragen, Kennzahlen und Kampagnen sowie sämtliche Korrespondenz mit Ihren Kunden und vieles Mehr.

Schreiben Sie Briefe, E-Mails und SMS über Wiedervorlagen schnell und einfach direkt aus dem CRM. Alle Interaktionen (Briefe, E-Mails, Telefonate, Notizen, Verkaufschancen u. s. w.) werden in einem Journal, inkl. dem Dokument, hinterlegt.

Dank der Business Integration lässt sich das CRM auch problemlos in bestehende IT-Landschaften integrieren.


Add-ons

 Top Letztes Next

Mit dem Add-On Modul werden kleine Zusatzprogramme, sogenannte Add-Ons, verwaltet und erstellt.

Add-Ons sind kleine Zusatz- und Hilfsprogramme, die sich nahtlos in die Software einfügen.

Mit diesem Modul steht eine komplette, integrierte Entwicklungsumgebung zur Programmierung von Add-Ons zur Verfügung.

In diesem Handbuch wird aber lediglich die Installation und Konfiguration der Add-Ons behandelt.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => Add-Ons aufgerufen.

Links befindet sich eine Liste mit allen installierten Add-Ons.


Add-on löschen

Markieren Sie ein Add-On und klicken Sie auf Löschen, um das betreffende Add-On aus dem Programm zu entfernen.


Add-on installieren

Wechseln Sie in den Menübereich Import & Export und klicken Sie im Bereich Import auf MLXML-Datei.

Wählen Sie Ohne Konverter und suchen Sie mit der Schaltfläche [image] die gewünschte Datei.

Klicken Sie anschliessend auf Start.

siehe auch:

Business Integration MLXML-Datei importieren


Allgemeines Benutzerhandbuch

In diesem Handbuch werden allgemeine Funktionen zum Programm beschrieben. Informationen zu den einzelnen Programmteilen finden Sie jeweils in einem separaten Handbuch zu jedem Programmteil. Wenn Sie sich im Hilfe & Support Zentrum befinden, können Sie in der Liste links zum gewünschten Handbuch navigieren.

Basierend auf

delight base Framework

by delight software gmbh

siehe auch:

Benutzer am Programm anmelden

Online Update, um Ihre Anwendung auf den neusten Stand zu bringen

Die Programmoberfläche

Konfiguration Ihrer Anwendung


Programmoberfläche

Die Programmoberfläche kann je nach Konfiguration und Ausstattung Ihres Softwarepakets Abweichungen vom unten gezeigten Beispiel haben.

1. | Hauptmenü der Anwendung, um in die verschiedenen Programmbereiche der Anwendung zu navigieren. Je nach dem, in welchem Programmbereich der Anwendung Sie sich gerade befinden, stehen hier unterschiedliche Funktionen zur Verfügung.
2. | Arbeitsbereich der Anwendung, in welchem die verschiedenen Programmbereiche dargestellt werden.
3. | Statusliste mit aktuellen Informationen, wie z.B. der gerade geöffnete Programmbereich oder bei der Netzwerk-Version der angemeldete Benutzer.
4. | In der rechten, unteren Ecke ist der Status der Anwendung ersichtlich. grün = Anwendung hat nichts zu tun und wartet auf eine Aktion des Anwenders. rot = Anwendung ist beschäftigt.
5. | Backstage-Ansicht der Anwendung. Hier sind Handbücher, Hilfe sowie Einstellungen und Konfigurationsmöglichkeiten verfügbar.

siehe auch:

Startseite einstellen

Tabellen

Detailanzeige

Zusatzfunktionen der Datensätze

Konfiguration


Tabellen

Die Anwendung verfügt dank ihrer Bedienerfreundlichkeit über frei modellierbare Tabellen, die sich nach Ihren Wünschen anpassen lassen.

Je nach dem, welche Daten in einer Tabelle angezeigt werden, stehen verschiedene Funktionen und Möglichkeiten zur Verfügung.

Im oberen Bereich befinden sich die Schaltflächen mit den verfügbaren Funktionen. Gleich darunter befindet sich der Gruppierungsbereich. Um nach einer bestimmten Spalte zu gruppieren, können Sie die Spaltenüberschrift mit der Maus in diesen Bereich ziehen.

Weitere Funktionen und Einstellungen für die Tabelle und Spalten erreichen Sie über das Kontextmenü der Spaltenüberschrift.

siehe auch:

Datensätze sortieren

Datensatz editieren

Mehrfach editieren

Datensatz löschen

Datensatz hinzufügen

Tabellen filtern

Zusätzliche Funktionen

Schnellfilter


Datensätze sortieren

Klicken Sie auf eine Spaltenüberschrift, um die Daten nach dem Inhalt der Spalte zu sortieren. Beim ersten Klick werden die Daten aufsteigend sortiert. Bei einem zweiten Klick auf die gleiche Spaltenüberschrift werden die Daten absteigend sortiert. Wenn eine Spalte sortiert ist, wird dies über Pfeile entsprechend dargestellt.

Eine Tabelle kann auch nach mehreren Spalten gleichzeitig sortiert werden. Halten Sie dazu die Shift-Taste (Umschalt-Taste) während dem Klicken gedrückt.

siehe auch:

Sortierung entfernen


Sortierung entfernen

Mit Rechtsklick auf die Spaltenüberschrift kann die Sortierung wieder gelöscht werden.


Datensatz bearbeiten

Die Daten einer Tabelle können wahlweise über ein Bearbeitungsfenster oder direkt in der Tabelle bearbeitet werden.

Um Daten direkt in der Tabelle zu bearbeiten, klicken Sie auf die gewünschte Zelle und drücken Sie [Enter].

Markieren Sie einen Datensatz, und klicken Sie auf Bearbeiten, um einen Datensatz zu bearbeiten.

Führen Sie Ihre Änderungen durch und bestätigen Sie danach mit Speichern, um die Änderungen zu speichern.

Mit Abbrechen können Sie das Fenster ohne zu speichern verlassen.

siehe auch:

Mehrfach editieren


Mehrfach bearbeiten

Es können mehrere Datensätze gleichzeitig bearbeitet werden. Markieren Sie dazu vor dem Bearbeiten alle gewünschten Datensätze.

Sind mehrere Datensätze markiert, werden Sie vor dem Bearbeiten gefragt, ob Sie wirklich alle Datensätze gleichzeitig bearbeiten möchten.

Das gleichzeitige Bearbeiten von Datensätzen funktioniert nur über das Bearbeitungsfenster.

siehe auch:

Mehrere Datensätze markieren


Datensatz löschen

Markieren Sie einen Datensatz und klicken Sie auf Löschen, um einen Datensatz zu löschen.

Wenn mehrere Datensätze markiert sind, werden alle Datensätze gelöscht.

Achtung:

Die markierten Datensätze werden unwiderruflich gelöscht und können nicht wiederhergestellt werden!


Datensatz hinzufügen

Klicken Sie auf die Schaltfläche Hinzufügen, um einen neuen Datensatz anzulegen.

Führen Sie Ihre Eingaben durch und bestätigen Sie danach mit Speichern, um den Datensatz zu speichern.

Mit Abbrechen können Sie das Fenster ohne zu speichern verlassen.


Tabellen filtern

Es gibt mehrere Möglichkeiten, um die Daten einer Tabelle zu filtern.

Folgende Möglichkeiten stehe zur Verfügung:

· Spaltenüberschriften-Filter

· Schnellfilter

· Erweiterte Suche


Filter über Spaltenüberschrift

Über die Spaltenüberschrift können Sie sehr schnell und einfach die gewünschten Datensätze filtern.


Filter

Klicken Sie in der gewünschten Tabelle auf die Schaltfläche Filter um den Schnellfilter oder die Filtervorgaben zu öffnen.


Schnellfilter

Klicken Sie in den Daten-Bereich der Tabelle und drücken Sie die Tastenkombination Ctrl+F, um die Schnellfilteransicht zu öffnen. Alternativ kann dazu auch in der gewünschten Tabelle auf die Schaltfläche Filter => Schnellfilter geklickt werden.

In der Schnellfilteransicht kann die Anzeige der Datensätze gefiltert werden.

Nach Eingabe der gewünschten Suchbegriffe kann die Suche mit [Enter] gestartet werden. Der Schnellfilter sucht nach allen Inhalten, in denen die Suchbegriffe komplett oder teilweise vorkommen. Die Eingabe von * ist nicht erforderlich.

siehe auch

Erweiterte Suche


Filtervorgaben

Um nur bestimmte Datensätze anzuzeigen, können Sie die Datensätze nach sämtlichen, möglichen Kriterien filtern. Diese Filter können als Filtervorgabe gespeichert werden und stehen danach mit einem Klick im Menü Filter zur Verfügung.


Filter bearbeiten

Mit der Schaltfläche Feld hinzufügen können die Suchfelder, nach denen gefiltert werden soll, hinzugefügt werden. Über die Schaltfläche Gruppe hinzufügen können Suchgruppen hinzugefügt werden.

Auf Suchfeldern können folgende Angaben gemacht werden:

Verknüpfung:

Die Verknüpfung legt fest, wie das Suchfeld zum vorhergehenden Suchfeld verknüpft wird.

und | Alle Bedingungen müssen erfüllt sein.
oder | Mindestens eine der Bedingungen muss erfüllt sein.
und nicht | Zusätzlich darf diese Bedingung nicht erfüllt sein.

Bedingung:

Mit der Auswahlmöglichkeit (gleich, grösser als, usw.) legen Sie die Bedingung zwischen Feld und Wert fest.

gleich | Nur Datensätze, die den gleichen Wert im entsprechenden Feld haben.
grösser als | Nur Datensätze, die einen grösseren Wert im entsprechenden Feld haben.
kleiner als | Nur Datensätze, die einen kleineren Wert im entsprechenden Feld haben.
grösser gleich wie | Nur Datensätze, die den gleichen oder einen grösseren Wert im entsprechenden Feld haben.
kleiner gleich wie | Nur Datensätze, die den gleichen oder einen kleineren Wert im entsprechenden Feld haben.
ungleich wie | Nur Datensätze, die nicht den Wert im entsprechenden Feld haben.
ähnlich wie | Nur Datensätze, die einen ähnlichen Wert im entsprechenden Feld haben. Hier kann mit dem Platzhalterzeichen * gearbeitet werden. Der Suchwert PET* würde alle Datensätze zurückgeben, bei denen das entsprechende Feld mit dem Wert PET beginnt.
in verknüpfter Tabelle enthalten | Nur Datensätze, die auf eine andere Datentabelle verknüpft sind. In Wert kann die gewünschte Tabelle und das entsprechende Verknüpfungsfeld ausgewählt werden. Sobald ein Eintrag mit dieser Bedingung markiert ist, stehen unter Feld hinzufügen die Felder der Verknüpfungstabelle zur Auswahl. Damit lässt sich die Verknüpfungstabelle zusätzlich nach bestimmten Kriterien/Feldern filtern.
nicht in verknüpfter Tabelle enthalten | Nur Datensätze, die nicht auf einer anderen Datentabelle verknüpft sind. In Wert kann die gewünschte Tabelle und das entsprechende Verknüpfungsfeld ausgewählt werden. Sobald ein Eintrag mit dieser Bedingung markiert ist, stehen unter Feld hinzufügen die Felder der Verknüpfungstabelle zur Auswahl. Damit lässt sich die Verknüpfungstabelle zusätzlich nach bestimmten Kriterien/Feldern filtern.

Wert:

Geben Sie den gewünschten Wert, den Sie auf dem Suchfeld filtern möchten, im Eingabefeld ein.

Mit den Gruppierungen können Sie Suchfelder gruppieren (Gruppierungen entsprechen Klammern).

Auf einer Gruppe kann wie bei Suchfeldern die Verknüpfung angegeben werden.

Mit Filter anwenden werden die definierten Filter auf die Tabelle angewendet.

siehe auch:

Filter löschen

Filtervorgaben


Filter löschen

Über die Schaltfläche Neu können alle Filtereinträge entfernt werden.


Filtervorgaben

Filterdefinitionen können für die spätere Verwendung als Vorgabe gespeichert werden. In der Netzwerk-Version können Vorgaben zusätzlich auch global für alle Benutzer abgelegt werden. Dazu muss der Anwender die entsprechende Berechtigung besitzen.

Durch Klicken auf eine Vorgabe wird diese geladen und die Schaltfläche Filter anwenden wird aktiviert.

Vorgaben können unten rechts über dem kleinen Pfeil erstellt und bearbeitet werden.

Anmerkung:

Durch Klicken auf eine Vorgabe werden "nur" die Filterdefinitionen der Vorgabe geladen und aktiviert. Wenn die Filtervorgaben danach editiert werden, wird die Vorgabe dadurch nicht beeinflusst. Sofern Sie die Änderungen speichern möchten, müssen Sie die Vorgabe erneut speichern.


Filter importieren & exportieren

Im Menü Import & Export kann der eingestellte Filter exportiert und importiert werden. Es wird nur der Inhalt des Filters exportiert/importiert und nicht die komplette Filtervorgaben. Wenn Sie eine Filter importieren und diesen als Filtervorgaben verwenden möchten, müssen Sie den Filter nach dem Import als Filtervorgaben speichern.


Daten gruppieren

Die Daten einer Tabelle können nach praktisch jedem Feldinhalt gruppiert werden.

Sofern der Gruppierungsbereich noch nicht sichtbar ist, muss dieser mit Rechtsklick auf die Spaltenüberschrift eingeblendet werden.

Ziehen Sie die gewünschte Spaltenüberschrift mit der Maus auf den Gruppierungsbereich oben an der Tabelle.

Um Untergruppen darzustellen können auch mehrere Spaltenüberschriften nacheinander in den Gruppierungsbereich gezogen werden.


Aggregatfunktionen (Summen, Anzahl usw.)

Mit den Aggregatfunktionen können verschiedene Informationen wie z.B. Anzahl, Durchschnitt, Summen usw. in einer Spalte berechnet werden.

Sofern die Fusszeile noch nicht sichtbar ist, muss diese mit Rechtsklick auf die Spaltenüberschrift eingeblendet werden.

Klicken Sie mit der rechten Maustaste auf der Fusszeile unter der gewünschten Spalte und wählen Sie die gewünschte Funktion.


Ansichten

Für jede Tabelle können verschiedene Ansichten erstellt und gespeichert werden. In einer Ansicht werden unter anderem die Spaltenbreiten, Positionen der Spalten, Sortierung, Sichtbarkeit der Spalten, Gruppierungen, Fusszeile und verwendete Aggregatfunktionen gespeichert.

Die Ansichten werden über die Schaltfläche Ansicht verwaltet.


Ansicht speichern

Um eine Ansicht zu speichern, klicken Sie auf Ansicht.

Klicken Sie auf Speichern unter, um die Ansicht zu speichern. Falls Sie die Netzwerk-Version verwenden und die entsprechende Berechtigung besitzen, können Sie die Ansicht mit Speichern unter für alle Benutzer global für alle Benutzer speichern. In diesem Fall steht die Ansicht nach dem Speichern allen anderen Benutzern des System ebenfalls zur Verfügung.


Ansicht laden

Um eine Ansicht zu laden, klicken Sie auf Ansicht.

Wählen Sie die gewünschte Ansicht.

Zur Auswahl stehen alle globalen Ansichten sowie alle, die Sie selbst für diese Tabelle gespeichert haben.


Ansicht zurücksetzen

Mit dem Zurücksetzen der Ansicht wird die Ansicht der Tabelle in den "Werkszustand" zurückgesetzt. Alle Filter, Aggregatfunktionen (Summen, Anzahl usw.) werden entfernt, alle Spalten werden eingeblendet und nach Alphabet sortiert.

Um eine Ansicht zurückzusetzen, klicken Sie auf Ansicht und wählen Sie Ansicht zurücksetzen.


Mehrere Datensätze markieren

In einer Tabelle können mehrere Datensätze markiert werden. Die Markierungsfunktionen entsprechen dem in Windows üblichen Standard.

Markierungsfunktionen:

·Um einzelne Datensätze zu markieren, halten Sie die Ctrl (in deutsch Strg) Taste gedrückt und klicken Sie mit der linken Maustaste alle gewünschten Datensätze an.

·Um ab einem Datensatz bis zu einem bestimmten Datensatz (von-bis) zu markieren, klicken Sie den 1. Datensatz mit der linken Maustaste an, drücken und halten die Shift-Taste (Umschalttaste), während Sie den letzten Datensatz mit der linken Maustaste anklicken.

·Drücken Sie Ctrl (in deutsch Strg) und gleichzeitig A (Ctrl-A/Strg-A), um alle Datensätze zu markieren.


Zusätzliche Funktionen

Markieren Sie einen Datensatz und betätigen Sie die Schaltfläche Funktionen, um alle zusätzlich installierten Funktionen aufzurufen,

die für den Datensatz verfügbar sind.

Funktionen für die ganze Tabelle werden immer angezeigt, unabhängig davon, ob ein Datensatz markiert wurde.

Klicken Sie auf den gewünschten Eintrag, um die entsprechende Funktion zu starten.

Hinweis:

Welche Funktionen Sie zur Verfügung haben hängt von der Ausstattung und Konfiguration Ihrer Anwendung ab.


Zusatzfunktionen der Datensätze

Gewisse Felder besitzen Zusatzfunktionen. Typische Felder mit Zusatzfunktionen sind z.B. Felder mit einer Internetadresse oder einer E-Mail-Adresse.

Bei der Detailanzeige werden die Symbole der Zusatzfunktionen direkt auf dem jeweiligen Feld angezeigt.

Zeigt die Detaildaten des verknüpften Feldes.

Neue Email an die E-Mail-Adresse schreiben.

Öffnet die Internetseite.

Wählt die Telefonnummer.


Detailanzeige eines Datensatzes

In der Detailanzeige werden die Details eines Datensatzes angezeigt.

Klicken Sie auf den Feldtitel oder den Feldwert, um ein Feld zu bearbeiten. Im Eingabemodus können Sie mit der

Tabulator-Taste auf das nächste Feld springen. Mit der Eingabe-Taste (Enter) können Sie die Eingabe speichern.

Mit der ESC-Taste können Sie die Eingabe abbrechen.

Ob die Felder bearbeitet werden können hängt von der jeweiligen Ansicht ab.

Siehe auch:

Zusatzfunktionen der Datensätze


Benutzer am Programm anmelden

Das Programm in der Netzwerk-Version bietet zwei verschiedene Möglichkeiten, einen Benutzer am Programm anzumelden. Die Einzelbenutzer-Version beinhaltet keine Benutzerverwaltung und startet ohne Passwortabfrage.

Anmeldungsarten der Netzwerk-Version:

Normale Anmeldung | Anmeldung mit Benutzername und Passwort.
Windows Anmeldung | Benutzername und Passwort von Windows verwenden.


Normale Anmeldung

Wenn Sie das Programm starten, müssen Sie sich mit Benutzername und Passwort anmelden.

Die einzelnen Benutzer können in der Benutzerverwaltung verwaltet werden.

Hinweis:

Das Handbuch für die Benutzerverwaltung steht nur in der Netzwerk-Version zur Verfügung.


Windows Anmeldung

Wenn Sie die Windows Anmeldung verwenden, müssen Sie sich im Gegensatz zur normalen Anmeldung nicht mit Benutzername und Passwort anmelden.

Die Anwendung verwendet Ihren Benutzernamen und das Passwort, mit dem Sie bei Windows angemeldet sind, und meldet Sie damit automatisch an.

Wenn der Benutzername und das Passwort des Programms mit Ihrer Windows-Anmeldung übereinstimmt, wird automatisch die Windows-Anmeldung verwendet. Die einzelnen Benutzer können in der Benutzerverwaltung verwaltet werden.

Hinweis:

Das Handbuch für die Benutzerverwaltung steht nur in der Netzwerk-Version zur Verfügung.


Startseite

Auf der Startseite des Programms können verschiedene Informationen eingeblendet werden. Jeder Benutzer kann selbst bestimmen, welche Informationen er auf seiner persönlichen Startseite sehen möchte. Grösse und Position der einzelnen Elemente können ebenfalls selbst bestimmt werden.

Zur Startseite gelangen Sie durch klick auf den Button Startseite oben links.


Konfigurieren

Die Startseite kann im Reiter Start konfiguriert werden.

Hinweis:

Welche Informationen auf der Startseite zur Verfügung stehen hängt von der Ausstattung Ihres Software-Paketes ab.


Backstage-Ansicht

In der sogenannten Backstage-Ansicht sind Konfiguration, Einstellungen, Handbücher, Hilfe, Online Update usw. untergebracht.

Die Backstage-Ansicht [image] kann oben links in der Anwendung angezeigt werden.


Hilfe

Im Bereich Hilfe befinden sich Handbücher, Onlinehilfe, Online-Update und weitere Informationen.


Hilfe & Support Zentrum

Über die Backstage-Ansicht => Hilfe => Handbücher und Onlinehilfe können Sie die Handbücher zu Ihrer Anwendung einsehen.


Online Update

Mit dem Online Update können Sie Ihre Anwendung auf den neuesten Stand bringen.

Das Online Update prüft für alle Module, die lizenziert sind, ob eine neuere Version verfügbar ist. Wenn neue Versionen gefunden werden, haben Sie die Möglichkeit, diese herunterzuladen und anschliessend zu installieren.

Sie erreichen die Online Update Funktion der Backstage-Ansicht unter Hilfe => Online Update

siehe auch:

Updates installieren


Updates installieren

1. Starten Sie das Update mit der Update Funktion in der Backstage-Ansicht unter Hilfe => Online Update

2. Klicken Sie auf Weiter. In der Liste "Neue Updates" sehen Sie alle verfügbaren Updates.

Wenn Sie auf "Details" klicken, werden detailliertere Informationen zu den Neuerungen des Updates angezeigt.

3. Klicken Sie erneut auf Weiter. Die Updates werden heruntergeladen und anschliessend installiert.


Online registrieren

Mit der Online-Registrierung können Sie Ihren persönlichen Lizenzschlüssel im Programm registrieren. Wenn es sich bei Ihrem Lizenzschlüssel um eine Vollversion handelt, wird damit die Vollversion der Software freigeschaltet.

Sie erreichen die Online-Registrierung der Backstage-Ansicht unter Hilfe => Online-Registrieren

Anmerkung:

Die Online-Registrierung steht nur für Demo-Versionen zur Verfügung. Bei Vollversionen steht an dieser Stelle der Menüpunkt Lizenz aktualisieren.


Lizenz aktualisieren

Über die Lizenzaktualisierung können Sie Ihre bestehende Lizenz aktualisieren. Dies ist z.B. erforderlich, wenn Sie neue Erweiterungsmodule erworben haben und diese auf Ihrer Lizenz aufgeschaltet wurden, oder wenn die Laufzeitbeschränkung nach Bezahlung der Rechnung aufgehoben wurde. Falls Sie neue Erweiterungsmodule erworben haben, sollten Sie nach der Lizenzaktualisierung ein Online-Update ausführen. Damit werden die neuen Module vollautomatisch installiert.

Sie erreichen die Online-Registrierung der Backstage-Ansicht unter Hilfe => Lizenz aktualisieren

Anmerkung:

Die Lizenzaktualisierung steht nur für Voll-Versionen zur Verfügung. Bei Demo-Versionen steht an dieser Stelle der Menüpunkt Online registrieren.


Module

Hier sehen Sie welche Module in Ihrem System geladen wurden. Zu jedem Modul wird die Lizenzierung und die Versionsnummer angezeigt

Sie finden die Modulinformationen in der Backstage-Ansicht unter Hilfe => Module

Module sind variable "Bausteine" der Anwendung, die dynamisch geladen werden. Jedes Modul stellt bestimmte Funktionalitäten zur Verfügung.

Module können von einem Administrator auf einfache Weise hinzugefügt oder entfernt werden. Durch die Verwendung dieser Technologie ist die Anwendung sehr flexibel, was die Erweiterbarkeit, Übersichtlichkeit und Wiederverwendbarkeit betrifft.

Die meisten Module benötigen eine Lizenzierung. Wenn diese nicht vorhanden ist, kann das Modul nicht verwendet werden.

Informationen zu weiteren verfügbaren Modulen erhalten Sie bei delight software gmbh oder dem Lieferanten Ihrer Software.


Lizenzinformationen

Hier sehen Sie für welche Module Sie eine gültige Lizenz besitzen und wann diese unter Umständen abläuft.

Sie finden die Lizenzinformationen in der Backstage-Ansicht unter Hilfe => Lizenzen

Unter Globale Lizenzangaben sehen Sie Ihre persönlichen Daten der Lizenz.


Konfiguration

Im Bereich Konfiguration können sämtliche Stammdaten, Einstellungen, Berechtigungen, Felder usw. konfiguriert werden.


Programmeinstellungen

In den Programmeinstellungen können allgemeine Einstellungen zum Aussehen und Verhalten der Software konfiguriert werden.

Sie erreichen die Einstellungen der Backstage-Ansicht unter Konfiguration => Programmeinstellungen.

Anmerkung:

Es ist möglich, dass dieser Menüpunkt für Sie nicht sichtbar ist. Ist dies der Fall, haben Sie keine Berechtigung, um darauf zuzugreifen. Wenden Sie sich bitte an Ihren Administrator oder Superuser.

Siehe auch:

Konfiguration Allgemein

Konfiguration Menus


Allgemein

Wenn die Option "Tray Icon verwenden" angekreuzt ist, wird die Anwendung nicht beendet, sondern mit einem Icon neben der Windows Uhr minimiert. Durch einen Klick auf dieses Icon wird die Anwendung wieder angezeigt. Wenn diese Option eingeschaltet ist, können Sie die Anwendung mit dem Tastenkürzel Alt+F4 oder im Menu unter Datei => Beenden beenden.


Menus

Im Bereich Design können Sie die Darstellung der Menüs sowie die Platzierung der Menüeinträge konfigurieren.

Im Bereich Art des Menüs können Sie definieren, wie das Hauptmenü der Anwendung individualisiert dargestellt werden soll.

Zusätzlich können Layout-Einstellungen für die verschiedenen Menü-Arten ausgewählt werden.

Ribbon-Menü | Die Ribbon-Menüs sind bekannt durch Microsoft Office und bieten einfachen und intuitiven Umgang mit der Software.
Seiten-Menü | Zeigt die Unterprogramme in einem Menü auf der linken oder rechten Seite an.
Toolbars | Stellt das Menü als Toolbar dar.

siehe auch:

Menü Struktur


Menü Struktur

Menüeinträge können mit Drag&Drop verschoben werden. Ziehen Sie dazu den gewünschten Menüeintrag mit der Maus auf den Zielbereich.

Eine neue Menügruppierung in einem der drei Bereiche (Menü, Toolbar, Konfiguration) kann mit Rechtsklick im gewünschten Bereich erstellt werden.

Menügruppen, die keine Menüeinträge besitzen, werden nicht gespeichert.


Design

Das Erscheinungsbild der Anwendung kann für jeden Arbeitsplatz individuell eingerichtet werden.

Sie erreichen die Einstellungen der Backstage-Ansicht unter Konfiguration => Design.

Klicken Sie auf Design und wählen Sie das gewünschte Aussehen. Diese Einstellung ist benutzerabhängig, d.h. jeder Benutzer kann seine eigene, persönliche Einstellung wählen.

Anmerkung:

Das Design kann auch in den Programmeinstellungen angepasst werden.


Datenbankfelder

Im Bereich Datenbankfelder können (Datenbank-) Felder und Kategorien verwaltet werden.

Sie erreichen die Einstellungen der Backstage-Ansicht unter Konfiguration => Datenbankfelder.

Wo Konfigurationsmöglichkeiten bestehen, können beliebig viele Datenbankfelder erstellt werden. Jedes Feld kann einer Kategorie zugeordnet und in verschiedenen Ansichten und Ansichtsvorlagen eingeblendet werden.

Links befindet sich eine Baumansicht für den Zugriff auf die einzelnen Konfigurationsbereiche. Auf der ersten Ebene befinden sich die Module (Adressverwaltung, Auftrag, Artikel usw.). Welche Module zur Verfügung stehen, hängt von der eingesetzten Programmversion ab.

Unterhalb der Module befinden sich die einzelnen Bereiche im Modul selbst. In der Adressverwaltung z.B. die Adressfelder. Auf einem Bereich können Felder erstellt, Felder an Kategorien zugeordnet, Ansichtsvorlagen sowie Ansichten verwaltet werden.


Datenbankfelder verwalten

Wählen Sie in der Baumansicht auf der linken Seite den gewünschten Bereich und wechseln Sie danach auf den Reiter Zusatzfelder.


Datenbankfelder erstellen

Klicken Sie auf Hinzufügen, um ein neues Feld zu erstellen.

Wählen Sie einen Titel/Namen sowie einen Datentyp für das neue Feld und klicken Sie auf Speichern.

Im Feld Auswahlliste kann eine Liste mit Vorgabewerten, die später bei der Eingabe zur Verfügung stehen sollen, hinterlegt werden.

Verfügbare Datentypen:

Textfeld

Feld zur Eingabe von Text. In Länge kann die maximale Länge definiert werden. Erlaubter Höchstwert für Länge ist 254.

Zahl (ohne Komma)

Zahlenfeld für ganze Zahlen ohne Nachkommastellen.

Gleitkomma-Zahl

Zahlenfeld für Gleitkommazahlen. In Präzision können die Anzahl Nachkommastellen definiert werden.

Datum

Feld zu Eingabe von Datumswerten ohne Zeitanteil.

Zeit

Feld zu Eingabe von Zeitwerten ohne Datumsanteil.

Datum und Zeit

Feld zu Eingabe von Datumswerten mit Zeitanteil.

Langes Textfeld

Feld für die Eingabe sehr langer Texte (länger als 254 Zeichen). Die Verwendung normaler Textfelder wird empfohlen. Das lange Textfeld sollte nur dann zum Einsatz kommen, wenn das normale Textfeld nicht ausreicht.

Checkbox

Ja/Nein Eingabefeld.

Bild

Eingabefeld, um ein Bild zu speichern.

Key=Value Auswahlliste

Eingabefeld für eine sogenannte Key-Value-Liste in der Form von:

1=Option A

2=Option B

Der Wert vor dem Gleichzeichen (=) wird in die Datenbank gespeichert, der Wert nach dem Gleichzeichen wird zur Anzeige/Auswahl verwendet.

Die Liste wird im Feld Auswahlliste hinterlegt.

Farbauswahl

Eingabefeld für Farbe mit einer Farbauswahl.

Verknüpfung aus XY

Je nach dem, welche Module installiert sind, werden verschiedene Verknüpfungsmöglichkeiten auf andere Datensätze angeboten, z.B.:

Verknüpfung auf Länderstamm - Zeigt ein Eingabefeld zur Auswahl eines Landes, das im Länderstamm hinterlegt ist.

Datensatz aus Detaildaten

Je nach dem, welche Module installiert sind, stehen eventuell noch weitere Verknüpfungsmöglichkeiten zur Verfügung. Ein Detail-Datensatzbereich aus der CRM-Adressverwaltung würde hier z.B. ebenfalls zur Auswahl stehen.

Verfügbare Flags:

Email-Feld | Aktiviert alle Email-Funktionen auf diesem Feld (Email-Archivierung, Email-Anhang, usw. sofern verfügbar)
URL-Feld | Behandelt den Inhalt des Feldes als (Internet-) URL.
Telefon-Feld | Aktiviert alle Telefon-Funktionen auf diesem Feld (Anruferkennung, Wahlhilfe usw. sofern verfügbar)
Mobilnummer-Feld | Aktiviert alle Telefon- und Mobilfunktionen auf diesem Feld (SMS, Anruferkennung, Wahlhilfe usw. sofern verfügbar).
Fax-Feld | Aktiviert alle Fax-Funktionen auf diesem Feld.
Skype-Feld | Aktiviert alle Telefon-Funktionen auf diesem Feld (Anruferkennung, Wahlhilfe usw. sofern verfügbar)


Datenbankfelder löschen

Wählen Sie das gewünschte Feld und klicken Sie auf Löschen.

Anmerkung für Administratoren:

Aus Sicherheitsgründen wird das Feld nur im Programm gelöscht, nicht aber in der Datenbank.


Kategorien der Felder

Wählen Sie in der Baumansicht auf der linken Seite den gewünschten Bereich und wechseln Sie danach auf den Reiter Kategorien.

In der Liste der Kategorien kann jedes Feld einer Kategorie zugeordnet werden. In der Spalte Kategorie kann ein beliebiger Wert gesetzt oder eine bestehende Kategorie ausgewählt werden. Um eine neue Kategorie zu erstellen, kann diese einfach in das gewünschte Feld geschrieben werden.

Die Kategorien werden verwendet, um die Daten in der Detailanzeige eines Datensatzes in den entsprechenden Kategorien anzuzeigen. Welche Felder in welcher Reihenfolge angezeigt werden wird auf den Ansichten definiert.


Ansichtvorlagen

Ansichtsvorlagen

Wählen Sie in der Baumansicht auf der linken Seite den Punkt Ansichtvorlage im gewünschten Bereich.

In jedem Bereich können beliebig viele Ansichtsvorlagen erstellt werden. Bei einer Ansichtsvorlage handelt es sich um die Definition, welche Felder in welcher Kategorie sichtbar sind. Die Ansichtsvorlagen können dann auf den verschiedenen Ansichten verwendet werden.

Die Standard-Ansichtsvorlage wird auf allen Ansichten verwendet, wo nicht explizit eine andere Einstellung vorgenommen wurde.


Ansichtvorlage hinzufügen

Ansichtsvorlage hinzufügen

Klicken Sie auf Hinzufügen, um eine neue Ansichtsvorlage zu erstellen.

Geben Sie der Ansichtsvorlage einen Namen und klicken Sie auf OK.


Ansichtvorlage löschen

Ansichtsvorlage löschen

Wählen Sie die gewünschte Ansichtsvorlage und klicken Sie auf Löschen.

Anmerkung:

Wenn die Ansichtsvorlage noch an einer anderen Stelle im Programm in Verwendung ist, kann die Ansichtsvorlage nicht gelöscht werden.


Felder definieren

Markieren Sie die Ansichtsvorlage, auf welcher Sie die Felder ändern möchten.

Im Bereich Kategorien sind alle verfügbaren Kategorien der Felder aufgelistet. Klicken Sie auf eine Kategorie, um die darin enthaltenen Felder anzuzeigen (rechts).

Markieren Sie alle Felder, die in dieser Kategorie eingeblendet werden sollen. Per Drag&Drop (Klicken&Ziehen) oder mit den Pfeilen [image] können die Felder angeordnet werden.

Anmerkung:

Nicht markierte Felder (=unsichtbar) werden beim Speichern automatisch hinter das letzte sichtbare Feld platziert.


Ansichten

Im Bereich Ansichten für 'XY' befinden sich die eigentlichen Ansichten, die im Programm z.B. bei Detailanzeige eines Datensatzes verwendet werden.

In der Grundeinstellung wird für jede Ansicht die Standard-Ansichtsvorlage verwendet. Da für viele dieser Ansichten oftmals die selben Feldansichten verwendet werden müssen/sollen, kann jeder Ansicht eine Ansichtsvorlage zugewiesen werden.

Wird bei Feldeinstellungen die Auswahl <Individuell> gewählt, können die Felder für die entsprechende Ansicht separat und unabhängig von einer Ansichtsvorlage definiert werden. Die Definition der Felder funktioniert in diesem Fall exakt so wie auch bei den Ansichtsvorlagen.


Programme

Im Bereich Programme werden sämtliche Einstellungen, die durch die installierten Softwaremodule zur Verfügung stehen, aufgeführt. Die Dokumentation der einzelnen Programmbereiche finden Sie im jeweiligen Handbuch.

Sie erreichen die Einstellungen der Backstage-Ansicht unter Konfiguration.


delight base

Diese Anwendung basiert auf

delight base

Version 6.x

Die universelle und leistungsstarke Basis für Datenbankanwendungen

Was ist delight base

delight base ist eine universelle Datenbankbasis, die es ermöglicht, in sehr kurzer Zeit eine komplette Datenbankanwendung für den Endbenutzer zu erstellen.

Datenbankanwendungen basierend auf delight base sind modular aufgebaut. Das bedeutet, dass die anwendungsspezifischen Funktionen in Modulen bereitgestellt werden.

delight base bildet das Bindeglied zwischen Datenbank und den Modulen. Es stellt dabei die Verbindung zur Datenbank her und stellt die Daten daraus den Modulen zu Verfügung.

delight base ist mehrbenutzerfähig.

Bei Datenbankanwendungen basierend auf delight base können sich verschiedene Benutzer mit Benutzername und Passwort anmelden. delight base erkennt den angemeldeten Benutzer und stellt die ihm zustehenden Module und Daten aus der Datenbank zur Verfügung. Der Zugriff auf Daten und Anwendungsfunktionen kann für jeden Benutzer individuell eingeschränkt werden.

delight base ist netzwerkfähig.

Datenbankanwendungen basierend auf delight base, welche auf verschiedenen Computer installiert sind, können über ein Netzwerk oder über das Internet auf die selben Daten einer Datenbank zugreifen.

delight base ist beliebig erweiterbar

Durch den modularen Aufbau können delight base-basierende Datenbankanwendungen im Funktionsumfang, durch Erweiterung der integrierten Module oder durch zusätzliche Module beliebig und schnell erweitert werden.

siehe auch:

delight base Anwendung

Versionen von delight base


Versionen

delight base Einzelbenutzer

Wird als Basis für einfache Datenbankanwendungen verwendet, die von einem Benutzer lokal auf einem Computer angewendet werden kann. Diese Version ist nicht mehrbenutzerfähig.

delight base Netzwerk

Wird als Basis für Datenbankanwendungen verwendet, die auf mehreren Computer installiert sind und die von mehreren Benutzern gleichzeitig verwendet werden können. Die Daten befinden sich zentral auf einem Datenbankserver. Alle Benutzer haben über ein Netzwerk oder über das Internet (z.B. VPN) Zugriff auf diesen zentralen Datenbestand.


Benutzerverwaltung

Verwaltung und Administration der Benutzer und Berechtigungen.

In dieser Dokumentation wird die Verwaltung und Administration der Berechtigungen sowie die Benutzer- und Gruppenverwaltung beschrieben.

siehe auch:

Wo finde ich die Berechtigungen

Benutzer

Gruppen

Berechtigungen


Verwaltung

Die Verwaltung der Berechtigungen wird in der Backstage-Ansicht unter Konfiguration => Benutzerverwaltung aufgerufen.

siehe auch:

Benutzer

Gruppen

Daten


Benutzer

In der Benutzerverwaltung können die Benutzer der Anwendung konfiguriert und verwaltet werden.

Jeder Benutzer kann beliebig vielen Gruppen zugeordnet sein. Anhand der Gruppen, in denen ein Benutzer Mitglied ist, werden die Berechtigungen definiert, die der Benutzer im Programm besitzt. Jeder Benutzer besitzt einen eindeutigen Benutzernamen sowie ein Passwort.

Jeder Benutzer muss einem Adresseintrag zugeordnet sein. Über diese Verknüpfung auf eine Adresse wird dem Programm mitgeteilt, welcher Mitarbeiter welchen Benutzernamen verwendet. Entsprechend werden bei der Adressauswahl nur Mitarbeiter angezeigt (Adressen aus der Zuordnungsart Mitarbeiter in der Adressverwaltung).

Über den Zugriffsmodus kann für jeden Benutzer definiert werden, mit welchen Zugriffsrechten er auf die Daten des Programms zugreifen kann.

Hinweis:

Wenn Benutzername und Passwort mit der Windows-Anmeldung übereinstimmen, wird der Benutzer automatisch am Programm angemeldet.

siehe auch:

Zugriffsmodus

Benutzer hinzufügen

Benutzer löschen

Gruppe hinzufügen

Gruppe löschen


Zugriffsmodus

Der Zugriffsmodus eines Benutzers bestimmt, welche Daten im Programm für ihn sichtbar sind und ob er schreibend oder nur lesend darauf zugreifen kann.

Auf welche Daten ein Benutzer Zugriff hat, wird über "Mitgliedschaft in Gruppen" bestimmt. Jeder Benutzer kann nur die Datensätze sehen, die einer Gruppe zugeordnet sind, in der er Mitglied ist. Datensätze, die keiner Gruppe zugeordnet sind, stehen allen Benutzern zur Verfügung.

Über die Option "Nur Lesezugriff im ganzen Programm" kann der Benutzer auf alle Daten zugreifen (auf die er durch seine Mitgliedschaften Zugriff hat), kann diese aber nicht ändern. Ist diese Option ausgeschaltet, kann über "Zugriffsmodus auf Daten" für jede Mitgliedschaft separat definiert werden, ob der Benutzer Datensätze dieser Gruppe nur lesen oder auch schreiben darf.


Benutzer hinzufügen

Klicken Sie im Abschnitt Benutzer auf Benutzer hinzufügen.

Geben Sie Benutzername und Passwort für den neuen Benutzer ein und wählen Sie danach in der Auswahlliste Adresseintrag eine Adresse aus, die dem neuen Benutzer zugeordnet werden soll.

Klicken Sie auf Speichern, um den Benutzer hinzuzufügen.

Fügen Sie dem neuen Benutzer die gewünschten Gruppen hinzu.

Hinweis:

Bei der Adressauswahl werden nur Mitarbeiter angezeigt (Adressen aus der Zuordnungsart Mitarbeiter in der Adressverwaltung). Sollten Sie die Adresse für den Mitarbeiter noch nicht erfasst haben, müssen Sie zuerst die Adresse in der Adressverwaltung erfassen. Stellen Sie sicher, dass die Adresse des Mitarbeiters in einer Zuordnung mit der Zuordnungsart "Mitarbeiter" aufgenommen wurde.

siehe auch:

Gruppe hinzufügen


Benutzer löschen

Markieren Sie einen Benutzer in der Liste auf der linken Seite.

Klicken Sie im Abschnitt Benutzer auf Löschen.


Gruppe entfernen

Markieren Sie einen Benutzer in der Liste auf der linken Seite.

Markieren Sie bei "Mitgliedschaft in Gruppen" die gewünschte Gruppe und klicken Sie auf Löschen.


Gruppe hinzufügen

Markieren Sie einen Benutzer in der Liste auf der linken Seite.

Klicken Sie unter Gruppenmitgliedschaft auf Gruppe hinzufügen.

Wählen Sie die gewünschte Gruppe und klicken Sie auf Hinzufügen.


Benutzergruppen

In der Gruppenverwaltung können die Gruppen und Ihre Zugriffsrechte verwaltet werden.

Alle Berechtigungen der Anwendung werden über Gruppen definiert und vergeben.

Ist ein Benutzer Mitglied einer Gruppe, besitzt er alle Berechtigungen und Zugriffsrechte dieser Gruppe.

Achtung:

Löschen Sie auf keinen Fall eine Gruppe, wenn Sie nicht genau wissen, welche Auswirkungen dies auf die Anwendung hat.

siehe auch:

Berechtigungen


Berechtigungen

In der Verwaltung der Berechtigungen können die Berechtigungen der Gruppen verwaltet werden.

Ihre Arbeitsoberfläche kann je nach Konfiguration und Ausstattung des Softwarepakets Abweichungen vom unten gezeigten Bild haben.

In der Baumstruktur auf der rechten Seite ist eine Liste mit allen im Programm installierten Modulen.

Welche Berechtigungsoptionen auf einem Modul verfügbar sind ist vom Modul abhängig. Weitere Informationen zu den Berechtigungsoptionen der einzelnen Module entnehmen Sie bitte der entsprechenden Modul-Dokumentation.

siehe auch:

Berechtigung einer Gruppe entziehen

Gruppe berechtigen


Gruppe berechtigen

Öffnen Sie rechts in der Baumstruktur ein Modul.

Markieren Sie die gewünschte Berechtigungsoption, die Sie einer Gruppe zugänglich machen wollen.

Klicken sie im Bereich Berechtigungen auf Gruppe hinzufügen.

Markieren Sie die gewünschte Gruppe aus der Auswahlliste und klicken Sie auf Hinzufügen.

Hinweis:

Sie können eine Gruppe auch per Drag&Drop aus der Liste (link) auf die gewünschte Berechtigungsoption ziehen.


Berechtigung einer Gruppe entziehen

Öffnen Sie rechts in der Baumstruktur ein Modul

Öffnen Sie die gewünschte Berechtigungsoption, die Sie einer Gruppe entziehen wollen.

Markieren Sie die gewünschte Gruppe auf der Berechtigungsoption.

Klicken Sie auf Entfernen, um die Gruppe aus der Berechtigungsoption zu entfernen.


Datenzugriff über Benutzergruppen

Im Bereich Daten kann definiert werden, auf welchen Datensätzen die Zugriffsrechte aktiviert werden sollen.

Im Normalfall sollte an dieser Stelle nur eine Option ausgewählt werden. Die Zugriffsrechte werden auf Datensätze, die miteinander verknüpft sind, vererbt. Ist z.B. die Option "Zuordnungen" ausgewählt, gelten die Zugriffsrechte einer Zuordnung automatisch auch für alle Adressen in dieser Zuordnung.


Berichte im Designer-Layout

Der Designer erlaubt dem Nutzer die bequeme Bearbeitung des äußeren Erscheinungsbildes des Reports und eine sofortige Vorschau. Das Interface des Designers ist den aktuellen Standards angepasst, unter Nutzung der Symbolleisten. Deren Anordnung kann den Bedürfnissen des Nutzers angepasst werden. Die Informationen der Anordnungen werden gespeichert und bei jedem Neustart wiederhergestellt. Auch alle anderen Veränderungen des Designers werden gespeichert.

Legende:

1 Arbeitsfläche des Designers;

2 Menüleiste;

3 Symbolleiste;

4 - Objektleiste;

5 Tabs des Codeeditors und Data;

6 Fenster "Reporttree"

7 Fenster "Objektinspektor"

8 Fenster "Datenbaum". Aus diesem Fenster können Elemente auf das Blatt gezogen werden.

9 Lineal. Beim Rüberziehen des Lineals auf das Blatt, entsteht eine Linie an der Objekte befestigt werden können.

10 - Statusleiste.


Tastatursteuerung

Tasten Beschreibung

Ctrl+O Befehl "Datei|Öffnen..."

Ctrl+S Befehl " Datei|Speichern"

Ctrl+P Befehl " Datei|Vorschau"

Ctrl+Z Befehl "Bearbeiten|Rückgängig"

Ctrl+C Befehl "Bearbeiten|Kopieren"

Ctrl+V Befehl "Bearbeiten|Einfügen"

Ctrl+X Befehl "Bearbeiten|Ausschneiden"

Ctrl+A Befehl "Bearbeiten|Alles auswählen"

Arrow, Tab Bewegung zwischen den Objekten

Del Löschen der markierten Objekte

Enter Ruft den Editor des markierten Objekts auf

Shift+Pfeile Größenänderung des markierten Objekts

Ctrl+Pfeile Verschiebung des markierten Objekts

Alt+Pfeile Markiertes Objekt haftet sich an das nächste Objekt in ausgesuchter Richtung


Maussteuerung

Tasten | Beschreibung
Linke Maustaste | Objektauswahl; Einfügen eines neuen Objektes; Verschieben und Größenänderung des Objektes (Objekte). Der Maßstab der hervorgehobenen Objekte wird durch das Ziehen des roten Quadrates in der rechten, unteren Ecke der Gruppe verändert.
Rechte Maustaste | Das Kontextmenü des Objekts (Objekte), über welchem sich der Mauszeiger befindet.
Doppelklick linke Maustaste | Aufruf des Objekteditors. Der Doppelklick auf eine leere Stelle der Seite ruft das Dialogfenster "Seiteneinstellungen" auf.
Mausrad | Scrollen der Seite.
Shift + Linke Maustaste | Ist das Objekt bereits ausgewählt, so wird die Auswahl aufgehoben. Die Auswahl der anderen Objekte ist dadurch nicht betroffen.
Ctrl + linke Maustaste | Beim Drücken und Verschieben der Maus wird ein Rahmen gezogen; beim Loslassen werden alle Objekte hervorgehoben die in dem Rahmen liegen.
Alt + linke Maustaste | Ist das Objekt "Text" hervorgehoben, so wird der Inhalt bearbeitet.


Designersymbolleiste

Die Designerleiste ist mit der Objektleiste verbunden und besitzt folgende Buttons

Icon | Bezeichnung | Beschreibung
 | Auswahlwerkzeug | Standardansicht, in dem man mit dem Mauszeiger Objekte anwählen, deren Größen verändern kann usw.
 | Hand | Das Berichtsblatt kann bei gedrückter Maustaste verschoben werden.
 | Zoom | Das einmalige Drücken der linken Maustaste vergrößert den Maßstab um 100%, die rechte Maustaste verkleinert um 100%. Durch Drücken + Halten der linken Maustaste wird beim Ziehen der ausgewählte Bereich vergrößert.
 | Texteditor | Das Klicken auf das Objekt "Text", erlaubt den Inhalt direkt auf der Seite zu bearbeiten. Beim Drücken + Halten der linken Maustaste wird beim Ziehen in dem ausgewählten Bereich das Objekt "Text" gebildet und dessen Editor gestartet.
 | Format kopieren | Die Taste wird aktiv, wenn das Objekt "Text" ausgewählt ist. Das Klicken mit der linken Maustaste auf das Objekt "Text", kopiert das Format des vorhergehenden Objektes "Text" rein.


Symbolleiste "Standard"

Symbolleiste &quot;Standard&quot;

 Top Letztes Next

Icon | Bezeichnung | Beschreibung
 | Neuer Report | Erstellt einen neuen Report.
 | Report öffnen | Öffnet einen gespeicherten Report . Tastaturbefehl - Ctrl+O.
 | Report speichern | Speichert einen Report. Tastaturbefehl - Ctrl+S.
 | Vorschau | Erstellt den Bericht und zeigt die Vorschau. Tastaturbefehl - Ctrl+P.
 | Neue Seite | Fügt eine neue Seite in den Bericht ein.
 | Neue Dialogseite | Fügt eine neue Dialogseite in den Report ein.
 | Seite löschen | Entfernt die bestehende Seite.
 | Seiteneinstellungen | Ruft das Fenster Seiteneinstellungen auf.
 | Variablen | Ruft den Editor der Variablen auf.
 | Ausschneiden | Ausschneiden der markierten Objekte in den Zwischenspeicher. Tastaturbefehl - Ctrl+X.
 | Kopieren | Kopiert die markierten Objekte in den Zwischenspeicher. Tastaturbefehl - Ctrl+C.
 | Einfügen | Fügt Objekte aus dem Zwischenspeicher ein. Tastaturbefehl - Ctrl+V.
 | Rückgängig | Macht den letzten Befehl rückgängig. Tastaturbefehl - Ctrl+Z.
 | Wiederherstellen | Macht die Aktion des Befehls "Rückgängig" rückgängig. Tastaturbefehl - Ctrl+Y.
 | Gitter anzeigen | Zeigt die Gitterlinien auf der Seite an. Die Abstände können bei den Optionen des Designers verändert werden.
 | Am Gitter ausrichten | Beim Verschieben und Ändern der Größen der Objekte, werden die Koordinaten/Maßstäbe sprungweise an die Abstände des Gitters angepasst.
 | An Gitter anpassen | Verändert die Maßstäbe/Standorte der markierten Objekte so, dass sie sich an das Gitter anpassen.
 | Zoom | Bestimmt den Maßstab der Seite.
3.15 | Gruppieren | Gruppiert die markierten Objekte.
3.16 | Gruppierung aufheben | Die Gruppierung der markierten Objekte aufheben.


Symbolleiste "Text"

Symbolleiste &quot;Text&quot;

 Top Letztes Next

Icon | Bezeichnung | Beschreibung
Kein Stil | Stil | Erlaubt die Auswahl des Stils. Um diese zu bestimmen rufen Sie den Menüpunkt "Report|Stile..." auf.
Arial | Schrift | Erlaubt die Wahl der Schrift. Merkt sich die 5 zuletzt aufgerufenen.
10 | Schriftgröße | Verändert die Größe der Schrift. Kann auch eingegeben werden.
 | Fett | Formatiert markierten Text/Zahlen "fett" (hebt die Formatierung auf, wenn diese bereits "fett" formatiert ist).
 | Kursiv | Formatiert markierten Text/Zahlen kursiv (hebt die Formatierung auf, wenn diese bereits "kursiv" formatiert ist).
 | Unterstrichen | Unterstreicht markierten Text/Zahlen (hebt die Formatierung auf, wenn diese bereits "unterstrichen" formatiert ist).
 | Schrift-einstellungen | Schrifteinstellungen können hier verändert werden.
 | Schriftfarbe | Auswahl der Farben der Schrift.
 | Hervorheben | Zeigt einen Dialog mit den Attributen der Hervorhebung des ausgewählten Objektes "Text" auf.
 | Textdrehung | Erlaubt die Textdrehung.
 | Ausrichtung links | Richtet den Text links aus.
 | Ausrichtung zentriert | Zentriert den Text.
 | Ausrichtung rechts | Richtet den Text rechts aus.
 | Blocksatz | Richtet den Text gleichmäßig am linken und rechten Rand aus.
 | Ausrichtung oben | Richtet den Text am oberen Rand aus.
 | Ausrichtung mitte | Richtet den Text gleichmäßig am oberen und unteren Rand aus.
 | Ausrichtung unten | Richtet den Text am unteren Rand aus.


Symbolleiste "Rahmen"

Symbolleiste &quot;Rahmen&quot;

 Top Letztes Next

Icon | Bezeichnung | Beschreibung
 | Linie oben | Fügt hinzu/entfernt die Linie oben.
 | Linie unten | Fügt hinzu/entfernt die Linie unten.
 | Linie links | Fügt hinzu/entfernt die Linie links.
 | Linie rechts | Fügt hinzu/entfernt die Linie rechts.
 | Alle Rahmenlinien | Fügt alle Rahmenlinien hinzu.
 | Kein Rahmen | Entfernt alle Rahmenlinien.
 | Schatten | Aktiviert/entfernt Schatten.
 | Hintergrundfarbe | Erlaubt die Auswahl der Hintergrundfarbe.
 | Rahmenfarbe | Erlaubt die Auswahl der Rahmenfarbe.
 | Rahmenstil | Erlaubt die Wahl des Rahmenstils.
1 | Rahmenbreite | Erlaubt die Wahl der Rahmenbreite.


Symbolleiste "Ausrichtungspalette"

Symbolleiste &quot;Ausrichtungspalette&quot;

 Top Letztes Next

Icon | Beschreibung
 | Ausrichtung links.
 | Ausrichtung zentriert.
 | Ausrichtung rechts.
 | Ausrichtung oben.
 | Ausrichtung mitte.
 | Ausrichtung unten.
 | Abstand horizontal.
 | Abstand vertikal.
 | Horizontal im Band zentrieren.
 | Vertikal im Band zentrieren.
 | Gleiche Breite.
 | Gleiche Höhe.


Designer-Optionen

Um die Designeroptionen verändern zu können, nutzen Sie "Ansicht|Optionen..."..

Hier können die gewünschten Maße eingestellt (Zentimeter, Zoll, Pixel) und die Abstände des Gitters angepasst werden.Die Maße können ebenfalls im Designer selbst eingestellt werden. Ein Doppelklick in die linke Ecke der Statusleiste, in dem die aktuellen Maße angezeigt werden,verändert diese.

Es kann auch eingestellt werden, ob das Gitter angezeigt werden soll und ob die Objekte an diesem ausgerichtet werden sollen. Dies kann auch über die Symbolleiste "Standard" im Designer geschehen.

Sie können die Schriftart für den Code-Editor und für den Text-Editor einstellen. Ist die Option "Schrift des Objekts verwenden" aktiviert, so wird die Schriftart im Fenster des Editors, der Schrift im Objekt entsprechen.

Wenn Ihnen die weiße Arbeitsfläche des Designers und der anderen Fensternicht gefällt, so kann diese über die Buttons "Arbeitsbereich" und "Werkzeugfenster" geändert werden. Die Option "LCD Gitterfarbe" erhöht leicht den Kontrast der Gitterlinien.Dies verbessert ihr erkennen auf Flüssigkristallmonitoren.

Option "Editor nach dem Einfügen anzeigen" steuert den Prozess beim Einfügen neuer Objekte. Ist die Option aktiviert, so wird jedesmal beim Einfügen eines Objekts der Editor gestartet. Möchten Sie viele neue Objekte einfügen, so ist es besser diese Option abzuschalten.

Durch das Deaktivieren der Option "Bandbezeichnungen anzeigen" werden diese ausgeblendet. Dadurch wird auf der Seite Platz gespart. Die Bandbezeichnung wird in diesem Fall im Band geschrieben.

Das Deaktivieren der Option "Drop-Down Feldliste anzeigen" stoppt das Anzeigen der Drop-Down Liste wenn der Mauszeiger auf das Objekt "Text" gezogen wird, welches mit Daten verbunden ist. Dies wird notwendig, wenn im Bericht viele kleine Objekte enthalten sind.

Die Option "Freie Bandpositionierung" löst die Verbindung der Bänder zum Blatt. Diese Option ist abgeschaltet und die Bänder ordnen sich gem. ihrer Bestimmung. Der Abstand zwischen den Bändern wird im Feld "Abstand zwischen Bändern" festgelegt.


Reporteinstellungen

Das Fenster mit den Berichtsoptionen ist über das Menü "Report|Optionen..." zu erreichen. Der Dialog enthält 3 Seiten.

Erste Seite - Allgemein:

screenshot - 18.05.2009 , 14_56_06

Sie können den Bericht an einem angeschlossenen Drucker koppeln d.h. der Bericht wird, sollte nichts anderes eingestellt werden, über den ausgewählten Drucker laufen. Dies ist hilfreich, wenn es mehrere Drucker zur Auswahl gibt. Textdokumente können z.B. an einen Schwarz-Weiss-Drucker gekoppelt werden und Dokumente mit Grafiken an einen Farbdrucker. Im Verzeichnis der Drucker ist der Drucker "Vorgabe" enthalten. Wird dieser ausgewählt, so erfolgt das Drucken auf dem aktuell genutzten Drucker.

Ebenfalls kann die Anzahl der Kopien eingestellt werden und ob eine Sortierung erfolgen soll.

Die Einstellungen dazu werden im Fenster "Drucken" angezeigt.

Wenn "Zweipass" aktiviert ist, wird der Bericht im 2 Schritten erstellt. Beim ersten Schritt wird der Report erstellt und auf Seiten verteilt, dies jedoch ohne das Speichern des Ergebnisses. Beim zweiten Schritt erfolgt die übliche Erstellung des Berichtes durchgeführt mit dem anschließenden Speichern.

Wozu die 2 Schritte? Oft wird diese Option in dem Fall verwendet, dass in dem Report die gesamte Seitenanzahl erwähnt wird, z.B. "Seiten 1 bis 15". Dann wird im ersten Schritt die tatsächliche Anzahl festgestellt und ist über die Systemvariable TOTALPAGES zu erreichen. Der häufigste Fehler ist der Versuch der Anwendung dieser Variablen bei einem Einweg-Report, hier wird diese dann auf 0 gesetzt.

Eine andere Anwendungsmöglichkeit ist das Ausführen von Berechnungen im ersten Durchgang und das Anzeigen der Resultate im zweiten. Zum Beispiel wenn man in der Kopfzeile einer Gruppe eine Summe anzeigen lassen möchte, die normalerweise erst am Ende der Gruppe berechnet und angezeigt wird. Diese Arten der Berechnung sind mit der Nutzung der eingebauten Sprache FR verbunden.

Das Häkchen bei "Drucken wenn leer" erlaubt es, einen Report zu erstellen der keine Datenzeilen enthält. Wird diese Option deaktiviert, so werden leere Reporte nicht erstellt.

Das Feld "Passwort" erlaubt die Eingabe des Passwortes, welches beim Öffnen des Reports abgefragt wird.

Die Steuerungselemente der zweiten Seite erlauben den Zugriff auf die Optionen der Vererbung.

screenshot - 18.05.2009 , 14_57_31

Ausführlicher über die Vererbung werden wir uns in im Kapitel "Vererbung der Reporte" beschäftigen. Hier sieht man von welchem Report der Aktuelle ererbt ist, der Basis-Report kann abgetrennt werden (dadurch wird der Report selbstständig, nicht vererbt) und auch kann ein Ausgewählter beerbt werden.

Die Elemente der dritten Seite des Dialoges erlauben die Reportbeschreibung.

screenshot - 18.05.2009 , 14_57_16

Hier können z.B. der Name der Reports (wird im Vorschaufenster angezeigt), Autor, Beschreibung, Grafik, Version, usw. eingegeben werden. All dies ist jedoch nicht notwendig und dient nur informativen Zwecken.


Seiteneinstellungen

Seiteneinstellungen sind über das Menü "Datei|Seiteneinstellungen..." oder über den Doppelklick auf eine freie Fläche des Blattes zu erreichen.

screenshot - 18.05.2009 , 15_09_58

Auf der ersten Seite des Dialoges können die Ränder, Größe und Ausrichtung der Seite ausgewählt werden. In "Papierzufuhr" kann man den Drucker für die erste und alle anderen Seiten aussuchen.

Auf der zweiten Seite kann die Spaltenanzahl, bei mehrspaltigen Reporten, angegeben werden. Die aktuellen Einstellungen werden im Designer angezeigt.

screenshot - 18.05.2009 , 15_10_11

Die Option "Auf vorige Seite drucken" startet den Druck der Seite auf freiem Platz der vorherigen. Dies wird angewendet, wenn die Reportschablone aus mehreren Seiten besteht oder beim Druck von Batch-Reporten.

Die Option "Ränder spiegeln" vertauscht den rechten und linken Rand der Seite, um diese besser anzeigen und drucken zu können.

Die "Endlose Seitenbreite" und "Endlose Seitenhöhe" Optionen passen die Seitengröße der Anzahl der Datensätze auf der Seite an. In diesem Fall sehen Sie eine große Seite in dem Vorschau-Fenster, statt mehrerer Seiten.

Die Option "Seitenhöhe im Entwurfsmodus vergrößern" erhöht die Seitenhöhe. Dies ist hilfreich, wenn es auf der Seite mehrere Bänder gibt. Die tatsächliche Höhe wird jedoch nicht verändert.


Reportobjekte

Eine leere Reportseite in FastReport sieht aus, wie eine leeres Blatt Papier. Auf der gesamten Seite können Objekte eingefügt werden, welche verschiedene Informationen anzeigen können (Text/Grafiken usw.). Auch kann das äußere Erscheinungsbild angepasst werden. Hier eine kurze Beschreibung der standardmäßig zur Verfügung stehenden Objekte:

Objekt | Icon | Beschreibung
Band einfügen | 10.1 | Fügt ein Band ein.
Text | 10.2 | Zeigt eine oder mehrere Textzeilen in der markierten Fläche.
Grafik | 10.3 | Zeigt eine Grafik in den Formaten BMP, JPEG, ICO, WMF, EMF.
Systemtext | 10.4 | Zeigt Systeminformationen an (Datum, Uhrzeit, Seitenzahl), sowie die Aggregatwerte.
Unterreport | 10.5 | Erlaubt es einen Unterreport innerhalb des aktuellen einzufügen.
Zeichnen | 10.6 | Objekte der Kategorie "Zeichnen" stellen verschiedene geometrische Figuren zur Verfügung Linien, Rechteck, abgerundetes Rechteck, Ellipse, Dreieck, Raute.
Diagramm | 10.7 | Zeigt die Daten in Form verschiedener Diagramme an (Kreis-Diagramm, Histogramm usw.).
RichText | 10.8 | Zeigt den formatierten Text im Format "RichText" (RTF).
Cross-tab Objekt | 10.9 | Erstellung einer Tabelle.
CheckBox | 10.10 | Erstellt eine Checkbox Häkchen oder Kreuz.
Barcode | 10.11 | Zeigt die Daten in Form eines Barcodes an (es stehen verschiedene Arten zur Verfügung).
OLE - Objekt | 10.12 | Erlaubt es diverse Objekte anzuzeigen, unter Verwendung von OLE.
Verlauf | 10.13 | Zeigt eine steigende Schattierung an.

Die wichtigsten Objekte mit denen Sie am meisten arbeiten werden, sind "Band" und "Text". Im folgendem Verlauf dieses Kapitels werden wir Sie näher kennen lernen.


Report "Hello, World!"

Report &quot;Hello, World!&quot;

 Top Letztes Next

Erstellen wir den einfachsten Report, der eine einzige Überschrift "Hello, World!" enthält. Öffnen Sie den Designer FastReport. Auf der Objektleiste des Designers suchen wir den Button "Text" und klicken diesen an. Danach bewegen wir den Mauszeiger auf die gewünschte Stelle des Blattes und klicken erneut mit der Maustaste. Das Objekt ist erstellt.

Auf den Bildschirm erscheint der Texteditor, falls nicht (dies kann in den Optionen des Designers eingestellt werden), so klicken Sie doppelt auf das Objekt.

Fügen Sie den Text "Hello World!" ein und drücken auf OK.

Der Report ist fertig. Um diesen einzusehen wählen Sie den Punkt "Datei|Vorschau" oder klicken Sie auf den Button in der Standardsymbolleiste. Sie werden eine einzelne Seite des Reports sehen auf der «Hello World!" steht. Den erhaltenen Report kann man ausdrucken, speichern oder in ein unterstütztes Format exportieren.


Das Objekt "Text"

Das Objekt &quot;Text&quot;

 Top Letztes Next

Das Objekt "Text" besitzt umfangreiche Möglichkeiten. Es kann Text, Rahmen und Schattierungen anzeigen. Der Text kann verschiede Schriftarten haben und in verschiedenen Größen, Farben und Stilen dargestellt weren. Alle Einstellungen werden manuell mit Hilfe der Symbolleisten gemacht:

Hier einige Beispiele der Darstellung des Textes:

Lassen Sie uns nun weitere Möglichkeiten dieses Hauptobjektes kennenlernen. Erstellen wir ein neues Objekt "Text" und fügen dort 2 Zeilen ein:

Dies ist eine sehr, sehr, sehr lange Textzeile.

Diese zweite Zeile ist kürzer.

Aktivieren Sie den Rahmen des Objekts und ziehen diesen mit der Maus auf eine Größe von 9 cm x 3 cm. Sie sehen das Objekt ist in der Lage auch mehrzeilige Texte darzustellen und nicht nur einzeilige. Jetzt verkleinern Sie das Objekt auf eine Breite von 5 cm. Die lange Zeile passt jetzt nicht mehr in das Objekt, deshalb wird der Text der Breite automatisch angepasst. Hier arbeitet die Objekteigenschaft "WordWrap" oder auch "Zeilenumbruch". Sollte diese ausgeschaltet werden (im Inspektor oder im Objektkontextmenü) so werden die Wörter einfach abgeschnitten.

Jetzt testen wir das Ausrichten des Textes innerhalb des Objekts. Die Buttons dazu befinden sich in der Symbolleiste "Text" und erlauben eine unabhängige Ausrichtung des Textes, sowohl horizontal als auch vertikal. Achten Sie auf den Button "Blocksatz", dies erlaubt eine Ausrichtung des Textes am rechten und linken Rand des Objekts. Dazu muss die Option "Zeilenumbruch" aktiviert sein.

Der gesamte Text kann von 0 bis 360 Grad gedreht werden. Der Button [image] auf der Symbolleiste "Text" erlaubt das schnelle drehen des Textes um 45, 90, 180 und 270 Grad. Falls eine andere Gradzahl benötigt wird, benutzen Sie Objektinspektor. In der Eigenschaft Rotation kann der nötige Wert eingegeben werden. Sollte sich die Gradzahl von den vorgegebenen 45, 90, 180, 270 unterscheiden, kann es sein, dass ein Teil des Textes nicht mehr innerhalb der Grenzen des Objekts liegt (s.h. Bild). Vergrößern Sie die Höhe des Objekts, um diese anzupassen.

Sehen wir uns kurz einige Eigenschaften des Objekts "Text" an, die sein Äußeres beeinflussen. Die meisten dieser Eigenschaften sind nur über den Inspektor erreichbar:

- BrushStyle Art der Füllung im Objekt;

- CharSpacing Pixelabstand zwischen den Symbolen;

- GapX, GapY Pixelabstand des Textes von der linken und oberen Grenze des Objekts;

- LineSpacing Zeilenabstand in Pixel;

- ParagraphGap Abstand der ersten Zeile des Paragraphen in Pixel.


HTML-Tags im Objekt "Text"

HTML-Tags im Objekt &quot;Text&quot;

 Top Letztes Next

Dieses Objekt "versteht" einige einfache HTML-tags. Tags können innerhalb des Textes im Objekt angelegt werden. Diese sind von vornherein abgestellt und müssen erst aktiviert werden, dazu klicken Sie im Kontextmenü des Objekts auf "HTML Tags erlauben" oder aktivieren die Eigenschaft "AllowHTMLTags" im Objektinspektor. Hier eine Liste der unterstützten Tags:

<b> - fetter Text

<i> - kursiver Text

<u> - unterstrichener Text

<strike> - durchgestrichener Text

<sub> - unterzeiliger Text

<sup> - Text oberhalb der Zeile

<font color> - Schriftfarbe

<nowrap> - der Text wird nicht wie bei "WordWrap" getrennt, sondern komplett übertragen

Demonstrieren wir die Anwendungen der Tags an Beispielen.

text <b>fetter Text</b> <i>kursiver Text</i> <b><i>fett und kursiv</b></i>

E = mc<sup>2</sup>

A<sub>1</sub> = B<sup>2</sup>

ein gewöhnlicher Text, <font color=red>und dieser ist rot</font>

ein gewöhnlicher Text, <font color="#FF8030">und dieser orange</font>

ein Beispiel des Tags <nowrap>.

Reportgenerator - Fast Report.

Reportgenerator - <nowrap>Fast Report.</nowrap>


Darstellung von Ausdrücken mithilfe des Objektes "Text"

Darstellung von Ausdrücken mithilfe des Objektes &quot;Text&quot;

 Top Letztes Next

Eine der wichtigsten Besonderheiten dieses universellen Objektes, ist die Möglichkeit nicht nur statische Text anzuzeigen, sondern auch Ausdrücke. Diese können im Objekt mit dem Text vermischt werden. Schauen wir uns ein einfaches Beispiel an, in dem wir folgende Textzeile in das Objekt "Text" einfügen:

Hello, World! Today is [DATE].

Wenn wir den Report jetzt erstellen, sehen wir folgendes:

Hello, World! Today is 01.01.2004.

Was ist passiert? Während der Reporterstellung hat FastReport im Text einen Ausdruck entdeckt (in den eckigen Klammern) und hat dessen Bedeutung in den Text eingebaut. Selbstverständlich ohne die eckigen Klammern. Das Objekt "Text" kann eine beliebige Anzahl von Ausdrücken enthalten, vermischt mit dem gewöhnlichen Text. Die Klammern können sowohl Ausdrücke als auch einzelne Variablen enthalten z.B. [1+2*(3+4)]. Die Ausdrücke können ebenso Konstanten, Variablen, Funktionen und DB Felder enthalten.. Diese Möglichkeiten werden wir im späteren Verlauf näher betrachten.

Also erkennt FastReport automatisch Ausdrücke, wenn diese in eckigen Klammern stehen. Was jedoch ist, wenn unser Text eckige Klammern enthält, wir aber nicht wollen, das diese als Ausdruck erkannt werden? z. B. wollen wir diesen Text einfügen:

a[1] := 10

FastReport versteht die [1] als Ausdruck und macht folgendes:

a1 := 10

was uns selbstverständlich nicht zufrieden stellt. Eine der Möglichkeiten das zu vermeiden ist, die Ausdruckerkennung zu deaktivieren. Einfach die Eigenschaft AllowExpressions im Inspektor oder "Ausdrücke erlauben" im Kontextmenü ausschalten. Dadurch werden Ausdrücke im Text ignoriert.

Manchmal braucht man jedoch Ausdrücke und Text in eckigen Klammern z.B.:

a[1] := [myVar]

Das Deaktivieren der Ausdrücke erlaubt das Einfügen der eckigen Klammern, verhindert jedoch die Bearbeitung der Ausdrücke. In diesem Fall erlaubt FastReport andere Symbole um Ausdrücke zu kennzeichnen. Diese Eigenschaft besitzt das Objekt ExpressionDelimiters, welches als Standardeinstellung "[,]" hat. In unseren Fall ersetzen wir nun die Klammer durch:

a[1] := <myVar>

Die Eigenschaft ExpressionDelimiters muss dazu auf "<,>" umgestellt werden. Das Komma trennt in dabei das öffnende Symbol von dem schließenden. Es gibt jedoch eine Beschränkung. Man darf nicht für das Öffnen und das Schließen der Klammern dasselbe Symbol verwenden. z.B. "%,%" . Man kann mehrere Symbole einfügen z.B. "<%,%>". Dies würde wie folgt aussehen:

a[1] := <%myVar%>


Verwendung der Bänder

Bänder werden für die logische Ordnung der Objekte verwendet. Indem wir das Band "PageHeader" verwenden, teilen wir FastReport mit, dass dieses Objekt auf jedem Blatt des Reports erscheinen soll. Analog dazu führt des Verwenden des Bandes "Fuß" dazu, dass dieser auf jeder Seite des Reports unten erscheint mit allen Objekten die darauf liegen. Machen wir ein einfaches Beispiel, indem wir einen Report erstellen, der die Überschrift "Hello!" oben, Daten oben rechts und Seitenzahl unten rechts enthält.

Öffnen Sie den Designer und klicken auf "Neuer Report" in der Symbolleiste. Es erscheint ein Report der schon 3 Bänder enthält: "ReportTitle", "MasterData" und "PageFooter". Entfernen wir erstmal das Band "MasterData" indem wir es anklicken und die Taste Delete verwenden oder über das Kontextmenü. Jetzt fügen wir ein neues Band "PageHeader" hinzu. Dazu drücken wir in der Objektsymbolleiste den Button "Band einfügen" und wählen aus der Liste "Seitenkopf" aus. Es wird ein neues Band eingefügt. Die vorhandenen Bänder werden nach unten verschoben, denn der FastReport Designer verteilt die Bänder automatisch so, dass sich oben die Bänder mit den Überschriften, danach die Datenbänder und darunter die "Fußbänder" befinden.

Jetzt verteilen wir Objekte. In das Band "Header" fügen wir das Objekt "Systemtext" ein und in dessen Editor wählen wir die Systemvariable "[DATE]" aus (zur Erinnerung, man kann das Datum auch mithilfe von gewöhnlichem Text einfügen, wenn man in dessen Editor den Text "[DATE]" einfügt). In das Band "ReportTitle" fügen wir das Objekt "Text" ein, der "Hello!" enthält. Das Band "PageFooter" enthält bereits jetzt schon das von uns gewünschte Objekt mit der Seitenzahl.

Wenn wir den Report nun starten, sehen wir, dass die Objekte die gewünschte Anordnung haben.

Also für die richtige Anordnung der Objekte sind Bänder verantwortlich. Abhängig von der Bandart kann sich das Objekt oben oder unten auf der Seite, auf der ersten oder letzten Seite befinden. Die Bänder, welche am meisten verwendet werden, arbeiten auf folgende Weise:

- Band "Seitenkopf" erscheint oben auf jeder Seite;

- Band "Seitenfuß" erscheint unten auf jeder Seite;

- Band "ReportTitle" erscheint auf der ersten Seite oben, vor dem Band "Seitenkopf" (dies kann mit der Eigenschaft TitleBeforeHeader umgestellt werden);

- Band "Reportzusammenfassung" erscheint auf der letzten Seite des Reports;


Datenbänder

Jetzt kommen wir zum interessantesten Teil, der Möglichkeit die Daten aus DB Tabellen und Anfragen einzufügen. Was ist eine Tabelle in diesem Fall? Es ist eine von vornherein unbekannte Anzahl von Zeilen und jede enthält eine bestimmte Anzahl von Spalten (Feldern). Für das Drucken dieser Art von Informationen nutzt FastReport besondere Datenbänder. Diese Bänder haben den Namen "Daten xxx Ebene".Um die komplette Tabelle oder nur bestimmte Felder darzustellen müssen Sie:

- Einfügen der Datenbänder in den Report;

- Verknüpfung dieser mit einer Tabelle;

- die Objekte "Text" einfügen mit den Feldern, die wir verwenden möchten;

Bei der Reporterstellung wird FastReport das Band so oft verwenden, wie es Einträge in unserer Tabelle gibt. Sollte der Platz auf der Seite nicht ausreichen, so werden neue Seiten erzeugt.


Daten/Tabellen für den Report

Wählen Sie im Designer von den Punkt "Report|Daten..." aus und kennzeichnen die gewünschten Daten.

screenshot - 18.05.2009 , 15_30_20


Report "Kundenliste"

Report &quot;Kundenliste&quot;

 Top Letztes Next

Unser zweiter Report wird wesentlich komplexer als der erste, denn er wird Daten aus der Tabelle DB enthalten und zwar die Kundenliste einer Firma.

Gehen wir in den Designer und klicken den Button "Neuer Report". FastReport erstellt nun automatisch eine leere Schablone mit den Bändern "ReportTitle", "MasterData" und "PageFooter". Um die Tabelle in FastReport sehen zu können, muss man deren Nutzung erlauben. Wir wählen den Menüpunkt "Report|Daten..." aus und markieren unsere Tabelle (diese hat nun als einzige in der Liste ein Häkchen) Danach schließen wir das Dialogfenster, die Tabelle und deren Felder werden nun im Fenster "Daten" angezeigt.

Beginnen wir mit dem Erstellen des Reports. In das Band "ReportTitle" legen wir das Objekt "Text" mit dem Text "Kundenliste" ein. Das Band "MasterData" verknüpfen wir mit unserer Datenquelle. Dies kann man auf drei Arten machen:

- Doppelklick auf das Band;

- den Punkt "Bearbeiten..." im Kontextmenü auswählen;

- auf die Eigenschaft DataSet im Inspektor klicken.

Nun fügen wir vier Objekte in das Band ein. Dies sind die Kundennummer, Kundenname, Telefon und Fax. Wir machen das auf verschiedene Arten, um die umfangreichen Möglichkeiten des Designers zu demonstrieren. Das erste Objekt "Text" legen wir auf das Band und geben dort den Text "[a."id"]" ein. Das ist die umständlichste Eingabeweise, da man alles per Hand eingeben muss und deshalb schnell Fehler unterlaufen können. Um die Eingabe zu erleichtern, nutzen wir den Ausdruckseditor, dieser befindet sich in der Symbolleiste des Texteditors. Um das Feld einzufügen, klicken wir auf den Ausdruckseditor-Button und führen einen Doppelklick auf das gewünschte Element im sich öffnenden Dialog aus. Wir schließen den Dialog mit der Taste OK und sehen, dass das Feld in den Text eingefügt worden ist.

Die zweite Möglichkeit ein DB-Feld einzufügen ist die Nutzung des Objektinspektors. Legen wir auf das Band das zweite Objekt, im Editor schreiben wir nichts. Im Inspektor stellen wir die Eigenschaften ein:

DataSet = a

DataField = companyname

Da beide Eigenschaften die Liste darstellen, suchen wir uns einfach das gewünschte Feld mit der Maus aus.

Die dritte Eigenschaft: Drag&Drop des gewünschten Feldes aus dem Fenster "Daten" in den Report. Dies ist die einfachste Vorgehensweise. Halten Sie das Feld "phone1" fest und ziehen es auf das Band. Das einzige worauf man hier achten sollte, wäre es die Option "Header erstellen" im unteren Teil des Fensters "Daten" zu deaktivieren. Sonst wird zusätzlich auch noch ein Feld, in diesem Fall mit der Bezeichnung, eingefügt.

Jetzt zur vierten Möglichkeit. Fügen Sie ein leeres Objekt "Text" in das Band ein und bewegen die Maus zum Objekt. Auf der rechten Seite erkennen Sie nun einen Button mit einem Pfeil nach unten. Dieser öffnet eine Drop-Down-Liste mit den Feldern der Datenbank. Hier wählen wir das Feld "Fax" aus. Diese Möglichkeit steht zur Verfügung, wenn das Band mit den Daten verknüpft ist. Dies wird in den Optionen des Designers über das Menü "Ansicht|Optionen...", "Drop-Down Feldliste anzeigen" gesteuert.

Der Report ist nun fertig:

Schauen wir uns die Vorschau mal an:


Anzeigen der DB-Felder mithilfe des Objektes "Text"

Anzeigen der DB-Felder mithilfe des Objektes &quot;Text&quot;

 Top Letztes Next

Wie wir gesehen haben, ist das Objekt "Text" in der Lage statischen Text und Ausdrücke anzuzeigen, aber auch Daten einer Datenbank. Wobei dies auf zwei Arten geschehen kann, ob durch eine Verknüpfung zur DB im Text oder durch Verknüpfung des Objekts zum gewünschtem Feld mithilfe der Eigenschaften DataSet und DataField. Die erste Möglichkeit ist praktisch, weil diese es erlaubt im selben Objekt sowohl den Ausdruck als auch eine Erklärung dazu einzufügen z.B.

Vorname: [a."name"]

Wie man sieht, wird für Verknüpfungen zur DB eine spezielle Syntax verwendet: Datensetname."Feldname". Im Namen des Datensets können, wie auch im Feldnamen, Leerzeichen enthalten sein. Ein Leerzeichen zwischen einem Punkt und der Klammer ist nicht erlaubt.

In den Text des Objektes kann man nicht nur eine Verknüpfung zum Feld machen. Man kann auch Berechnungen mit diesem Feld erstellen.

Länge in cm: [<a."Length_in"> * 2.54]

Beachten Sie die Verwendung der eckigen und spitzen Klammern. Erinnern wir uns, dass die eckigen Klammern für Ausdrücke verwendet werden, falls nichts anderes bestimmt worden ist. Anstatt dieser Klammern kann auch ein beliebiges Paar anderer Symbole verwendet werden (s.h. Anzeige von Ausdrücken mithilfe des Objektes "Text"). Spitze Klammern werden innerhalb der Ausdrücke benutzt, um Variablen bei FastReport und DB-Felder darzustellen. Logischerweise sollten wir schreiben

Vorname: [<a."name">]

anstatt

Vorname: [a."name"]

Es stimmen jedoch beide Formen, weil FastReport das Weglassen der spitzen Klammern zulässt, wenn der Ausdruck nur eine Variable oder ein DB-Feld enthält. Sollten im Ausdruck jedoch mehrere Glieder enthalten sein, sind die Klammern Pflicht:

Länge in cm: [<a."Length_in"> * 2.54]


Variablen

Indem man die im Report enthaltenen Variablen benutzt, kann man die Bezeichnungen der Felder verändern, aber auch andere Ausdrücke. Um mit Variablen arbeiten zu können, wählen Sie in der Menüleiste "Report|Variablen…" oder klicken auf den Button "Variablen" auf der Symbolleiste.

Die Liste der Variablen besitzt in FastReport eine zweiebenen Struktur . Die erste Ebene sind Kategorien, die zweite die Variablen selbst. Die Einteilung in Kategorien wurde für den Fall vorgenommen, dass die Liste der Variablen sehr groß ist. In der Liste muss mindestens eine Kategorie enthalten sein, sprich die Variablen können nicht auf der obersten Ebene sein. Außerdem werden Kategorien nur zur logischen Ordnung der Variablen verwendet und kommen nicht in den Report. Deshalb achten Sie bei der Vergabe der Namen darauf, das diese einzigartig sind. Zwei gleiche Variablen in verschiedenen Kategorien sind nicht möglich.

Demonstrieren wir die Verwendung der Variablen am Beispiel. Gehen wir davon aus, das es zwei Datenquellen gibt. Die Erste: Kunden mit den Feldern "CustNo" è "Name" und zweite Aufträge mit "OrderNo" und "Date". Wir können mit den Feldern folgende Liste der Variablen erstellen.

Kunden

Kundennummer

Kundenname

Aufträge

Auftragsnummer

Auftragsdatum

"Kunden" und "Aufträge" sind zwei Kategorien. Öffnen wir nun den Variablen-Editor und erstellen mithilfe der Buttons "Kategorie", "Variable" und "Bearbeiten" die benötigte Struktur. Um den DB-Feldern die Variablen zuzuordnen, wählen Sie eine Variable auf der rechten Seite aus und klicken doppelt darauf. Der Ausdruck erscheint nun unten im Fenster, hier kann der Ausdruck auch manuell bearbeitet werden. Die Kategorien müssen nicht verbunden werden.

screenshot - 18.05.2009 , 15_41_29

Wenn die Liste der Variablen fertig ist, schließen wir das Fenster. Jetzt müssen die Variablen in den Report. Im Gegensatz zu dem Einfügen der DB-Felder, gibt es hier wesentlich weniger Varianten. Entweder wir fügen die Variablen manuell ein, indem wir den Text [Kundennummer] eingeben, oder wir ziehen die Variable aus dem Fenster "Daten" auf den gewünschten Platz im Report. Im zweiten Fall muss man auf das Tab "Variablen" umschalten.


Objekt "Grafik"

Objekt &quot;Grafik&quot;

 Top Letztes Next

Das nächste Objekt welches wir betrachten möchten, ist das Objekt "Grafik". Es wird ebenfalls oft in Reporten verwendet. Damit können Sie z.B. das Firmenlogo, ein Mitarbeiterfoto usw. in den Report einfügen. Das Objekt ist in der Lage die Formate BMP, JPEG, ICO, WMF, EMF darzustellen.

Lassen Sie uns die Möglichkeiten des Objekts betrachten. Erstellen Sie einen leeren Report und fügen auf eine freie Fläche das Objekt "Grafik" ein. Im Editor des Objekts (öffnet automatisch, falls nicht führen Sie einen Doppelklick auf das Objekt aus) kann man nun eine Grafik einfügen oder entfernen. Laden Sie eine beliebige Grafik hoch und drücken auf OK.

Im Kontextmenü des Objekts sehen wir folgende Optionen (in Klammern die Bezeichnungen des Objektinspektors):

- Größe automatisch (AutoSize)

- Dehnen (Stretched) standardmäßig aktiviert

- Zentrieren (Center)

- Seitenverhältnis behalten (KeepAspectRatio) - standardmäßig aktiviert

Wenn wir die Option "Größe automatisch" aktivieren, nimmt das Objekt die Größe der Grafik an. Diese Möglichkeit ist sinnvoll, wenn man Grafiken verschiedener Größen darstellen möchte. Standardmäßig ist diese Option abgeschaltet.

Die Option "Dehnen" ist standardmäßig aktiviert und dehnt die enthaltene Grafik im Objekt. Wenn Sie die Maße des Objekts mit der Maus verändern, wird sich die Größe der Grafik der des Objekts anpassen. Die Deaktivierung dieser Option führt dazu, dass die Grafik ihre ursprünglichen Maße behält. Der Unterschied zu "Größe automatisch" ist der, dass die Größe des Objektes sich nicht an die der Grafik anpasst, sprich das Objekt kann kleiner oder größer als die Grafik sein.

Die Option "Zentrieren" zentriert die Grafik im Objekt.

Die Option "Seitenverhältnis behalten" ist standardmäßig aktiviert und hat eine sehr nützliche Funktion: sie verhindert, dass sich die Grafik beim Ändern der Größe des Objekts, verzerrt. Diese Option arbeitet nur in Verbindung mit der Option "Dehnen". Bei jedem ändern der Größe bleibt deshalb der Kreis rund und wird nicht oval. Hinzu kommt, dass die gedehnte Grafik nicht das gesamte Objekt einnimmt, sondern nur den Teil, der benötigt wird, um die Grafik in den richtigen Proportionen darzustellen. Deaktiviert man diese Option wird die Grafik auf die gesamte Objektgröße gedehnt und falls die Maße des Objekts nicht denen der Grafik entsprechen, wird diese verzerrt dargestellt.

Eine weitere nützliche Eigenschaft ist FileLink, welche über den Inspektor zu erreichen ist. Hier kann man den Dateinamen angeben z.B. c:\picture.bmp, die Grafik wird dann bei Starten des Reports hochgeladen. Ebenso kann man dort eine Variable einsetzen z.B. [picture_file]. Beim Starten des Reports erkennt FastReport diese Variable (es muss der Dateiname sein) und lädt die Grafik hoch.


Report mit Grafiken

Das Objekt "Grafik" kann, wie viele andere Objekte in FastReport auch, Daten aus Datenbanken darstellen. Die Verknüpfung des Objektes zum benötigten DB-Feld erfolgt mithilfe der Eigenschaften DataSet und DataField im Objektinspektor. Im Gegensatz zum Objekt "Text" ist dies die einzige Möglichkeit Verknüpfungen herzustellen.

Demonstrieren wir das oben erwähnte anhand eines Beispiels. Starten wir einen neuen Report und verknüpfen die Tabelle "a" udn "Logo" mit dem Report im Fenster "Report|Daten..."

Starten wir mit der Erstellung der Form des Reports. Auf das Band "Reporttitel" legen wir das Objekt "Text" mit dem Text "Fische" an. Das Band "Masterdata" verknüpfen wir mit der Datenquelle (Doppelklick auf das Band und wählen "a" aus der Liste). Damit die Grafik reinpasst, vergrößern wir die Höhe des Bandes auf 3 cm. Auf das Band legen wir das Objekt Text und verknüpfen es mit dem Feld "CommonName" mit einer der oben erwähnten Möglichkeiten. Daneben legen wir das Objekt "Grafik" und verknüpfen dieses mit dem Feld "Grafik". Hierfür stellen wir im Objektinspektor die Eigenschaften ein:

DataSet = Logo

DataField = 'photoblob'

Zur Erinnerung, beide Eigenschaften sind vom Typ "Liste", deswegen kann man die Werte mit der Maus aussuchen. Damit die Grafik reinpasst, verändern wir die Maßstäbe auf 4 x 2.5 cm.

Der Report ist nun fertig (s.h. unten):


Multi-Text Anzeige

Kehren wir nun zu unserem Beispiel mit dem Logo zurück. In der Tabelle "a" ist ein Feld "notes", welches eine detaillierte Beschreibung für jeden Adresse enthält. Fügen wir dieses Feld nun in unseren Report ein.

Auf den ersten Blick ist alles recht einfach. Wir fügen dem Band mit den Daten das Objekt "Text" hinzu, verknüpfen dieses mit dem Feld und stellen die Maße des Objektes auf - 8 x 2.5. Wir starten den Report und sehen, dass das Ergebnis nicht dem entspricht, was wir erwartet haben:

FastReport hat jedoch nur die ihm gegebenen Anweisungen befolgt. Das Feld "Notes" beinhaltet Text, dessen Größe variabel ist. Unser Objekt "Text", der die Informationen des Feldes anzeigt, besitzt jedoch eine feste Größe. Deswegen passen nicht alle Zeilen in das Objekt und werden nicht vollständig angezeigt. Was könnte man jetzt machen?

Man kann selbstverständlich die Größe des Objektes oder die der Schrift verändern. Dies jedoch würde zur Platzverschwendung auf dem Blatt führen, weil manche Fische eine lange Beschreibung haben und manche nur eine kurze. FastReport besitzt für diesen Fall Möglichkeiten dieses Problem zu lösen.

Die Rede geht über die Eigenschaften des Bandes, die eigene Größe den enthaltenen Objekten anzupassen. Hierfür muss die Eigenschaft "Dehnen" aktiviert werden. Dies ist jedoch nicht alles. Ein Objekt mit viel Text sollte ebenfalls in der Lage sein sich zu dehnen, das Objekt "Text" kann das.

Das Objekt kann automatisch seine Höhe und Breite anpassen, um den gesamten enthaltenen Text aufnehmen zu können. Hierfür sind die Eigenschaften "Breite automatisch" (AutoWidth) und "Dehnen" (StretchMode) da. Die Eigenschaft "Breite automatisch" wählt die Breite des Objektes so aus, dass alle Zeilen reinpassen, ohne das einzelne Wörter übertragen werden müssen. Dies ist hilfreich wenn das Objekt nur einen einzelne Texteil enthält. Die Eigenschaft "Dehnen" passt die Höhe des Objektes an den gesamten Text an. Die Breite wird nicht verändert. Diese Eigenschaft besitzt mehrere Modi, welche im Objektinspektor ausgewählt werden:

smDontStretch Objekt nicht dehnen, Standardeinstellung

smActualHeight Objekt dehnen, um den gesamten Text aufnehmen zu können

smMaxHeight Objekt dehnen, sodass seine unterste Grenze mit der des Bandes übereinstimmt. Dies werden wir später eingehender behandeln.

Jetzt interessiert uns die Eigenschaft "Dehnen" des Objektes "Text". Aktivieren Sie es im Kontextmenü oder stellen Sie die Eigenschaft StretchMode = smActualHeight im Inspektor ein. Ebenfalls aktivieren Sie "Dehnen" beim Band. Wenn der Report nun gestartet wird, arbeitet alles korrekt.

Wie wir sehen, füllt FastReport beim Erstellen des Reports die Objekte mit Daten, dehnt die Objekte mit der Option "Dehnen" und wählt auch die Höhe so aus, dass alle Objekte reinpassen. Ist die Option "Dehnen" des Bandes deaktiviert, wird die Höhe des Bandes nicht angepasst und das Band behält die im Designer gewählte Höhe. Wenn wir versuchen diese Option zu deaktivieren, sehen wir das Objekte mit einem langen Text trotzdem gedehnt werden, die Bänder jedoch nicht. Dies führt zu zu Textüberlagerung, da die Bänder hintereinander liegen.


Daten trennen

Betrachten wir eine Besonderheit des Reports mit den Fischen. Manche Seiten haben am Ende viel freien Platz. Wieso? Wenn der Report erstellt wird, füllt der Kern von FastReport die leere Seite mit Bändern. Nach jedem Band verlagert sich die aktuelle Position nach unten. Stellt FastReport nun fest, dass der Platz für das nächste Band nicht ausreicht (dessen Höhe ist größer, als die Höhe des restlichen Platzes auf der Seite), dann wird eine neue Seite gestartet. Die Bänder werden auf dieser fortgeführt und zwar so lange wie es Einträge in den Daten gibt.

Unser Report enthält in diesem Fall ein Objekt mit viel Text, deswegen ist die Anzahl der Bänder hoch. Falls nun das Band groß ist und nicht mehr auf diese Seite passt, wird es auf die nächste Seite übertragen. Es bleibt nun ungenutzter Platz auf der Seite s.h. folgende Grafik:

Um Platz zu sparren, nutzen wir die Möglichkeit den Inhalt der Bänder aufzuteilen. Dazu aktivieren wir die Option "Aufteilung erlauben" (AllowSplit) im Band "MasterData". Man sieht das der freie Platz weniger geworden ist.

Wie arbeitet die Aufteilung des Bandes? In FastReport gibt es mehrere Objekte, die diese Möglichkeit unterstützen und zwar "Text", "Rahmen" und RichEdit". Diese können "getrennt" werden, andere Objekte nicht. Wenn FastReport Objekte aufteilen will, geht es wie folgt vor:

- zeigt die Objekte an die nicht aufteilbar sind und ganz auf den freien Platz passen

- zeigt teilweise zerlegbare Objekte an (Text wird so angezeigt, das alle Zeilen in das Objekt passen);

- erstellt eine neue Seite und zeigt weiter Objekte an;

- wenn ein Objekt nicht zerlegt werden kann, wird es auf die folgende Seite übertragen, wobei die enthaltenen Objekte verlagert werden;

- der Prozess wird solange fortgeführt bis alle Objekte des Bandes angezeigt werden.

Der Algorithmus des Zerlegens wird deutlich, wenn man die folgende Grafik betrachtet:

Man muss anmerken, dass der Algorithmus nicht 100-prozentige Qualität des erhaltenen Reports garantiert. Deshalb sollten Sie diese Option vorsichtig verwenden. Sollten die Objekte auf dem Band auf eine komplizierte Weise angeordnet sein und hätten dazu noch verschiedene Schriftgrößen, könnte folgendes passieren:


Textumfluss bei Objekten

In manchen Fällen ist es bei der Reporterstellung notwendig, den Text um Objekte (oft Grafiken) fließen zu lassen. Hier eine Demonstration anhand dem Beispiel mit den Fischen.

Fügen wir in den Report ein Objekt "Text" ein (rot umrandet auf der Grafik) und verteilen die Objekte auf folgende Weise:

Beim Objekt Bio. "Notes" deaktivieren wir die Option "Dehnen, bei unteren Objekt aktivieren wir diese. Damit der Text aus dem Objekt Bio."Notes" in das untere Objekt rüberfliest, muss man beim Objekt Bio."Notes" die Eigenschaft FlowTo einstellen. Diese Eigenschaft ist Objektinspektor enthalten und ist eine Drop-Down-Liste. Aus dieser Liste wählt man nun den Namen des unteren Objekts. Das Ergebnis sieht wie folgt aus:

Bei der Erstellung des Reports wird, wenn der Text nicht komplett ins obere Objekt passt, der Rest des Textes ins untere übertragen. Da die Objekte um die Grafik angeordnet sind, wird der Text um die Grafik fließen.

Achtung: um korrekt funktionieren zu können, muss das Hauptobjekt vor dem verlinkten eingefügt werden! Wenn Ihr Report nicht richtig funktioniert, markieren Sie das verlinkte Objekt und übertragen es nach vorne mit dem Befehl "Bearbeiten|Nach vorne setzen".


Datendruck in Form einer Tabelle

Oft ist es notwendig den Report in Form einer Tabelle mit Umrandung darzustellen. Ein Beispiel hierfür ist die Preisliste. Um einen solchen Report in FastReport zu erstellen, muss man lediglich die Umrandung der Objekte auf dem Band "MasterData" einschalten. Betrachten wir ein paar Beispiele am einen Report mit Text.

Erstellen wir einen Report mit folgendem Aussehen:

Legen Sie die Objekte auf dem Band Seite an Seite und verkleineren die Höhe des Bandes auf ein Minimum.

Die erste und einfachste Tabellenart ist die, mit einem vollständigen Rahmen. Dazu müssen bei jedem Objekt alle Rahmenlinien aktiviert werden.

Die nächste Art der Umrandung, sind nur horizontale oder vertikale Linien. Man aktiviert dazu die benötigten Linien.

Um die äußere Umrandung der Tabelle zu machen, muss man leicht das Erscheinungsbild des Reports ändern:

Wie man sieht, haben wir zwei Objekte Text" hinzugefügt und haben die äußeren Rahmenlinien aktiviert. Im Endeffekt wird unser Report wie folgt aussehen:

Alle oben erwähnten Beispiele enthielten Bänder mit fixen Größen. Wie soll man jedoch eine Tabelle darstellen, in der die Bänder gedehnt werden können? Hier ein Beispiel dazu. Fügen wir ein neues Feld in unseren Report ein und zwar den langen Text aus Bio.Notes. Wie wir bereits wissen, muss man die Eigenschaft "Dehnen" bei dem Objekt und dem Band aktivieren. In diesem Fall wird die Höhe des Bandes abhängig sein von der Menge des Textes im Objekt "Text". Wir erhalten folgenden Report:

Es ist nicht genau das was wir wollten. Besser wäre es, wenn die Rahmenlinien der benachbarten Objekte sich ebenfalls strecken würden. FastReport kann auch dieses Problem lösen. Um solche Reporteerstellen zu können, muss bei den Objekten, die gedehnt werden sollen, die Eigenschaft "Auf Maximalhöhe dehnen" (oder StretchMode = smMaxHeight im Objektinspektor) aktiviert werden. Dabei berechnet der Kern von FastReport die Maximalhöhe des Bandes und zieht dann die Objekte, mit der aktivierten Eigenschaft, bis zum unteren Rand des Bandes. Da auch der Rahmen des Objektes gezogen wird, sieht der Report danach wie folgt aus:


Etikettendruck

Im Gegensatz zu Tabellenreporten, liegen die Daten im Reporten des Typs "Etiketten" untereinander. Betrachten wir ein Beispiel solch eines Reports. Dieser enthält die Daten der Fische (s.h. Beispiel oben) in Form von Etiketten. Der Report hat folgende Struktur:

Wenn wir den Report starten, erhalten wir folgendes:

Wie wir sehen, gibt es auf der rechten Seite noch eine Menge ungenutzten Platzes. Um das Blatt komplett zu füllen, kann man bei den Seiteneinstellungen die Spaltenanzahl angeben, die die Daten anzeigen sollen. Hierfür machen Sie einen Doppelklick auf eine leere Stelle im Blatt oder öffnen Sie den Menüpunkt "Datei|Seiteneinstellungen..."

Hier geben Sie die Spaltenanzahl, die Breite und die Position jeder Spalte an. In unserem Fall reichen 2 Spalten aus, die restlichen Einstellungen wird FastReport automatisch einstellen. Die Begrenzungen der Spalten werden durch eine dünne, vertikale Linie angezeigt:

Das Erstellen des Reports wird auf folgende Weise durchgeführt. FastReport wird das Band "Masterdata" solange ausführen, solange es freien Platz auf der Seite gibt. Dann wird nicht wie sonst eine neue Seite erstellt, sondern eine neue Spalte auf dieser Seite und das Band wird dort oben fortgeführt. Jetzt werden alle Objekte an die Spaltebreite angepasst. Dies geschieht solange, bis die angegeben Anzahl der Spalten erreicht ist, dann wird eine neue Seite erstellt und FastReport beginnt wieder mit der Anzeige der Daten ab der ersten Spalte.

Unser Report mit den zwei Spalten sieht dann so aus:

Es gibt eine weitere Möglichkeit die Spaltenanzahl anzugeben, dies ist die Eigenschaft Columns bei alle Datenbändern. Hier kann man die Spaltenanzahl des einzelnen Bandes eingeben und nicht für die ganze Seite, wie im folgenden Beispiel. Die Daten hier werden nicht "von oben nach unten und dann von links nach rechts" angezeigt, sondern von "von links nach rechts und dann von oben nach unten"

In unserem Beispiel deaktivieren wir die Spalten der Seite (die Anzahl auf 1) und stellen 2 bei der Eigenschaft Columns des Bandes ein. FastReport zeigt mit einer gestrichelten Linie die Spaltengrenzen an. Durch ändern der Eigenschaft ColumnWidth (Breite der Spalte) erhalten wir die benötigten Maße:

Ein auf diese Weise erstellter Bericht unterscheidet sich von dem vorherigen dadurch, dass die Daten "von links nach rechts und dann erst von oben nach unten" angezeigt werden.


Child-Bänder

Betrachten wir den Fall, dass eine Zeile im Report des Types "Etikette" eine variable Größe besitzt. Um diese Situation in unserem Beispiel zu simulieren, verkleinern wir die Größe des Objektes Bio."Common Name" auf 2,5 cm und aktivieren wir die Option "Dehnen". Ebenfalls aktivieren wir diese Option bei dem Band "MasterData". Um das Prinzip des Dehnens besser darstellen zu können, aktivieren wir alle Rahmenlinien. Wir erhalten folgenden Report:

Wir sehen, dass im ersten Fall das Objekt einen langen Text enthält und deshalb auf zwei Zeilen verteilt wurde. Das darunter liegende Objekt, welches an das Feld Bio."Length (cm)" gebunden ist, wurde nach unten verlagert. Das geschah, weil alle Objekte standardmäßig die Eigenschaft "Verschieben" (ShiftMode = smAlways im Objektdesigner) aktiviert haben. Solche Objekte verschieben sich nach unten, wenn über ihnen ein dehnbares Objekt ist (Objekt "Text" mit der aktivierten Eigenschaft "Dehnen"). Die Höhe, um welche das Objekt verschoben wird, ist abhängig von der Stärke der Dehnung des oberen Objektes.

In unserem Fall ist dies jedoch nicht annehmbar, da das Objekt Bio."Length (cm)" ebenfalls verschoben werden muss. In FastReport gibt es ein spezielles Band hierfür, das "Child-Band". Dieses wird an das Hauptband angefügt und immer nach diesem ausgeführt. Machen wir das in unserem Report:

Um das Band "MasterData" mit dem "Child-Band" zu verbinden, stellen wir im Objektinspektor die Eigenschaft Child = Child1 ein. Jetzt wird beim Drucken immer ein "Child-Band" an das Hauptband angefügt:

Wie man jetzt sieht, wird die Überschrift dort angezeigt, wo sie hingehört. Um den Übertrag des "Child-Bandes" auf die folgende Seite zu verhindern (sprich die Trennung vom Hauptband), stellen Sie die Eigenschaft "Child zusammenhalten" (KeepChild im Objektinspektor) ein.


Verschieben von Objekten

Wir haben schon gesehen wie die Eigenschaft "Verschieben" funktioniert. Betrachten wir einen anderen Modus des Verschiebens: "Verschieben wenn Überlappung" (entspricht ShiftMode = smWhenOverlapped im Objektinspektor). Dieser führt dazu, dass das Objekt nur verschoben wird, wenn das obere Objekt beim Dehnen das darunter liegende überlappt. In der unteren Grafik werden drei Beispiele vorgestellt. Wie man sieht, wird das untere Objekt (mit aktivierter Option "Verschieben wenn Überlappung") nur im letzten Fall verschoben, wenn das obere Objekt viel Text enthält und dieser das untere Objekt überlagert.

Wenn man jedoch die Option "Verschieben" aktiviert, wird das untere Objekt auf jeden Fall verschoben:

In manchen Fällen erlaubt es eine komplizierte Logik der Darstellung der Objekte, insbesondere wenn ein Objekt über mehreren anderen liegt. Im nächsten Beispiel enthalten die beiden oberen Objekte einen dehnbaren Text und das untere Objekt hat die Eigenschaft "Verschieben wenn Überlappung" aktiviert. Unabhängig von der Menge des Textes in den oberen Objekten, wird das untere Objekt immer direkt an das Objekt angehängt, das den meisten Text enthält:

Wird "Verschieben" in dem unteren Objekt aktiviert, so wird dieses doppelt verschoben, da es sich unter zwei Objekten befindet und eine unnötige Lücke entsteht.


Report mit zwei Datenebenen (master-detail)

Bisher haben wir nur Reporte betrachtet, die nur ein Band "MasterData" (Daten 1. Ebene) enthielten. Dies erlaubte die Daten einer DB-Tabelle darzustellen. FastReport erlaubt jedoch die Darstellung von bis zu 6. Ebenen der Daten (es geht auch mehr indem man das Objekt "Unterreport", dazu jedoch später mehr). In der Regel sind Reporte auf 1-3 Ebenen beschränkt, selten mehr.

Betrachten wir die Erstellung eines 2. Ebenen Reports. Dieser soll die Daten der Tabellen Kunden und Aufträge enthalten. Die erste Tabelle enthält die Kundenliste, die zweite die Bestellungen der Kunden. Die Tabellen sehen wie folgt aus:

Kunden:

Kund.-Nr.Company

1221Kauai Dive Shoppe

1231Unisco

1351Sight Diver

Bestellungen:

Bestellnr.Kund.-Nr.Verkaufsdatum

1003135112.04.1988

1023122101.07.1988

1052135106.01.1989

1055135104.02.1989

1060123128.02.1989

1123122124.08.1993

Wie man sieht, enthält die zweite Tabelle die gesamte Liste aller Bestellungen, von allen Unternehmen. Um eine Liste mit Bestellungen zu erhalten, die nur ein Unternehmen gemacht hat, muss man aus der ersten Tabelle die gewünschte Kund.-Nr. auswählen. Der Report sieht nun wie folgt aus:

1221Kauai Dive Shoppe

1023 01.07.1988

1123 24.08.1993

1231Unisco

1060 28.02.1989

1351Sight Diver

1003 12.04.1988

1052 06.01.1989

1055 04.02.1989

Im Designer des Reports verknüpfen wir die Datenquellen im Fenster "Report|Daten..." und legen zwei Bänder auf die Seite "MasteData" ("Daten 1. Ebenen") und "DetailData" "Daten 2. Ebene":

Beachten Sie das Band "MasterData" dieser muss oben liegen! Wenn man ihn unter das Band "Daten 2. Ebene" setzt, wird FastReport dies beim Start des Reports melden.

Wenn wir den Report nun starten, sehen wir das die Bestellliste für jeden Kunden gleich ist und alle Einträge der Liste Bestellungen enthalten. Dies geschieht, weil wir den Listenfilter in der Tabelle Bestellungen eingestellt haben. Bei der Komponente Table2 stellen wir die Eigenschaft MasterSource = DataSource1 ein, dadurch stellen wir die Verbindung "master-detail" her. Jetzt muss man die Bedingung des Filters festlegen. Hierfür rufen Sie den Editor der Eigenschaft MasterFields der Komponente Table2 auf:

Wir müssen die beiden Felder CustNo der beiden Quellen verknüpfen. Wählen Sie die beiden(?) in der Liste oben aus und klicken Sie auf "Add". Die verknüpften Felder erscheinen im unteren Fenster. Sie können das Fenster jetzt schließen indem Sie auf OK klicken.

Beim Start des Reports macht FastReport folgendes. Nach Auswahl eines Datensatzes aus der Master-Tabelle (Kunde), filtert es die Detail-Tabelle (Orders). Danach werden nur Datensätze angezeigt, die die Bedingung Orders.CustNo = Customer.CustNo erfüllen (sprich für jeden Kunden werden nur seine Bestellungen angezeigt):

Auf diese Weise kann man Reporte mit bis zu 6. Datenebenen anlegen.


Kopf- und Fußzeilen der Datenbänder

Datenbänder können eine Kopf- und Fußzeile besitzen. Die Kopfzeile wird vor dem Datenband ausgeführt, die Fußzeile nach dem letzten Datenband. Hier ein Beispiel der Funktionsweise bei einem einfachen Report:

Betrachten wir die Anordnung der Kopf- und Fußzeilen bei einem "Master-Detail" Report:

Wie man sieht, wird die Kopfzeile vor jedem Datenband ausgeführt. Für das Band "Daten 1. Ebene" wird das einmal am Anfang des Reports gemacht. Für das Band "Daten 2. Ebene" jedesmal beim Erstellen der fogenden Bandgruppe, die mit dem Band "Daten 1. Ebene" verknüpft ist. Die Fußzeile wird nach dem letzten Band ausgeführt.

Durch Nutzung der Eigenschaft FooterAfterEach (im Kontextmenü "Fuß nach jeder Zeile") kann man die Fußzeile nach jeder Datenzeile ausführen. Dies ist nützlich bei Reporten des Typs "Master-Detail". Das folgende Beispiel mit der aktivierten Eigenschaft FooterAfterEach beim Band "Daten 1. Ebene" wird wie folgt aussehen:


Mehrseitige Reporte

FastReport ist in der Lage Reporte mit mehreren Seiten zu erstellen. Jede Seite kann eigene Maße, Ausrichtung, verschiedene Objekte und Bänder enthalten. Bei der Berichterstellung werden erst alle Bänder der ersten Seite ausgeführt, dann die der zweiten Seite usw.

Wenn wir einen neuen Report im Designer erstellen, enthält er standardmäßig eine Seite. Sie können eine neue Seite durch klicken auf den Button [image] auf der Symbolleiste "Standard" öffnen oder indem Sie auf "Datei|Neue Seite" gehen. Jetzt zieht man im Designer einen neuen Tab:

Das Auswählen ist einfach, man klickt auf den Tab der benötigten Seite. Man kann auch die Tabs per "Drag & Drop" verschieben und so die Anordnung der Seiten ändern. Will man eine Seite entfernen geht das über den Button [image] auf der Symbolleiste "Standard" oder über "Bearbeiten|Seite löschen". Ebenfalls kann man das Kontextmenü des Tabs, durch den Klick der rechten Maustaste, aufrufen:

Die Seitenanzahl im Report ist unbegrenzt. In der Regel werden zusätzliche Seiten für die Titelseite verwendet oder in komplexeren Reporten, die Daten vieler Quellen enthalten.

Betrachten wir ein einfaches Beispiel und erstellen eine Titelseite. Wir wählen einen Report mit nur einer Datenebene, wie wir sie am Anfang gemacht haben. Wir fügen eine neue Seite hinzu, die jetzt als zweite angezeigt wird. Um sie vor die erste Seite zu setzen, verschieben wir die zweite Seite per "Drag & Drop" vor die erste. Die Anordnung hat sich nun verändert. Jtzt gehen wir auf die erste Seite und fügen in die Mitte einen neues Objekt "Text" der "Unser Report" enthält. Der Report mit der Titelseite ist nun fertig:

Man muss eine Besonderheit der Mehrseitigen Reporte erwähnen. Aktiviert man auf der zweiten Seite die Option "Auf vorige Seite drucken" (die Eigenschaft PrintToPreviousPage im Objektinspektor), so werden die Objekte der zweiten Seite nicht auf eine neue Seite übertragen, sondern auf die vorhergehende.


Reporte ohne Nutzung von Datenbanken

Manchmal ist es notwendig statische Daten mehrmals auszuführen. Betrachten wir als Beispiel den Druck von Visitenkarten oder Postkarten. Dazu haben die Bänder die Eigenschaft RowCount und die Seite PageCount. Durch diese Eigenschaften kann man die Anzahl der Bänder/Seiten festlegen, die nicht mit Daten verknüpft sind.

Anhand der Grafiken kann man dies gut erkennen. Die Eigenschaft Rowcount des Bandes ist auf 14 gesetzt, dies führt dazu,dass das Band 14 mal ausgeführt wird.


Report mit Gruppen

Im vorherigen Beispiel haben wir einen zwei-ebenen Report erstellt, mit Daten aus zwei Tabellen. FastReport erlaubt die Erstellung eines analogen Reports auf Basis nur eines Datensatzes.

Hierfür ist es notwendig eine Anfrage mit SQL zu starten. Diese gibt uns die Daten beider Tabellen wieder, sortiert nach bestimmten Bedingungen. In unserem Fall die Übereinstimmungen der Felder CustNo in beiden Tabellen. Die SQL Abfrage kann folgenderweise aussehen:

select * from customer, orders

where orders.CustNo = customer.CustNo

orderby customer.CustNo

Die Zeile "order by" benötigt man zur Sortierung anhand von CustNo. Die Anfrage zeigt die Daten so an:

CustNoCompany…OrderNoSaleDate

1221 Kauai Dive Shoppe102301.07.1988

1221 Kauai Dive Shoppe112324.08.1993

1231Unisco106028.02.1989

1351Sight Diver100312.04.1988

1351Sight Diver105206.01.1989

1351Sight Diver105504.02.1989

Wie kann man mithilfe dieser Daten einen Mehrebenen Report erstellen? In FastReport gibt es dafür ein spezielles Band "Gruppenkopf". Beim Band wird eine Bedingung eingegeben (die Bedeutung des DB-Feldes oder ein Ausdruck) bei dessen Änderung das Band ausgeführt wird. Hier ein Beispiel.

Query1:

DatabaseName = 'DBDEMOS'

SQL =

select * from customer, orders

where orders.CustNo = customer.CustNo

order by customer.CustNo

Jetzt gehen wir in den Designer und verknüpfen unsere Datenquelle mit dem Report. Fügen wir nun zwei neue Bänder in den Report ein: "Gruppenkopf" und "Daten 1. Ebene". Im Editor des Bandes "Gruppenkopf" geben wir folgende Bedingung ein: ins Datenfeld Group.CustNo:

screenshot - 18.05.2009 , 16_06_50

Das Datenband veknüpfen wir mit der Datenquelle Group und ordnen die Objekte auf folgende weise an (beachten Sie das der "Gruppenkopf" über den Datenband sein muss):

Beim Starten erhalten wir folgenden Report:

Wie man sieht wird das Band "Gruppenkopf" nur in dem Fall ausgeführt, wenn das Feld, mit dem es verknüpft ist, den Wert ändert. Sonst wird das mit der Gruppe verknüpfte Datenband ausgeführt. Wenn man diesen Report mit dem Report "Master-Detail", den wir weiter oben erstellt haben, vergleicht, so sieht man, dass die Bestellnummern nicht aufsteigend sortiert sind. Dies kann man ändern, indem man die Anfrage in SQL ändert:

select * from customer, orders

where orders.CustNo = customer.CustNo

orderby customer.CustNo, orders.OrderNo

Auf die gleiche Weise kann man Reporte mit verschachtelten Gruppen konstruieren, wobei deren Anzahl nicht beschränkt ist. Auf diese Weise haben Reporte mit Gruppen gewisse Vorteile gegenüber den Reporten "Master-Detail":

- man benötigt nur eine Tabelle (Anfrage) für den Report;

- die Anzahl der Ebenen bei den Gruppierungen der Daten ist unbegrenzt;

- zusätzliche Möglichkeiten der Sortierung;

- optimalere Nutzung der Ressourcen der Datenbank (die Anfrage zeigt nur die Daten an, die man benötigt, ohne diese zu filtern).

Das einzig Negative ist, dass die Anfragen in SQL sein müssen. Wobei Grundkenntnisse in SQL in der Regel jeder besitzt, der auch mit Datenbanken arbeitet.


Weitere Besonderheiten der Gruppen

Sehen wir uns mal an, wie Gruppen auf die folgende Seite übertragen werden:

Beim blättern eines solchen Reports, ist es nicht immer klar, zu welchem Kunden die Bestellungen oben auf der zweiten Seite gehören. FastReport erlaubt die Anzeige des "Gruppenkopfs" (dieser enthält die Informationen des Kunden) auch auf dieser Seite. Dazu muss beim Band "Gruppenkopf" die Eigenschaft "Auf neuer Seite wiederholen" (ReprintOnNewPage im Objektinspektor) aktiviert sein. Der Report sieht nun so aus:

Es gibt eine weitere Möglichkeit das Trennen der Gruppe zu verhindern. Aktivieren Sie dafür die Eigenschaft des Gruppenkopfs "Zusammenhalten" (KeepTogether im Objektinspektor). Falls die Gruppe nun nicht ganz auf die Seite passt, so wird sie auf die nächste Seite übertragen. Siehe Beispiel:

Manche Seiten haben zwar dadurch noch freien Platz, so wird jedoch die Gruppe zusammengehalten.

Jetzt zu der Eigenschaft "Neue Seite" (StartNewPage). Diese erlaubt es dem Gruppenkopf, jede Gruppe auf einer separaten Seite darzustellen.. Dies verbraucht zwar viel Platz, ist aber manchmal notwendig.


Seitennummer zurücksetzen

Die Gruppe hat die Eigenschaft "Seitennummern zurücksetzen" (ResetPageNumbers im Kontextmenü), diese setzt die Seitenzahl nach dem Drucken zurück. Wozu braucht man das?

Gehen wir davon aus, dass wir einen Report erstellt haben der Gruppen enthält. Der Gruppenkopf enthält den Kundennamen, die Gruppe und die Bestellungen des Kunden. Der gedruckte Report soll nun dem Kunden übergeben werden, jeder erhält seine Seiten. Nun bekommt einer z. B. die Seiten 50, 51, 52 und möchte wissen, wo die restlichen Seiten geblieben sind? Um solche Situationen zu vermeiden, müssen die Seiten jedes Kunden einzeln nummeriert werden, d.h. innerhalb eines Reports wird jede Gruppe durchnummeriert.

Beachten Sie beim Einstellen der Eigenschaft ResetPageNumbers, dass man ebenfalls die Eigenschaft StartNewPage ("Neue Seite") aktivieren muss. Dadurch wird jede Gruppe auf einer separaten Seite gedruckt. Die Seitenzahl kann man mit den Variablen [Page], [TotalPages] des Objektes "Text" darstellen.


Drill-Down Gruppen

Der Gruppenkopf besitzt die Eigenschaft Drill-Down. Das Aktivieren dieser Eigenschaft macht die Gruppe interaktiv, d.h. dass die Gruppe im Vorschaufenster auf das Klicken mit der Maus reagiert. Dadurch kann man durch den Klick auf den Gruppenkopf die Gruppe öffnen (zeigt alle Einträge an), schließen und damit nur den Kopf anzeigen oder den Fuß anzeigen (wird über die Eigenschaft ShowFooterIfDrillDown eingestellt).

So sieht eine Gruppe mit geöffnetem Kopf aus:

Sie können angeben ob die Gruppen beim Starten des Reports geöffnet oder geschlossen sind. Standardmäßig sind sie geschlossen und werden über die Eigenschaft ExpandDrillDown gesteuert. Falls die Gruppen geöffnet sein sollen, so stellen Sie die Eigenschaft auf True. Genauso können alle Gruppen geöffnet und geschlossen werden. Man muss dazu die Punkte "Alle öffnen" oder "Alle schließen" aus dem Kontextmenü der Vorschau auswählen.


Zeilennummerierung

Betrachten wir nun in unserem Beispiel wie man die einzelnen Zeilen durchnummeriert. Wir fügen das Objekt "Text" ein mit der Systemvariablen [Line] auf beide Bänder (einfacher ist es, dies durch die "Drag & Drop" Methode aus dem Tab "Variablen" des Fenster "Datenbaum" zumachen)

Beim Starten sehen wir, dass beide Datenebenen durchnummeriert sind:

In manchen Reporten benötigen wir eine durchgehende Nummerierung. In unserem Beispiel nutzen wir deshalb die Variable Line#, anstatt Line auf dem Band und erhalten folgendes Ergebnis:


Aggregatfunktionen

In den meisten Fällen will man bei Gruppenreporten am Ende irgendeine zusammenfassende Information sehen z.B. die Summe, die Anzahl der Elemente usw. FastReport enthält für diesen Fall so genannte Aggregatfunktionen. Mit deren Hilfe kann man die Funktion zur Diagnose der Daten wählen. Die unten aufgeführte Liste enthält die enthaltenen Aggregatfunktionen:

Funktion

Beschreibung

SUM

Berechnet die Summe des Ausdrucks für die Datenmenge

MIN

Berechnet das Minimum des Ausdrucks für die Datenmenge

MAX

Berechnet das Maximum des Ausdrucks für die Datenmenge

AVG

Berechnet den Durchschnitt des Ausdrucks für die Datenmenge

COUNT

Zählt die Anzahl der Datensätze

Die Syntax aller Aggregatfunktionen (außer COUNT) sieht wie folgt aus (am Beispiel der Funktion SUM):

SUM(expression, band, flags)

SUM(expression, band)

SUM(expression)

Die Zuordnung der Parameter ist folgende:

expression Ausdruck, dessen Bedeutung bearbeitet werden muss

band der Name des Datenbandes, mit dem gearbeitet werden soll

flags ein Feld, welches folgende Bedeutungen haben kann und die Kombinationen dieser:

1 beachte unsichtbare Bänder

2 kumuliert den Wert

Wie man sieht, ist expression der einzige obligatorische Parameter, die restlichen sind optional. Es empfiehlt sich trotzdem das Parameter band zu nutzen um Fehler zu vermeiden.

Die Funktion COUNT hat folgende Syntax:

COUNT(band, flags)

COUNT(band)

Die Zuordnung der Parameter ist analog:

Es existiert eine Regel, die für alle Aggregatfunktionen Gültigkeit hat: die Funktion wird nur für das Datenband berechnet und wird nur in dem Fuß angezeigt (hierzu zählen: Fuß, Seitenfuß, Gruppenfuß, Spaltenfuß)

Wie funktionieren Aggregatfunktionen? Sehen wir uns ein Beispiel unseres Reports mit Gruppen an. Fügen wir neue Elemente ein:

Das Feld:" ItemsTotal" auf dem Datenband wird die Summe der Bestellung anzeigen. In den Gruppenfuß setzen wir das Objekt "Text" ein, dieses soll die Aggregatfunktion SUM enthalten. Es soll die Gesamtsumme aller Bestellungen des Kunden enthalten. Wenn wir den Report nun starten und mit einem Taschenrechner die Werte überprüfen, so werden wir sehen, das alles richtig funktioniert:

Also wie ist nun das Arbeitsprinzip der Aggregatfunktionen? Vor der Reporterstellung scannt FastReport den Inhalt der Objekte "Text" nach Aggregatfunktionen. Gefundene Funktionen werden den entsprechenden Datenbändern zugeordnet (hier im Beispiel wird die Funktion SUM mit dem Band MasterData1 verknüpft). Bei der Erstellung des Reports werden nun, sobald das Datenband auf dem Bildschirm erscheint, die Aggregatfunktionen ausgewertet. Hier wird Summe des Feldes Group."ItemsTotal" gebildet. Nachdem der Gruppenfuß, welcher die Summe anzeigt, ausgeführt worden ist, wird nun die Funktion für die nächste Gruppe neu gestartet usw.

Hier kann man die Bedeutung des Parameters flags in Aggregatfunktionen aufzeigen. In manchen Reporten ist ein Teil der Bänder (oder auch alle) verborgen. Wir wollen jedoch, dass bei der Auswertung der Funktion alle Datenbänder berücksichtigt werden. In unserem Beispiel können wir die Eigenschaft Visible bei dem Datenband deaktivieren. Dieser wird nun nicht auf dem Bildschirm angezeigt. Soll die Summe auch die Werte der verborgenen Bänder enthalten, so müssen wir einen dritten Parameter in den Aufruf der Funktion einsetzen.

[SUM(<Group."ItemsTotal">,MasterData1,1)]

Wir erhalten folgenden Report:

Bei dem Parameter flags = 2 wird der kumulierte Wert nicht zurückgesetzt. Es wird eine Gesamtsumme gebildet. Modifizieren wir den Aufruf der Funktion:

[SUM(<Group."ItemsTotal">,MasterData1,3)]

Die 3 ist eine Kombination von 1 und 2, d.h. es werden auch die verborgenen Bänder bearbeitet und es wird eine Gesamtsumme gebildet: Im Endeffekt:


Ergebnisse der Seite und des Reportes

Oft muss man im Report das Ergebnis der Seite oder des gesamten Reports darstellen. Dies wird ebenfalls mithilfe der Aggregatfunktionen gemacht. Sehen wir uns folgendes Beispiel an.

Wir haben das Band "Reportzusammenfassung" und ein Objekt "Text" eingefügt. Hier wird nun die Summe in den Bändern "Reportzusammenfassung" und "Seitenfuß" dargestellt.


Einfügen der Aggregatfunktionen

Bis jetzt haben wir die Aggregatfunktionen per Hand in das Objekt "Text" eingefügt. Betrachten wir nun ein paar weitere, bequemere Möglichkeiten eine Aggregatfunktion einzufügen.

Als Erstes kann man, um eine Aggregatfunktion auszuführen, das Objekt "Systemtext" verwenden. Eigentlich ist es dasselbe Objekt "Text", hat aber einen speziellen Editor um das Einfügen der Systemvariablen und Aggregatfunktionen einfacher zu machen.

screenshot - 18.05.2009 , 16_16_05

Im Editor muss nun der Typ der Funktion, das Datenband, das Datenfeld und der Ausdruck angegeben werden. Ebenfalls kann man "Unsichtbare Bänder zählen" und "Kumulative Summe" markieren.

Die zweite Möglichkeit ist die Nutzung des Objektes "Text" und der Button in dessen Editor. Es wird ein zusätzliches Fenster geöffnet (ist dem Fenster "Systemtext" ähnlich). Klickt man nun auf OK, so wird in den Text die Funktion eingefügt.


Values formatting

Beachten wir ein Besonderheit der Aggregatfunktionen. Diese geben uns die Zahlen nicht formatiert wieder.

Die wird so gemacht, weil die Datenfelder in der Regel, die Informationen des Objektes "Text" wiedergeben ohne diese vorher zu formatieren. Um das Resultat der Funktion SUM besser darzustellen, besitzt FastReport folgende Möglichkeiten der Formatierung.

Markieren wir das Objekt mit der Summe und rufen dessen Kontextmenü auf. Den Editor der Formatierung erreicht man über das Menü "Anzeigeformat..." oder mit der Eigenschaft DisplayFormat im Objektinspektor.

screenshot - 18.05.2009 , 16_18_05

Wie man sieht, befindet sich links die Kategorie der Formatierung und rechts die Liste der Formate in dieser Kategorie. Wählen wir die Kategorie "Zahl" und das Format "$1,234.50". Unten wird nun der Formatstring und der Dezimaltrenner dargestellt. Der Formatstring ist dem Argument der Delphi-Funktion Format ähnlich. FastReport formatiert mit Zahlen mit dessen Hilfe. Sie können den Formatstring und auch den Dezimaltrenner ändern. Wird der Dezimaltrenner nicht eingefügt, so wählt das Programm den üblichen verwendeten Trenner.

Wir klicken auf OK, der Report wird erstellt und wir sehen, dass die Summe nun folgendes Aussehnen angenommen hat:


Individuelle Formatierung

Das obere Beispiel der Formatierung wird für alle Ausdrücke verwendet, die ein Objekt enthält. Alles funktioniert einwandfrei, weil es nur einen Ausdruck im Objekt gibt. Was passiert jedoch wenn man zwei hat und dann auch noch verschiedener Typen?

Betrachten wir solch einen Fall. Es sollen die Summe und die Anzahl der Bestellungen angezeigt werden. Wir fügen in das Objekt folgenden Text ein:

Summe: [SUM(<Group."ItemsTotal">,MasterData1)]

Anzahl: [COUNT(MasterData1)]

Beim Start des Reports, sehen wir das beide Ausdrücke im Format Währung (oben eingegeben) angezeigt werden, was jedoch nicht richtig ist:

Um das ganze korrekt anzeigen zu können, muss jeder Ausdruck individuell formatiert werden. Hierfür gibt es so genannte Format-Tags. Diese werden vor der abschließenden eckigen Klammer eingefügt. In unserem Beispiel deaktivieren wir die Formatierung des Objektes (im Format-Editor wählen wir die Kategorie "Text (ohne Format)". Jetzt ändern wir das Format der ersten Variablen, die zweite ist dann nicht formatiert und wird, wie gewünscht, als ganze Zahl angezeigt. Den Text des Objekts ändern wir auf folgende Weise:

Summe: [SUM(<Group."ItemsTotal">,MasterData1) #n%2,2m]

Anzahl: [COUNT(MasterData1)]

vergewissern wir uns, dass der Report nun richtig ausgeführt wird:

Jetzt zur Nutzung der Tags. Die Syntax ist die folgende:

[expression #tag]

Beachten Sie, dass die Leerstelle zwischen dem Ausdruck und dem Zeichen # ist zwingend! Der Tag selber kann folgendes Aussehen haben:

#nFormatZeile Format Zahl

#dFormatZeile Format Datum/Zeit

#bFalse,True Format Wahrheitswert

Die FormatZeile ist in jedem Fall ein Argument für die Funktion, mit deren Hilfe man die Formatierung ausführt. Für das Format Zahl ist es die Delphi-Funktion Format und für das Format Datum/Zeit die Funktion FormatDateTime. Die möglichen Bedeutungen der Formatzeilen kann man in Hilfe von Delphi erfahren. Hier einige Bedeutungen, die in FastReport verwendet werden:

für das Format Zahl

%g eine Zahl mit der minimalen Anzahl der Zeichen nach dem Komma

%2.2f eine Zahl mit einer fixen Anzahl der Zeichen nach dem Komma

%2.2n eine Zahl mit Trennzeichen

%2.2m Format Währung, abhängig von lokalen Einstellungen im Kontrollpanell.

für das Format Datum/Zeit

dd.mm.yyyy Datum 23.12.2003

dd mmm yyyy Datum 23 nov 2003

dd mmmm yyyy Datum 23 November 2003

hh:mm Datum 23:12

hh:mm:ss Datum 23:12:00

dd mmmm yyyy, hh:mm Zeit und Datum 23 Íîÿáðü 2003, 23:12

Beim Format Zahl kann man anstatt des Punktes ein Komma oder ein Bindestrich verwenden. Dieses Symbol wird dann als Trennzeichen verwendet. Andere Ternnzeichen sind nicht zugelassen.

Die Formatierung des Typs #b stellt zwei Bedeutungen dar, die durch ein Komma getrennt sind. Die erste Bedeutung entspricht False, die zweite True.

Um nicht alle Tags und deren Bedeutungen im Kopf behalten zu müssen, gibt es im Editor "Text" eine bequeme Möglichkeit um die Formatierung durchzuführen. Durch den Klick auf den Button [image] wird der Editor der Formatierung aufgerufen. Diesen haben wir uns schon angesehen. Nach der Formatwahl wird dieser in den Text eingefügt. Steht der Cursor dabei vor oder hinter der eckigen Klammer so wird das Format korrekt eingefügt.


Hervorheben

Diese Besonderheit des Objektes "Text" erlaubt es ein Objekt farblich hervorzuheben und dies an eine bestimmte Bedingung zu knüpfen. Die Bedingung kann ein beliebiger Ausdruck sein. Betrachten wir die Hervorhebung am Beispiel. Es soll die Summe der Bestellungen grün hervorgehoben werden, wenn diese über 5000 liegt. Wir wählen das Feld Group."ItemsTotal" und klicken auf den Button "Hervorheben" [image] auf der Symbolleiste des Designers. Im Editor der Hervorhebung geben wir die Bedingung ein, bei welcher das Objekt hervorgehoben werden soll und geben die Parameter ein (Schrift, Fon).

screenshot - 18.05.2009 , 16_22_15

Wir erhalten folgendes:

Beachten Sie die angegebene Bedingung: Value > 5000. Value ist die Bedeutung des DB-Feldes, mit welchem das Objekt verknüpft ist. Man könnte auch <Group."ItemsTotal"> > 5000 eingeben, es würde zum selben Ergebnis führen. Im Endeffekt kann man alle erlaubten Ausdrücke des FastReport verwenden.


Hervorhebung der Zeilen nacheinander

Mithilfe der Hervorhebung kann man relativ einfach dem Report ein moderneres Aussehen verpassen, indem man z.B. jede zweite Zeile hervorhebt. Machen wir das am Beispiel des Reports "Liste", welchen wir in dem hervorgehendem Kapitel erstellt haben.

Am Anfang fügen wir die Bänder "ReportTitel" und "Masterdata" in das Blatt ein. Auf das Datenband legen wir ein Objekt "Text" und dehnen es auf die komplette Breite des Bandes:

Dieses Objekt hat die Rolle einer Unterlage und wird die Farbe ändern, abhängig von der Nummer der Datenzeile. Heben wir das Objekt hervor und stellen im Editor folgende Bedingung ein:

<Line> mod 2 = 1

Achtung: falls Sie die Scriptsprache C++Script benutzen (s.h. Kapitel "Script"), müssen Sie auch die Bedingung in C++Script verfassen:

<Line> % 2 == 1

Wir wählen die Farbe Grau, diese jedoch heller. Jetzt können auch die anderen Objekte auf das Datenband gelegt werden:

Da die eingefügten Objekte auf der Unterlage liegen, kann man die nicht so einfach ändern. Wenn wir den Report nun starten sehen wir folgendes:


Unterreporte

Manchmal muss man im eigentlichen Report zusätzliche Daten darstellen, welche an sich schon Reporte mit einer komplexen Struktur darstellen. Man kann solch einen Report mithilfe des Satzes der Bänder in FastReport erstellen, dies klappt jedoch nicht immer. In solch einem Fall kann man das Objekt "Unterreport" [image] nutzen.

Fügen wir dieses Objekt ein, so wird automatisch eine zusätzliche Seite eingefügt, die mit dem Objekt verknüpft ist. Der Unterreport ist dem mehrseitigen Report sehr ähnlich. Der einzige Unterschied ist, das der Unterreport an der angewiesenen Stelle im Hauptreport ausgeführt wird und nicht danach. Bei der Bildung des Reports, wird, sobald man auf das Objekt "Unterreport" trifft, der Report von der verknüpften Seite ausgeführt. Danach geht die Bildung des Hauptreports weiter.

Auf die Seite des Unterreports, kann man ebenfalls das Objekt "Unterreport" legen. Dadurch erhöht man die Ebenen der Verschachtelungen. Ein Beispiel dafür kann man in dem Demonstrationsprogramm unter dem Report "Subreports" finden.

Man muss bemerken, dass die Fähigkeit von FastReport Unterreport zu erstellen und damit die Ebenen der Verschachtelung zu erhöhen, unbegrenzt ist. Zur Erinnerung, ohne die Nutzung des Objekts "Unterreport", sind die Ebenen auf sechs begrenzt.


Die Ausführung der Unterreporte nebeneinander

Sie haben die Möglichkeit zwei oder mehr Objekte "Unterreport" nebeneinander auf dem selben Band anzulegen:

Dadurch kann man Reporte erstellen, die nicht auf eine andere Weise erstellt werden können. Wenn z.B. die Unterreporte die Listen verschiedener Längen enthalten:

Wie man sieht, bildet FastReport den Hauptreport weiter ann der Stelle, an der die längste Liste endet.


Beschränkungen bei der Nutzung der Unterreporte

Da der Unterreport auf der Seite des Hauptreports liegt, kann er folgende Bänder nicht enthalten. "ReportTitle/ReportFooter", "Seitenkopf/Seitenfuß/Seitenhintergrund", "Spaltenkopf/-fuß". Genau genommen kann man diese Bänder auf die Seite des Unterreports legen, diese werden jedoch nicht bearbeitet (auf die Seite des Hauptreports kann man weiterhin alles legen). Deshalb hat es auch keinen Sinn die Seiteneinstellungen des Unterreports zu ändern, bei der Erstellung des Reports werden die Seiteneinstellungen des Hauptreports verwendet.

Man kann keine Objekte unter das Objekt "Unterreport" legen:

Beim Darstellen des Unterreportes werden die darunter liegenden Objekte überlagert. Es würde z.B. wie folgt aussehen:

Um die Objekte unter dem Objekt "Unterreport" darzustellen, nutzen Sie das Child-Band:

Dies gilt auch, wenn man mehrere Unterreporte untereinander liegen sollen.


Option (PrintOnParent)

Das Objekt "Unterreport" hat eine sehr nützliche Eigenschaft und zwar PrintOnParent. Diese ist standardmäßig gleich False.

Normalerweise wird ein Unterreport in Form verschiedener Bänder auf den Hauptreport dargestellt. Das Band des Hauptreports welches das Objekt "Unterreport" enthält, hat jedoch keine Beziehung zu den Bändern des Unterreports. Wird die Option PrintOnParent aktiviert, so werden die Bänder des Unterreports, in dem Band welches das Objekt "Unterreport" enthält, eingefügt. Man kann solch ein Band dehnbar machen und es kann neben dem Unterreport ein, auf die gesamte Höhe des Bandes, gedehntes Objekt gelegen werden:


Script

Script ist ein, in einer Sprache des höheren Niveaus, geschriebenes Programm, das ein Teil eines Reports ist. Beim Start eines Reports wird ebenfalls auch Scripte gestartet. Scripte erlauben eine Bearbeitung der Daten, welche nicht mit den vorhandenen Möglichkeiten des Kerns von FastReport bearbeitet werden können. Zum Beispiel das Verbergen von Daten in Abhängigkeit von bestimmten Bedingungen. Scripte werden ebenfalls verwendet zur Steuerung von Dialogformen, die Komponenten des Reportes sind.

Scripte können in einer der Sprachen geschrieben werden, die die Scriptengine FastScript unterstützt. Bis zum heutigen Tag sind es folgende:

- PascalScript

- C++Script

- BasicScript

- JScript

Die Scriptengine FastScript besitzt folgende Eigenschaften:

- ein Standardsprachset: Variablen, Konstanten, Prozeduren, Funktionen (Verschachtelungen möglich), mit variablen/ständigen/standardmäßigen Parametern, alle Standardoperatoren (incl. case, try/finally/except, with), Typen (ganz, gebrochen, logisch, symbolisch, Zeilen, mehrdimensionale Reihen, Mehrzahl, Variante), Klassen (Methoden, Ereignisse, Eigenschaften, Indizes und Möglichkeiten der standardmäßigen Voreinstellung);

- die Erklärungen der Typen (records, classes) fehlen im Script, es gibt keine Aufzeichnungen (records), Anzeiger (pointers), Mengen (sets) (jedoch kann man den Operator 'IN' - "a in ['a'..'c','d']" verwenden), es gibt keinen Typ shortstring, Sprunganweisung (GOTO);

- Überprüfung der Typenvereinbarkeit;

- Zugang zu jedem Objekt des Reportes.

Sie können Scripte im FastReport Designer erstellen. Dieser beinhaltet einen Scripteditor mit dem Hervorheben der Syntax. Es gibt ebenfalls einen eingebetteten Debugger mit folgenden Funktionen: Step, Breakpoint, Run to cursor, Evaluate.


Erste Schritte

Die Tools um mit Scripten zu arbeiten befinden sich im Tab "Code" des Designers von FastReport. So sieht der Bildschirm aus beim Umschalten auf den Tab:

Die Zahlen bedeuten:

1 Tab "Code"

2 Fenster des Scripteditors;

3 Drop-Down-Liste der Scriptsprachen;

4 Toolbar des Debuggers:

- Script ausführen (F9);

95 - Gehe zur Cursorposition (Run to cursor);

- Einzelne Anweisung (Step into);

- Script beenden;

- Auswerten (Evaluate);

94 - Haltepunkt umschalten.

5 Fenster Watches zur Überwachung der Variablen;

6 Lesezeichen (bookmark) und Unterbrechungspunkte (breakpoint) werden in diesem Feld angezeigt, ebenso werden Zeilen, die den ausführenden Code enthalten, hervorgehoben:

Unten die im Scripteditor genutzten Tastaturbefehle.

Tasten

Bedeutung

Pfeiltasten

Bewegen den Cursor

PageUp, PageDown

Blättern vorherige/nächste Seite

Strg+PageUp

Geht zum Anfang des Textes

Strg+PageDown

Geht zum Ende des Textes

Pos 1

Geht zum Anfang der Zeile

Ende

Geht zum Ende der Zeile

Enter

Geht zur nächsten Zeile

Entf.

Entfernt das Symbol in der Position des Cursors, entfernt den hervorgehobenen Text.

Backspace

Entfernt das Symbol links vom Cursor

Strg+Y

Entfernt die aktuellen Zeile

Strg+Z

Macht die letzte Aktion rückgängig (bis zu 32 Stück)

Shift+Pfeiltasten

Hebt ein Textblock hervor

Strg+A

Markiert den gesamten Text

Strg+U

Verschiebt den hervorgehobenen Textblock zwei Symbole nach links

Strg+I

Verschiebt den hervorgehobenen Textblock zwei Symbole nach rechts

Strg+C, Strg+Einfg

Kopiert den markierten Textblock in den Zwischenspeicher

Strg+V, Shift+Einfg

Fügt den Text aus dem Zwischenspeicher ein

Strg+X, Shift+Entf

Schneidet den Text in den Zwischenspeicher aus

Strg+Shift+<Zahl>

Erstellt ein Lesezeichen mit der Zahl 0...9 in der aktuellen Zeile

Strg+<Zahl>

Geht zum gewählten Lesezeichen

Strg+F

Suche der Zeile

Strg+R

Ersetzen der Zeile

F3

Neue Suche/Ersatz ab der Cursorposition

F4

Start des Reports bis zu der Zeile in der sich der Cursor befindet (Run to cursor)

F5

Einstellen des Unterbrechungspunktes (Toggle breakpoint)

Strg +F2

Stoppt das Script (Program reset)

Strg +F7

Betrachtung der Bedeutungen von Variablen (Evaluate)

F9

Start des Scriptes (Run)

F7 èëè F8

Ausführen der Codezeile (Step into)

Strg +Leertaste

Zeigt eine Drop-Down-Liste mit den Methoden und Eigenschaften des Objektes, dessen Name ausgewählt ist.

Strg +Shift+Entf

Entfernt das Wort vor dem Cursor komplett

Strg +Shift+Backspace

Entfernt das Wort nach dem Cursor komplett


Scriptstruktur

Die Scriptstruktur hängt von der verwendeten Sprache ab, diese kann aber gemeinsame Elemente darstellen. Diese sind die Kopfzeile des Scriptes, der Körper und die Hauptprozedur die beim Start des Reports ausgeführt werden. Unten sehen Sie die Beispiele der Scripte der vier unterstützenden Sprachen:

Struktur PascalScript:

#language PascalScript // optional

program MyProgram; // optional

// der Teil uses muss vor allen anderen Teilen stehen

uses'unit1.pas', 'unit2.pas';

var // der Teil der Variablen kann an einer beliebigen Stellestehen

i, j: Integer;

const // der Teil konstant

pi = 3.14159;

procedure p1; // Prozeduren und Funktionen

var

i: Integer;

procedure p2;// verschachtelte Prozedur

begin

end;

begin

end;

begin // Hauptprozedur.

end.

Struktur C++Script:

#languageÑ++Script // optional

// der Teil include - muss vor allen anderen Teilen stehen

#include "unit1.cpp", "unit2.cpp"

int i, j = 0; // der Teil der Variablen kann an einer beliebigen Stellestehen

#DEFINE pi = 3.14159 // der Teil konstant

void p1() // Funktionen

{ // keine verschachtelten Prozeduren

}

{ // Hauptprozedur.

}

Struktur JScript:

#language JScript // optional

// der Teil import - muss vor allen anderen Teilen stehen

import "unit1.js", "unit2.js"

var i, j = 0; // der Teil der Variablen kann an einer beliebigen Stellestehen

function p1() // Funktionen

{ //

}

// Hauptprozedur.

p1();

for (i = 0; i < 10; i++) j++;

Struktur BasicScript:

#language BasicScript // optional

// der Teil imports - muss vor allen anderen Teilen stehen

imports "unit1.vb", "unit2.vb"

Dim i, j = 0 // der Teil der Variablen kann an einer beliebigen Stellestehen

Function p1() // Funktionen

{ //

}

// Hauptprozedur.

For i = 0To10

p1()

Next

Eine genauere Beschreibung der Möglichkeiten Scriptengine FastScript können Sie in der Dokumentation dazu finden. Der Autor hat folgende Inhalte nicht doppelt in das Handbuch eingefügt:

- Syntax-Charts aller Sprachen;

- unterstütze Datentypen;

- die Arbeit mit Klassen, Eigenschaften, Methoden, Ereignissen;

- eingebaute Funktionen

- Aufzählungen und Sets.

Im weiterem Verlauf werden wir Beispiele der Scripte in PascalScript betrachten. Bei der Erstellung eines neuen Reportes wird diese Sprache standardmässig ausgewählt.


Script “Hello, World!”

Script "Hello, World!"

Wir hatten das Beispiel des Reports "Hello, World!", lassen Sie uns jetzt mal ein einfachen Script erstellen. Dieser soll ein Fenster mit dem Text einer Begrüßung anzeigen.

Gehen wir in den Designer und klicken auf "Neuer Report". FastReport erstellt nun eine leere Schablone. Wir gehen auf den Tab Code und geben folgendes Script ein:

PascalScript:

begin

ShowMessage('Hello, World!');

end.

C++ Script:

{

ShowMessage("Hello, World!");

}

Danach starten wir den Report. Wie erwartet, zeigt FastReport auf dem Bildschirm ein kleines Fester mit einer Begrüssung:

Klären wir ein paar Details. Wir haben ein Script erstellt der aus einem Block besteht begin..end. Auf diese Weise hat unser Script eine sehr einfache Struktur, es besteht nur aus der Hauptprozedur (s.h. vorheriges Kapitel "Scriptstruktur"). Die Hauptprozedur wird beim Start des Reports ausgeführt. In unserem Fall zeigt sie das Fenster an und wird nach dem Schließen beendet. Nach dem Beenden der Hauptprozedur beginnt die Erstellung des Reports.


Benutzung von Objekten im Script

Mit dem Script kann man sich an jedes Objekt im Report wenden. Wenn der Report z.B. die Seite Page1 und ein Objekt Memo1 enthält, so kann man diese im Script verwenden, indem man deren Namen benutzt:

PascalScript:

Memo1.Color := clRed

C++Script:

Memo1.Color = clRed

Die Liste der Objekte im Report, die aus dem Script erreichbar sind, wird im Fenster des "Reporttree" angezeigt. Welche Eigenschaften der Objekte sind im Script zugänglich? Die Antwort ist einfach und zwar die, die im Objektinspektor sichtbar sind. Im unteren Teil des Fensters wird ein Hilfstext zu der gewählten Eigenschaft angezeigt. Beide Fenster (Reporttree und Inspektor) sind während der Arbeit mit dem Script zugänglich. Um eine ausführliche Auskunft über die Methoden und Eigenschaften der Objekte zu erhalten, verwenden Sie die FastReport Hilfe, die im Satz enthalten ist.

Demonstrieren wir das ganze an einem kleinen Beispiel. Fügen wir in die Reportseite das Objekt "Text" ein. Der Name soll MyTextObject lauten und als Text soll dort "Test" stehen. Wir schreiben das Script:

PascalScript:

begin

MyTextObject.Color := clRed

end.

C++Script:

{

MyTextObject.Color = clRed

}

Starten wir den Report und sehen, dass das Objekt rot geworden ist.


Zugriff auf Variablen aus der Liste der Reportvariablen

Im Script kann man auf jede Variable zugreifen, die in der Liste der Reportvariablen enthalten ist (Menüpunkt "Report|Variablen...". Der Name der Variablen muss dabei in spitze Klammern gesetzt werden:

PascalScript:

if <my variable> = 10then ...

C++ Script:

if (<my variable> == 10) { ... }

Eine alternative Variante, ist die Verwendung der Funktion Get:

PascalScript:

if Get('my variable') = 10then ...

C++ Script:

if (Get("my variable") == 10) { ... }

Die Änderung des Wertes dieser Variablen kann man nur mithilfe der Prozedur Set:

PascalScript:

Set('my variable', 10);

C++ Script:

Set("my variable", 10);

Man muss anmerken, dass das Hinzufügen der Zeilenbedeutung zusätzliche Klammern erfordert:

PascalScript:

Set('my variable', '''' + 'Zeile' + '''');

C++ Script:

Set("my variable", "\"Zeile\"");

Analog kann man auch auf Systemvariablen wie Page# zugreifen:

PascalScript:

if <Page#> = 1then ...

C++ Script:

if (<Page#> == 1) { ... }


Zugriff auf DB-Felder

Wie auch im Fall die Variablen, müssen auch hier eckige Klammern verwendet werden:

PascalScript:

if <Table1."Field1"> = Null then...

C++ Script:

if (<Table1."Field1"> == Null) { ... }

Ganauso kann man die Funktion Get verwenden (eigentlich wird diese Funktion immer für die Berechnung der Ausdrücke verwendet, die in Klammern gesetzt sind).


Die Verwendung von Aggregatfunktionen im Script

Die Besonderheit der Aggregatfunktion ist, dass sie innerhalb des Objektes "Text" verwendet werden muss. Danach kann man auf diese im Script zugreifen.Wird die Aggregatfunktion nur im Script verwendet (ohne die Verwendung im Objekt "Text"), so wird eine Fehlermeldung angezeigt. Dies ist notwendig, damit die Aggregatfunktion korrekt funktioniert. Deshalb muss sie an ein Band gebunden sein.


Anzeigen des Wertes der Variablen im Report

Um den Inhalt einer Scriptvariablen im Report anzuzeigen, muss diese beschrieben und ein Wert muss ihr zugeordnet werden. Hier ein einfaches Beispiel des Scriptes:

PascalScript:

var

MyVariable: String;

begin

MyVariable := 'Hello!';

end.

C++ Script:

string MyVariable;

{

MyVariable = "Hello!";

}

Den Wert der Variablen kann man z.B. Im Objekt "Òåxò" darstellen, indem man die Zeile [MyVariable] einfügt.

Der Name der Variablen muss einzigartig sein, d.h. es darf nicht denselben Namen haben wie die Objekte des Reportes, der Standardfunktionen, Konstanten. Bei jedem Fehler im Script erscheint eine Fehlermeldung auf dem Bildschirm und der Report wird nicht erstellt.


Ereignisse

Bis jetzt haben wir Scripte mit nur einer Hauptprozedur betrachtet, die beim Start des Reports ausgeführt wird. In der Hauptprozedur kann man Starteinstellungen ausführen oder die Variablen initialisieren. Aber für die volle Kontrolle über den Prozess der Reportbildung ist es ungenügend. Um den Report flexibel steuern zu können, hat jedes Objekt mehrere Ereignisse, denen ein Bearbeiter zugewiesen werden kann eine Pozedur im Script. Man kann zum Beispiel im Editor des Datenbandes Einträge filtern, d.h. verbergen und anzeigen des Bandes abhängig von bestimmten Bedingungen.

Betrachten wir den Prozess der Bildung des Reports und der Ereignisse, die dabei generiert werden am Beispiel eines einfachen Berichtes, der nur eine einzige Seite, ein Band "Daten 1. Ebene" und zwei Objekte Text im Band enthält.

Am Anfang des Reports wird, wie gesagt die Hauptprozedur ausgeführt. Erst danach beginnt der eigentliche Prozess der Reporterstellung. Das Ereignis OnStartReport wird am Anfang des Objekts "Reports" aufgerufen. Vor dem formieren der Seite wird das Ereignis OnBeforePrint. Dieses Ereignis wird einmal für jede Seite der Reportschablone aufgerufen (nicht zu verwechseln mit den Seiten des fertigen Reports!) In unserem Fall unabhängig der Seiten im fertigen Report, wird das Ereignis nur einmal aufgerufen, da die Reportschablone aus nur einer Seite besteht.

Als nächstes beginnt der Druck der Datenbänder. Das geschieht auf folgende Weise:

1. Ereignis OnBeforePrint des Bandes wird aufgerufen;

2. die Ereignisse OnBeforePrint der auf dem Band liegenden Objekte werden aufgerufen;

3. alle Objekte werden mit Daten gefüllt (in unserem Fall mit Bedeutungen der DB-Felder Company und Addr1);

4. die Objekte werden auf dem Band positioniert (falls dazwischen dehnbare sind), ebenfalls wird die Höhe des Bandes berechnet und es wird gedehnt (falls es dehnbar ist);

5. das Ereignis OnAfterCalcHeight des Bandes wird aufgerufen;

6. falls das Band nicht auf eine Seite passt, wird eine neue erstellt;

7. das Band und alle seine Objekte werden auf dem fertigen Report ausgeführt;

8. das Ereignis OnAfterPrint aller Objekte des Bandes wird aufgerufen;

9. das Ereignis OnAfterPrint des Bandes wird aufgerufen

Die Bänder werden ausgeführt, solange es Daten in der verknüpften Datenquelle gibt. Danach endet das Formieren des Reports in unserem Fall und das Ereignis OnAfterPrint der Reportseite wird aufgerufen. Als letztes wird das Ereignis OnStopReport des Objekts "Report" aufgerufen.

Auf diese Weise wird durch Benutzung der Ereignisse verschiedener Objekte praktisch jeder Moment beim Erstellen des Reports kontrolliert. Der Schlüssel zum richtigen Verwenden der Ereignisse ist das Verstehen all dieser neuen Punkte des Prozesses der Reporterstellung. So können viele Handlungen nur ausgeführt werden indem man das Ereignis OnBeforePrint verwendet. Alle Änderungen die im Objekt vorgenommen werden, werden sofort angezeigt. Hier kann aber nicht analysiert werden, auf welcher Seite das Band angezeigt wird wenn dieses dehnbar ist. Die Berechnung dazu findet erst bei Punkt 4 statt. Dies kann mit dem Ereignis OnAfterCalcHeight oder OnAfterPrint im Punkt 8 gemacht werden, aber im letzten Fall wird das Band schon gedruckt sein und die Bearbeitung der Objekte wird keine Auswirkungen haben. Deswegen müssen Sie genau wissen, wann welches Ereignis aufgerufen wird und genau die benutzen, die benötigt werden.


Beispiel der Nutzung des Ereignisses OnBeforePrint

Demonstrieren wir das oben genannte an einem Beispiel. Erstellen wir einen Report und zwar eine Kundenliste, die nur Unternehmen enthalten soll deren Name mit "A" beginnt.

Gehen wir in den Reporteditor und erstellen einen Report mit folgendem Aussehen:

Markieren wir das Datenband und gehen auf den Tab "Ereignisse" im Objektinspektor:

Um den Bearbeiter des Ereignisses OnBeforePrint (dieses passt hier am besten) zu starten, müssen wir einen Doppelklick mit der Maus auf eine leere Stelle gegenüber den Namen des Ereignisses durchführen:

Dadurch wird in den Scripttext ein leerer Bearbeiter hinzugefügt und der Designer schaltet auf den Tab "Code":

Die Arbeitsweise ist der der Umgebung Delphi ähnlich. Wir müssen nur noch den folgenden Code in den Bearbeiter eingeben.

PascalScript:

if Copy(<Customers."Company">, 1, 1) = 'A'then

MasterData1.Visible := True else

MasterData1.Visible := False;

C++Script:

if (Copy(<Customers."Company">, 1, 1) == "A")

MasterData1.Visible = true;

else

MasterData1.Visible = false;

Starten wir den Report und überzeugen uns, dass das Script richtig funktioniert:

Sie können einen Bearbeiter für mehrere Ereignisse verschiedener Objekte bestimmen. In diesem Fall Parameter Sender bestimmt das Objekt, welches das Ereignis initialisiert hat (analog dem Parameter Sender in den Ereignissen Delphi). Um dem Ereignis den Namen eines schon bestehenden Bearbeiters zu geben, kann dieser manuell im Objektinspektor eingetragen werden oder man kann ihn in der Drop-Down-Liste auswählen (ebenfalls analog der Umgebung Delphi):

Der Link zum Bearbeiter kann leicht entfernt werden. Wählen Sie die Eigenschaft aus und klicken auf Entf.


Drucken der Endsumme der Gruppe im Gruppenkopf

 Top

Dieser oft durchgeführte Schritt benötigt die Verwendung eines Scriptes. In einem Standardreport ist die Summe erst zugänglich nachdem alle Einträge der Gruppe bearbeitet wurden. Um diese im Gruppenkopf darzustellen (bevor die Gruppe bearbeitet wird) verwendet man folgenden Algorithmus:

- der Report muss Zweipass aktiviert haben

- beim ersten Durchgang wird die Summe jeder Gruppe ermittelt und in irgendeinem Datenfeld gespeichert

- beim zweiten Durchgang wird diese aus dem Datenfeld geholt und im Gruppenkopf dargestellt.

Demonstrieren wir die Lösung dieser Aufgabe auf zwei Arten. Als erstes erstellen wir ein neues Projekt in Delphi und legen auf die Seite die Komponenten TQuery, TfrxReport, TfrxDBDataSet. Die Einstellungen sind wie folgt:

Query1:

DatabaseName = 'DBDEMOS'

SQL =

select * from customer, orders

where orders.CustNo = customer.CustNo

order by customer.CustNo, orders.OrderNo

frxDBDataSet1:

DataSet = Query1

UserName = 'Group'

Jetzt gehen wir in den Designer und verknüpfen unsere Datenquelle mit dem Report. In den Einstellungen des Reports (Menüpunkt "Report|Einstellungen...") aktivieren wir Zweipass. Zwei Bänder werden eingefügt: "Gruppenkopf" und "Daten 1. Ebene". Im Editor des Bandes "Gruppenkopf" fügen wir die Bedingung Datenfeld Group.CustNo ein: Das Datenband verknüpfen wir mit der Datenquelle und ordnen die Objekte folgendermaßen an:

Das markierte Objekt in der Grafik (der Name: Memo8) benutzen wir um die Summe anzuzeigen.

Möglichkeit 1.

Wir verwenden als Datenfeld für die Aufbewahrung der Summen "TstringList". Die Summe soll in Form von Zeilen gespeichert werden. Dabei soll die erste Zeile die Werte der ersten Gruppe darstellen usw. Die Gruppennummer soll eine ganzzahlige Variable sein, die sich mit jeder folgenden Gruppe erhöht.

Unser Script sieht in diesem Fall so aus:

PascalScript:

var

List: TStringList;

i: Integer;

procedure frxReport1OnStartReport(Sender: TfrxComponent);

begin

List := TStringList.Create;

end;

procedure frxReport1OnStopReport(Sender: TfrxComponent);

begin

List.Free;

end;

procedure Page1OnBeforePrint(Sender: TfrxComponent);

begin

i := 0;

end;

procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);

begin

if Engine.FinalPass then

Memo8.Text := 'Sum: ' + List[i];

end;

procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);

begin

ifnot Engine.FinalPass then

List.Add(FloatToStr(SUM(<Group."ItemsTotal">,MasterData1)));

Inc(i);

end;

begin

end.

C++ Script:

TStringList List;

int i;

void frxReport1OnStartReport(TfrxComponent Sender)

{

List = TStringList.Create();

}

void frxReport1OnStopReport(TfrxComponent Sender)

{

List.Free();

}

void Page1OnBeforePrint(TfrxComponent Sender)

{

i = 0;

}

void GroupHeader1OnBeforePrint(TfrxComponent Sender)

{

if (Engine.FinalPass)

Memo8.Text = "Sum: " + List[i];

}

void GroupFooter1OnBeforePrint(TfrxComponent Sender)

{

List.Add(FloatToStr(SUM(<Group."ItemsTotal">,MasterData1)));

i++;

}

{

}

An dem Namen der Prozedur kann man sehen, welches Ereignis wir verwendet haben: Report.OnStartReport, Report.OnStopReport, Page1.OnBeforePrint, GroupHeader1.OnBeforePrint, GroupFooter1.OnBeforePrint. Was die beiden ersten Ereignisse angeht, so werden diese am Anfang und am Ende eines Reports aufgerufen. Um die Bearbeiter für diese Ereignisse zu erstellen, markieren wir das Objekt "Report" im Fenster "Reporttree". Die Eigenschaften erscheinen dadurch im Objektinspektor. Den Rest erledigen wir wie gewohnt, indem wir auf den Tab "Ereignisse" des Inspektors gehen und die Bearbeiter erstellen.

Wieso haben wir für die Erstellung der Liste List nicht die Hauptprozedur benutzt, sondern haben es im Ereignis OnStartReport gemacht? Weil das erstellte Objekt nach dem Vollenden des Reports befreit werden muss. Logischerweise ist es besser die Objekte im Ereignis OnStartReport zu erstellen und im OnStopReport zu befreien. In anderen Fällen (wenn der Speicher nicht befreit werden muss) kann man die Hauptprozedur verwenden um Variablen zu initialisieren.

Das Erstellen und das Befreien des Objektes "List" haben wir geklärt. Lassen Sie uns nun die Arbeitsweise des Scripts betrachten. Am Anfang der Seite wird der Zähler der laufenden Gruppe (Variable i) auf 0 gesetzt und wird um 1 erhöht nach jeder neuen Gruppe (im Ereignis GroupFooter1.OnBeforePrint). Ebenfalls wird in diesem Ereignis die Summe in die Liste eingefügt. Das Ereignis GroupHeader1.OnBeforePrint funktioniert beim ersten Durchgang nicht (Überprüfung Engine.FinalPass). Beim zweiten Durchgang (wenn die Liste List mit Werten gefüllt ist), wird dieses Eeignis den Wert der aktuellen Gruppe anzeigen und in den Text des Objektes Memo8 eintragen. Der Text zeigt die Summe in der Kopfzeile der Gruppe. Im fertigen Report sieht es so aus:

Wie man sieht ist der Algorithmus relativ einfach. Man kann ihn aber noch einfacher gestalten.

Möglichkeit 2.

Wir verwenden als Datenfeld zum Speichern der Summen die Liste der Reportvariablen. Der Bezug auf diese Variablen läuft mit den Funktionen Get und Set. Dadurch müssen wir nicht neue Objekte erstellen und der Speicher muss nicht gelöscht werden. Das Script sieht dann so aus:

PascalScript:

procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);

begin

if Engine.FinalPass then

Memo8.Text := 'Sum: ' + Get(<Group."CustNo">);

end;

procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);

begin

Set(<Group."CustNo">,

FloatToStr(SUM(<Group."ItemsTotal">,MasterData1)));

end;

begin

end.

C++ Script:

void GroupHeader1OnBeforePrint(TfrxComponent Sender)

{

if (Engine.FinalPass)

Memo8.Text = "Sum:" + Get(<Group."CustNo">);

}

void GroupFooter1OnBeforePrint(TfrxComponent Sender)

{

Set(<Group."CustNo">,

FloatToStr(SUM(<Group."ItemsTotal">,MasterData1)));

}

{

}

Wie man sieht ist das Script wesentlich einfacher geworden. Der Code im Bearbeiter GroupFooter1.OnBeforePrint stellt den Wert der Variablen mit dem Namen des Kunden (der Gleich der Kundennummer ist) dar. Man kann ein beliebiges Identifizierungszeichen verwenden, das den Kunden eindeutig identifiziert z. B. seinen Namen <Group."Company">. Gibt es eine solche Variable nicht, so wird sie erstellt. Gibt es sie, so wird deren Wert geändert. Im Bearbeiter GroupHeader1.OnBeforePrint wird der Wert der Variablen mit der Nummer der aktuellen Gruppe angezeigt.


Ereignis OnAfterData

Dieses Ereignis wird generiert, nachdem das Objekt im Report mit den verknüpften Daten gefüllt worden ist. Das Ereignis ist praktisch, um die Werte des DB-Feldes oder die Ausdrücke im Objekt zu analysieren. Tatsache ist, dass sich dieser Wert in der Dienstvariable Value befindet und deren Werte sind nur in diesem Ereignis zugänglich. Hat man zwei Objekte "Text" mit dem Inhalt [Table1."Field1"] und [<Table2."Field1"> + 10], kann man die Werte dieser Ausdrücke bequem analysieren, wenn man sich auf die Variable Value bezieht:

PascalScript:

if Value > 3000then

Memo1.Color := clRed

C++ Script:

if (Value > 3000)

Memo1.Color = clRed;

anstatt etwas wie dies zu schreiben:

PascalScript:

if <Table1."Field1"> > 3000then

Memo1.Color := clRed

C++ Script:

if (<Table1."Field1"> > 3000)

Memo1.Color = clRed;

Darüber hinaus gibt die Verwendung von Value, anstatt eines Ausdrucks, die Möglichkeit einen universellen Bearbeiter für das Ereignis OnAfterData zu erstellen und diesen mit mehreren Objekten zu verknüpfen.

Eins muss noch erwähnt werden, enthält das Objekt mehrere Ausdrücke z.B. [expr1] [expr2], so wird in die Variable Value der Wert des letzten Ausdruckes übernommen.

Das Ereignis OnAfterData passt ausgezeichnet, um die Höhe und Breite von Objekten wie z.B. "Text" zu berechnen. Sprich, wenn man im Script des Reports den tatsächlichen Wert der Höhe des Objekts haben möchte (dehnbares Objekt) und im Objekt "Text" wird ein Ausdruck verwendet, so kann man solch ein Script benutzen im Ereignis OnAfterData:

PascalScript:

var

MemoWidth: Extended;

begin

MemoWidth := TfrxMemoView(Sender).CalcWidth;

end;

C++ Script:

float MemoWidth;

MemoWidth = TfrxMemoView(Sender).CalcWidth;

Wenn der Datencode in das Ereignis OnBeforePrint einfügt wird, so wird das Resultat, die Höhe des Objektes (welches den Ausdruck enthält) und nicht sein Wert sein.


Serviceobjekte

Neben den im Report enthaltenen Objekten (Seiten, Bänder, Objekte "Text" usw.), sind zusätzlich im Script einige Serviceobjekte enthalten. Diese sind hilfreich bei der Steuerung der Erstellung eines Reports. Zu diesen Objekten gehört das oben benutzte Objekt Engine. Die Liste der Serviceobjekte ist unten aufgeführt:

- Report Objekt "Report";

- Engine Link zur Reportengine;

- Outline Link zum Steuerungselement "Reporttree" im Vorschaufenster.

Betrachten wir die Objekte.


Objekt Report

Stellt einen Link zum laufenden Report dar. Die Eigenschaften des Objekts kann man sehen, wenn man das Element "Report" im Fenster "Reporttree" auswählt.

Methoden:

Methode Beschreibung

function Calc(const Expr: String): Variant Zeigt den Wert des Ausdrucks Expr an, z.B. Report. Calc('1+2') würde 3 anzeigen. Jeder Ausdruck, der aus Sicht von FastReport korrekt ist, kann als Ausdruck übertragen werden.

function GetDataSet(const Alias: String): TfrxDataSet Gibt einen Datensatz mit einem angegebenen Namen zurück. Der Datensatz muss in der Liste der Reportdaten enthalten sein (Dialog "Report|Daten…").


Objekt Engine

Dies ist ein sehr nützliches und interessantes Objekt, welches einen Link zur Engine (der Kern von FastReport, welcher die Erstellung des Reports steuert) darstellt. Indem man die Eigenschaften und Methoden der Engine verwendet, kann man wahrhaft exotische Reporttypen erstellen. Betrachten wir die Eigenschaften und Methoden des Objekts.

Eigenschaft Typ Beschreibung

CurColumn Integer Die Nummer der aktuellen Spalte im Multispalten-Report. An diese Eigenschaft kann man einen Wert binden.

CurX Extended Die aktuelle Verschiebung der Koordinaten auf der X-Achse. An diese Eigenschaft kann man einen Wert binden.

CurY Extended Die aktuelle Verschiebung der Koordinaten auf der Y-Achse. An diese Eigenschaft kann man einen Wert binden.

DoublePass Boolean Standardmäßig True, wenn der Report Zweipass aktiviert hat. Analog Report.EngineOptions.DoublePass.

FinalPass Boolean Standardmäßig True, wenn der zweite Durchgang eines Reports ausgeführt wird.

PageHeight Extended Die Höhe der zu druckenden Region in Pixel.

PageWidth Extended Die Breite der zu druckenden Region in Pixel.

StartDate TDateTime Die Zeit des Startens des Reports. Analog der Systemvariable <Date>.

StartTime TDateTime Die Zeit des Startes des Reports. Analog der Systemvariable <Time>.

TotalPages Integer Anzahl der Seiten im Report. Analog der Systemvariablen <TotalPages>. Im diese Variable nutzen zu können, muss der Report Zweipass aktiviert haben.

SecondScriptcall Boolean Standardmäßig True, wenn beim Übertragen der Objekte das Ereignis des Objekts wiederholt aufgerufen wird (passiert beim Übertragen des Objektes "Text" mit der aktivierten Eigenschaft SuppressRepeated ).

Methoden:

Methode Beschreibung

procedure AddAnchor(const Text: String) Fügt einen "Anker" in die Liste der Anker ein. Genaueres folgt später.

procedure NewColumn Erstellt eine neue Spalte im Multispalten-Report. Nach der letzten Spalte wird automatisch die Seite getrennt.

procedure NewPage Erstellt eine neue Seite (Seitentrennung).

procedure ShowBand(Band: TfrxBand) Zeigt das Band mit dem eingegebenen Namen an. Nach der Ausführung des Bandes verschiebt sich automatisch die Position CurY.

function FreeSpace: Extended Zeigt die Höhe des restlichen freien Platzes auf der Seite an (in Pixel).

function GetAnchorPage(const Text: String): Integer Zeigt die Seitennummer an, auf der sich der eingegebene Anker befindet.


Objekt Outline

Dieses Objekt stellt ein Steuerungselement "Reporttree" im Vorschaufenster dar.

Dieses Element zeigt die Baumstruktur des fertigen Berichtes an. Beim Klick auf einen Knoten wechselt man auf die Reportseite, mit der dieser verbunden ist. Um den Baum darzustellen klickt man entweder auf auf den Instrumentenpanel im Vorschaufenster oder stellt die Eigenschaft Report.PreviewOptions.OutlineVisible gleich True. Dort kann man ebenfalls die Breite des Steuerungselementes in Pixel eingeben: Report.PreviewOptions.OutlineWidth.

Betrachten wir die Methoden dieses Objektes:

Methode Beschreibung

procedure AddItem(const Text: String) Fügt ein Element mit der Bezeichnung "Text" in die aktuelle Position des Baumes. Mit dem Element wird die aktuelle Reportseite und die aktuelle Position auf der Seite assoziiert.

procedure LevelRoot Verschiebt die aktuelle Position in dem Baum auf die Wurzelebene.

procedure LevelUp Verschiebt die aktuelle Position in dem Baum eine Ebene höher.


Anwendung des Objektes Engine

Wir haben schon erwähnt, dass das Objekt Engine die Reportengine darstellt und die Reporterstellung steuert. Durch die Verwendung der Eigenschaften und Methoden der Engine, steuert man den Prozess der Bandverteilung auf der Seite. Am Anfang etwas Theorie.

Die Grafik unten zeigt die Darstellung einer Reportseite und der Namen der Eigenschaften, welche die Maße steuern.

Eine Seite besitzt die physischen Maße PaperWidth, PaperHeight. Diese entsprechen namentlich den Eigenschaften der Seite, welche im Objektinspektor zusehen sind. Die Seite besitzt das Format A4 und ist 210õ297 mm groß.

Die Parameter PageWidth, PageHeight bestimmen die Größe der Seite auf der der Druck erfolgt. Diese ist in der Regel kleiner als die eigentliche Seite. Die Maße der bedruckbaren Fläche der Seite werden über die Eigenschaften LeftMargin, TopMargin, RightMargin, BottomMargin gesteuert. Die Eingabe der Maße der bedruckbaren Fläche in Pixel erfolgt über die Eigenschaften Engine.PageWidth, Engine.PageHeight

Das Parameter FreeSpace bestimmt die Höhe der freien Fläche der Seite. Enthält die Seite das Band "Seitenfuß" (Page Footer), so wird dessen Höhe beim Berechnen der Höhe durch FreeSpace berücksichtigt. Dieses Parameter in Pixel ist die Funktion Engine.FreeSpace. Man muss hinzufügen, dass nach dem Anzeigen des nächsten Bandes der freie Platz auf der Seite abnimmt. Auch dies berücksichtigt FreeSpace beim Berechnen.

Wie erfolgt das Formieren der Seiten eines fertigen Reports? Der Kern von FastReport fügt der Seite Bänder hinzu, solange es genügend Platz für das Band gibt. Reicht der Platz nicht aus, wird das Band "Seitenfuß" gedruckt (falls vorhanden) und eine neue Seite wird erstellt. Wie oben erwähnt, reduziert sich nach dem nächsten Band die freie Fläche. Außerdem wird das folgende Band von der gegenwärtigen Position angezeigt, die durch Koordinaten auf der X-Achse und Y-Achse definiert wird. Die Steuerung erfolgt über die Eigenschaften Engine.CurX, Engine.CurY. Nach dem Druck des nächsten Bandes erhöht CurY automatisch die Höhe, entsprechend der des Bandes. Nach dem Erstellen der neuen Seite ist CurY = 0. CurX verändert sich nur bei Multispalten-Reporten.

Die Eigenschaften Engine.CurX, Engine.CurY sind nicht nur zum Lesen verfügbar, sondern auch zum Schreiben. Die Bänder können dadurch manuell verschoben werden indem man eines der Ereignisse nutzt. Betrachten wir folgendes Beispiel:

Man kann ihn folgendermaßen drucken:

Die ist das Resultat eines Scripts, zugeteilt dem Ereignis OnBeforePrint des Bandes:

PascalScript:

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

Engine.CurX := Engine.CurX + 5;

end;

C++ Script:

void MasterData1OnBeforePrint(TfrxComponent Sender)

{

Engine.CurX = Engine.CurX + 5;

}

Durch Manipulation der Eigenschaft CurY kann man die Bänder übereinander darstellen:

Das verantwortliche Script:

PascalScript:

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

Engine.CurY := Engine.CurY - 15;

end;

C++ Script:

void MasterData1OnBeforePrint(TfrxComponent Sender)

{

Engine.CurY = Engine.CurY - 15;

}

Die Methode Engine.NewPage erlaubt die Trennung der Seite an der gewünschten Stelle. Der Druck erfolgt auf der nächsten Seite. In unserem Beispiel trennen wir die Seite nach der zweiten Zeile:

PascalScript:

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);

begin

if <Line> = 2then

Engine.NewPage;

end;

C++ Script:

void MasterData1OnAfterPrint(TfrxComponent Sender)

{

if (<Line> == 2)

Engine.NewPage();

}

Beachten Sie, dass wir es jetzt im Ereignis OnAfterPrint machen, sprich nachdem das Band schon erstellt worden ist. Die Systemvariable Line fügt die korrekte Nummer des Eintrags ein.

Die Methode Engine.NewColumn trennt die Spalten im Multispalten-Report. Nach der letzten Spalte wird eine neue Seite erstellt.


Anker

Anker (anchors) ist eines der Elemente des Hyperlink Systems, welches es erlaubt, durch einen Klick auf ein Objekt im fertigen Report (im Vorschaufenster), auf das verbunde Element zu wechseln.

Anker ist ein spezielles Zeichen, welches über die Methode Engine.AddAnchor gesetzt wird. Der Anker hat einen Namen und ihm entspricht die Nummer und die Position auf der Seite. Um zu einem Anker mit dem angegebenen Namen zu wechseln, kann man in die Eigenschaft URL eines beliebiges Objektes des Reports, die folgende Zeile einfügen:

#NameAnker

èëè

#[NameAnker]

Im letzten Fall wird FastReport den Wert in der eckigen Klammer anzeigen.

Beim Klick auf dieses Objekt, wird man zu der Stelle des Reports weitergeleitet, in der der Anker eingefügt wurde.

Anker sind praktisch beim Erstellen des Kapitels "Inhaltverzeichnis" mit Links zu den entsprechenden Kapiteln. Zeigen wir dies an einem kleinen Beispiel. Hierfür benötigen wir die uns bekannte Tabelle Customer.db.

Unser Report wird zweiseitig (sprich zwei Seiten im Designer). Auf der ersten Seite erstellen wir das "Inhaltverzeichnis" und auf der zweiten die eigentliche Kundenliste. Beim Klick auf eine Zeile im Inhaltsverzeichnis, wird man zum entsprechenden Element des Reports weitergeleitet.

Erste Seite:

In die Eigenschaft URL des Objektes "Text", welcher auf dem Datenband liegt, fügen wir folgende Zeile ein:

#[Customers."Company"]

und stellen die Eigenschaften der Schrift ein: blau und unterstrichen, um das Aussehen des Hyperlinks zu immitieren.

Zweite Seite:

Um den Anker einzufügen, schreiben wir im Script des Bandes MasterData2.OnBeforePrint:

PascalScript:

procedure MasterData2OnBeforePrint(Sender: TfrxComponent);

begin

Engine.AddAnchor(<Customers."Company">);

end;

C++ Script:

void MasterData2OnBeforePrint(TfrxComponent Sender)

{

Engine.AddAnchor(<Customers."Company">);

}

Nun starten wird den Report und vergewissern uns, dass die Hyperlinks funktionieren.

Was man noch erwähnen kann, ist die Funktion Engine.GetAnchorPage. Diese zeigt die Nummer der Seite an, in der der Anker hinzugefügt wurde. Ebenfalls ist diese Funktion wichtig für die Erstellung des "Inhaltsverzeichnisses". Dazu muss im Report Zweipass aktiviert werden.


Anwendung des Objektes Outline

Das Objekt Outline stellt den Reporttree dar, welcher im Vorschaufenster angezeigt werden kann. Beim Klick auf ein Element des Baums wird man auf die damit verbundene Reportseite geleitet. Um mit Outline arbeiten zu können muss man das Script nutzen, weil manche Bänder einen Mechanismus besitzen, der es ihnen erlaubt, den Baum automatisch zu erstellen. Betrachten wir zwei Beispiele der Nutzung von Outline. Einmal mit Hilfe der Bänder und aus dem Script.

Um den Baum automatisch zu erstellen, besitzen fast alle Bänder die Eigenschaft OutlineText in die die Zeile des Ausdrucks eingefügt wird. Der Ausdruck wird berechnet und der Wert wird beim Druck des Bandes in den Baum eingefügt. Die Hierarchie der Elemente im Baum entspricht der, der Bänder im Report. Das heißt im Baum werden Haupt, und untergeordnete Elemente vorhanden sein, die den Haupt und Untergeordneten Bändern im Report entsprechen (z. B. ein Report mit zwei Ebenen oder mit Gruppen). Betrachten wir die Arbeit mit dem Baum am Beispiel des Reportes mit Gruppen, welchen wir vorhin hatten.

Stellen wir die Eigenschaft des Bandes GroupHeader1.OutlineText gleich <Group."Company">. Beim Start sehen wir folgendes:

Beim Klick auf ein beliebiges Element des Baumes, werden wir auf die entsprechende Seite des Reportes geleitet. Das Element wird oben im Fenster angezeigt.

Fügen wir eine zweite Ebene in den Reporttree ein. Hierfür müssen wir die Eigenschaft des Bandes MasterData.OutlineText gleich <Group."OrderNo"> stellen. Der Baum sieht nun wie folgt aus:

Wie man sieht, ist nun die Navigation über die Bestellnummern möglich. Die Hierarchie der Elemente im Baum, entspricht der Hierarchie der Elemente im Report.

Schauen wir uns die Erstellung eines analogen Baumes mit Hilfe eines Scriptes und ohne die Nutzung der Eigenschaft OutlineText. Bereinigen wir die Eigenschaften OutlineText beider Bänder und erstellen zwei Bearbeiter der Ereignisse GroupHeader1.OnBeforePrint und MasterData1.OnBeforePrint:

PascalScript:

procedure GroupHeader1OnBeforePrint(Sender: TfrxComponent);

begin

Outline.LevelRoot;

Outline.AddItem(<Group."Company">);

end;

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);

begin

Outline.AddItem(<Group."OrderNo">);

Outline.LevelUp;

end;

begin

end.

C++ Script:

void GroupHeader1OnBeforePrint(TfrxComponent Sender)

{

Outline.LevelRoot;

Outline.AddItem(<Group."Company">);

}

void MasterData1OnBeforePrint(TfrxComponent Sender)

{

Outline.AddItem(<Group."OrderNo">);

Outline.LevelUp;

}

{

}

Starten wir den Report und vergewissern uns, dass dieser analog dem vorherigen Report ist, in dem der Baum automatisch erstellt wurde. Sehen wir uns nun die Erstellung des Baumes an.

Die Methode Outline.AddItem fügt dem aktuellen Knoten im Baum, einen weiteren untergeordneten hinzu und macht ihn zum aktuellen. Ruft man AddItem ein paar mal auf, so erhält man eine "Treppe" folgender Art

Item1

Item2

Item3

...

Zur Steuerung des aktuellen Elementes dienen "Outline LevelUp" und "LevelRoot". Die erste Methode verschiebt das Element eine Ebene höher. Das Script

Outline.AddItem('Item1');

Outline.AddItem('Item2');

Outline.AddItem('Item3');

Outline.LevelUp;

Outline.AddItem('Item4');

würde folgenden Baum erstellen.

Item1

Item2

Item3

Item4

Sprich, das Element Item4 wird dem Element Item2 untergeordnet. Die Methode LevelRoot verschiebt das aktuelle Element in die Wurzel. Hier ein Beispiel, das Script

Outline.AddItem('Item1');

Outline.AddItem('Item2');

Outline.AddItem('Item3');

Outline.LevelRoot;

Outline.AddItem('Item4');

würde folgenden Baum erstellen

Item1

Item2

Item3

Item4

Nach diesen Erklärungen sollte klar sein wie unser Report funktioniert. Jedesmal beim Druck des Gruppenkopfes wird die Wurzel zum aktuellen Element und der Unternehmensname eingefügt. Danach wird die Liste der Bestellungen gedruckt und jede Bestellung wird als untergeordnetes Element hinzugefügt. Damit die Bestellnummern auf einer Ebene liegen und nicht in Form einer "Treppe" dargestellt werden. verschieben Sie diese im Script eine Ebene höher mit Hilfe von Outline.LevelUp.


Das Ereignis der Seite OnManualBuild

Normalerweise übernimmt die Erstellung des Reports der Kern von FastReport. Dieser führt die Bänder in einer bestimmten Reihenfolge aus und zwar solange es Daten gibt und bildet dadurch den fertigen Report. Manchmal ist es notwendig einen Report zu erstellen, welcher nicht die Standardform besitzt und deswegen nicht vom Kern FastReport gebildet werden kann. In diesem Fall kann man die Möglichkeit nutzen den Report manuell zu erstellen, durch Nutzung des auf der Seite enthaltenen Ereignisses OnManualBuild. Wenn man den Bearbeiter dieses Ereignisses definiert, so übergibt FastReport die Steuerung bei der Erstellung ihm. Gleichzeitig stellt der Kern die auf der Seite enthaltenen Bänder "Gruppenkopf", "Spaltenkopf", "Fuß", "Seitenfuß", "Spaltenfuß" und "Background" dar. Der Kern bearbeitet die Bildung neuer Seiten/Spalten. Die Aufgabe des Bearbeiters des Ereignisses OnManualBuild, ist die Ausführung der Datenbänder und deren Köpfe und Füße in einer bestimmten Reihenfolge.

Der Sinn des Bearbeiters OnManualBuild besteht darin, dem Kern von FastReport die Befehle zu Ausführung bestimmter Bänder zu geben. Alles andere erledigt der Kern selbstständig: die Bildung einer neuen Seite ( wenn die aktuelle endet), die Ausführung von Scripten, usw.

Demonstrieren wir das Ganze am Beispiel deines einfachen Bearbeiters. Der Report enthält zwei Bänder MasterData, diese sind nicht mit Daten verknüpft:

Der Bearbeiter wird diese Bänder je sechs mal ausführen und zwar abwechselnd. Nach sechs Bändern soll eine kleine Lücke sein.

PascalScript:

procedure Page1OnManualBuild(Sender: TfrxComponent);

var

i: Integer;

begin

for i := 1to6do

begin

{ zeigen nacheinander zwei Bänder }

Engine.ShowBand(MasterData1);

Engine.ShowBand(MasterData2);

{ machen eine kleine Lücke }

if i = 3then

Engine.CurY := Engine.CurY + 10;

end;

end;

C++ Script:

void Page1OnManualBuild(TfrxComponent Sender)

{

int i;

for (i = 1; i <= 6; i++)

{

// zeigen nacheinander zwei Bänder

Engine.ShowBand(MasterData1);

Engine.ShowBand(MasterData2);

// machen eine kleine Lücke

if (i == 3)

Engine.CurY = Engine.CurY + 10;

}

}

Das nächste Beispiel wird zwei Gruppen mit Bändern nebeneinander anzeigen.

PascalScript:

procedure Page1OnManualBuild(Sender: TfrxComponent);

var

i, j: Integer;

SaveY: Extended;

begin

SaveY := Engine.CurY;

for j := 1to2do

begin

for i := 1to6do

begin

Engine.ShowBand(MasterData1);

Engine.ShowBand(MasterData2);

if i = 3then

Engine.CurY := Engine.CurY + 10;

end;

Engine.CurY := SaveY;

Engine.CurX := Engine.CurX + 200;

end;

end;

C++Script:

void Page1OnManualBuild(TfrxComponent Sender)

{

int i, j;

Extended SaveY;

SaveY = Engine.CurY;

for (j = 1; j <= 2; j++)

{

for (i = 1; i <= 6; i++)

{

Engine.ShowBand(MasterData1);

Engine.ShowBand(MasterData2);

if (i == 3)

Engine.CurY = Engine.CurY + 10;

}

Engine.CurY = SaveY;

Engine.CurX = Engine.CurX + 200;

}

}

Wie man an diesen Beispielen sehen kann, steuerten wir nur den Output der Datenbänder. Alle anderen Bänder (z. B. "Seitenkopf" in unserem Beispiel) wurden automatisch gedruckt.

Jetzt werden wir einen Report "Kundenliste" erstellen (diesen haben wir schon ein paar mal erstellt), wir nutzten dazu das Ereignis OnManualBuild. Hier verknüpfen wir das Datenband mit der Datenquelle.

Der Script des Ereignisses ist folgender:

PascalScript:

procedure Page1OnManualBuild(Sender: TfrxComponent);

var

DataSet: TfrxDataSet;

begin

DataSet := MasterData1.DataSet;

DataSet.First;

whilenot DataSet.Eof do

begin

Engine.ShowBand(MasterData1);

DataSet.Next;

end;

end;

C++Script:

void Page1OnManualBuild(TfrxComponent Sender)

{

TfrxDataSet DataSet;

DataSet = MasterData1.DataSet;

DataSet.First();

while (!DataSet.Eof)

{

Engine.ShowBand(MasterData1);

DataSet.Next();

}

}

Wenn wir den Report nun starten, sehen wir, das das Resultat sich nicht vom Standardreport unterscheidet. Beachten Sie wie der Link zu Dataset funktioniert. In unserem Beispiel haben wir das Band mit der Datenquelle verlinkt, deswegen wird die Zeile

DataSet := MasterData1.DataSet;

uns mit der Datenquelle verbinden. Den Link zu der benötigten Datenquelle kann man auch so erhalten:

DataSet := Report.GetDataSet('Customers');

Selbstverständlich muss die uns interessierende Quelle in dem Report hinzugefügt werden in "Report|Daten...".


Das Erstellen von Objekten im Script

Durch Nutzung des Scripts kann man dem Report neue Objekte hinzufügen. Zeigen wir das an einem kleinen Beispiel. Wir erstellen einen neuen Report und fügen in die Hauptprozedur des Scripts folgendes ein:

PascalScript:

var

Band: TfrxReportTitle;

Memo: TfrxMemoView;

begin

Band := TfrxReportTitle.Create(Page1);

Band.Height := 20;

Memo := TfrxMemoView.Create(Band);

Memo.SetBounds(10, 0, 100, 20);

Memo.Text := 'This memo is created in code';

end.

C++ Script:

TfrxReportTitle Band;

TfrxMemoView Memo;

{

Band = TfrxReportTitle.Create(Page1);

Band.Height = 20;

Memo = TfrxMemoView.Create(Band);

Memo.SetBounds(10, 0, 100, 20);

Memo.Text = "This memo is created in code";

}

Wir starten den Report:

Beachten Sie das die Objekte des Reports nicht zerstört werden müssen. Dies ist nicht notwendig, da FastReport diese automatisch zerstört nachdem der Report fertig ist.


Kreuztabellen (Cross-tab Objekt)

Dieser Art des Report hat eine Tabellenstruktur, d.h. er besteht aus Zeilen und Spalten, wobei man nicht genau weiß wieviele Zeilen und Spalten enthalten sein werden. Deswegen wächst der Report nicht nur nach unten, wie die schon betrachteten Reporttypen, sondern auch zur Seite. Ein typisches Beispiel eines solchen Reportes sieht so aus:

Schauen wir uns die Elemente der Tabelle an:

In der Grafik sehen wir eine Tabelle mit zwei Zeilen und vier Spalten. Hier stellen a und b, die Zeilenbezeichnungen, 1,2,3,4 die Spaltenbezeichnungen und a1...a4, b1...b4 usw. die einzelnen Zellen dar. Um solch einen Report erstellen zu können benötigen wir nur einen Datensatz (die Anfrage oder Tabelle), welcher drei Felder und folgende Daten enthält:

a1a1

a2a2

a3a3

a4a4

b1b1

b2b2

b3b3

b4b4

Wie man sieht, enthält das erste Feld die Zeilennummer, das zweite die Spaltennummer und das dritte den Inhalt der Überkreuzung (Zeilen-, und Spaltennummer). Beim Erstellen des Reports konstruiert FastReport die Tabelle im Speicher und füllt diese mit Daten. Sollten die eingegebenen Zeilen-, Spaltennummern nicht vorhanden sein, so wird die Tabelle dynamisch vergrößert.

Die Spalten können mehr als nur eine Ebene haben. Betrachten wir folgendes Beispiel:

Hier besteht die Spaltennummer (Index) aus zwei Ebenen. Dieser Report benötigt folgende Daten:

a101a10.1

a102a10.2

a201a20.1

a202a20.2

b101b10.1

b102b10.2

b201b20.1

b202b20.2

Hier enthält das erste Feld wie vorhin die Zeilenbezeichnung, das zweite und dritte Feld den Spaltenindex. Das letzte Feld enhält den Inhalt der Zellen. Um zu verstehen wie FastReport eine Tabelle mit komplexen Spaltenbezeichnungen erstellt, betrachten wir folgende Grafik:

Unsere Tabelle sah vor dem Bearbeiten ungefähr so aus. Während der Bearbeitung verbindet FastReport die Spaltenköpfe und mit den Werten der entsprechenden Ebene.

Das folgende Element der Tabelle zeigt Zwischenergebnisse und Endergebnisse an, wie die folgende Grafik zeigt:

Dieser Report wird mit denselben Datenerstellt wie der vorhergehende. Die grauen Spalten in der Grafik werden automatisch berechnet.


Die Erstellung einer Kreuztabelle (Cross-tab Objekt)

Gehen wir von der Theorie zur Praxis über. Erstellen wir eine einfache Kreuztabelle. Diese soll das Gehalt der Mitarbeiter für die letzten vier Jahre anzeigen. Wir benötigen dafür die Tabelle "crosstest", welche im Ordner FastReport DEMOS\MAIN enthalten ist. Die Tabelle enthält folgende Daten:

NameYearSalary

Ann19993300

Ben20022000

….

Wie üblich erstellen wir ein neues Projekt in Delphi. In die Form fügen wir die Komponenten TTable, TfrxDBDataSet, TfrxReport ein und stellen diese wie folgt ein:

Table1:

DatabaseName = 'c:\Program Files\FastReports\FastReport 3\Demos\Main'

TableName = ' crosstest.db'

Selbstverständlich muss der Wert der Eigenschaft DatabaseName, dem Pfad zu Ihrem Ordner FastReport entsprechen!

frxDBDataSet1:

DataSet = Table1

UserName = 'SimpleCross'

Um Kreuztabellen konstruieren zu können, müssen Sie die Komponente TfrxCrossObject [image] aus dem Satz der FastReport Komponenten verwenden. Legen Sie diese einfach auf die Seite, man muss nichts einstellen. In die Liste "uses" Ihres Projektes wird das Modul frxCross hinzugefügt, dieses besitzt alle benötigten Funktionalitäten.

Gehen wir in den Reportdesigner. Als erstes verknüpfen wir die Datenquelle im Menü "Report|Daten...". Auf das Blatt legen wir nun das Objekt "Datenbank Cross-tab Objekt" 159 :

Alle Einstellungen werden mit dem Editor des Objektes gemacht. Diesen rufen wir über den Doppelklick auf:

screenshot - 18.05.2009 , 16_56_20

Die Zahlen bedeuten:

1 Drop-Down-Leste der vorhandenen Datenquellen;

2 die Liste der Felder in der Datenquelle; Diese können nach 3, 4, 5 rübergezogen werden;

3 die Liste der Felder, die die Kopfzeile darstellen werden;

4 die Liste der Felder, die die Spaltenüberschriften darstellen werden;

5 die Liste der Felder, die die Zellen der Tabellen darstellen werden;

6 hier wird die Struktur der zukünftigen Tabelle angezeigt;

7 die Objekteinstellungen.

Wie man sieht wird hier nur mit der Maus gearbeitet. In unserem Fall werden nur die Felder aus Liste 2 in die Listen 3, 4, 5 rübergezogen. Mehr machen wir fürs erste nicht und schließen den Editor mit OK. Jetzt sehen wir, dass das Objekt diese Struktur auf der Reportseite annimmt:

Wenn wir den Report nun starten, erscheint folgendes:


Aussehen der Tabelle

Fahren wir fort das Objekt näher kennenzulernen. Als erstes sollten wir die Farbe der Überschriften ändern und die englischen Bezeichnungen ins deutsche übersetzen. Dies ist ganz einfach. Um die Farbe zu wechseln, klicken Sie auf "Year", "Name", "Grand Total" und wählen die benötigte Farbe mit [image] auf dem Instrumentenpanell aus. Folgendes sollte passieren:

Man kann auich vorgefertigte Stile verwenden. Hierfür gehen Sie in den Objekteditor und klicken auf den Button "Stil auswählen":

Um den Text der Überschriften zu ändern, klicken Sie doppelt auf die Zelle. Es erscheint der uns bekannte Texteditor, hier wählen wir den gewünschten Text. Danach sieht unser Objekt so aus:

Jetzt müssen wir nur noch das Format eingeben, in welchem die Werte angezeigt werden sollen. Dazu klicken Sie auf die erste Zelle (wo sich Year und Name kreuzen) und rufen das Kontextmenü mit einem Rechtsklick der Maus. Dann wählen Sie "Formatieren...".

Hier wählen Sie das benötigte Format:


Die Verwendung von Funktionen

In unserem Beispiel haben wir in der Zeile "Summe" das Gehalt der letzten vier Jahre. Außer der Summe kann man folgende Funktionen verwenden:

MIN Minimaler Wert

MAX maximaler Wert

AVG Mittelwert

COUNT Anzahl der Werte

Lassen Sie uns die Funktion Min ausprobieren. Öffnen wir den Editor des Cross-Tab Objektes und klicken auf das Feld "Salary" im Bereich der Drop-Down-Liste.

Wählen Sie im Menü die Funktion MIN aus. Jetzt können Sie den Text der Zelle von "Summe" in "Minimum" abändern. Der Report sieht nun wie folgt aus:


Sortieren der Werte

Standardmäßig sind die Werte der Zeilen und Spalten aufsteigend sortiert. Handelt es sich dabei um Zahlen so werden diese der Höhe nach sortiert. Bei Text verwendet man die alphabetische Reihenfolge. Das Sortieren kann für jede Zeile und Spalte separat eingestellt werden. Folgende Arten der Sortierung sind möglich: aufsteigend, absteigend oder keine Sortierung. Im letzten Fall werden die Werte der Zeilen/Spalten so angezeigt, wie sie eingetragen werden.

Ändern wir die Sortierung der Spalten in unserem Beispiel. Die Jahre sollen absteigend sortiert werden. Wir gehen in den Editor des Cross-tab Objektes und wählen das Spaltenelement "Year" aus und klicken, um die Sortierung zu ändern, auf den Pfeil nach unten:

Danach schließen wir den Editor und starten den Report. Dieser sieht jetzt wie folgt aus:


Tabelle mit zusammengesetzten Kopfzeilen

Unser vorhergehendes Beispiel enthielt nur einen Wert im Spaltenkopf bzw. Zeilenkopf. Betrachten wir nun am Beispiel, die Erstellung einer Tabelle welche zusammengesetzte Kopfzeilen besitzt (zwei und mehr Überschriften). Die Tabelle enthält folgende Daten:

NameYearMonthDaysSalary

Ann1999231000

Ben2002152000

Es sind zwei Felder hinzugekommen Month und Days. Diese enthalten die Monatsnummer und die Tage an denen gearbeitet worden ist. Mit diesen Daten kann man schon einige Reporte erstellen z. B. das Gehalt der Mitarbeiter für die Jahre mit der Monatseinteilung.

Welches Aussehen soll unser Report besitzen? Er soll ähnlich dem Report aus dem vorherigen Beispiel sein, aber zusätzlich eine Monatseinteilung der Jahre besitzen. Deswegen stellen wir das "Cross-tab Objekt" auf die selbe Weise ein und fügen in den Spaltenkopf das Feld "Month" hinzu:

screenshot - 18.05.2009 , 17_04_37

Falls gewünscht, kann man die Farben ändern und die englischen Ausdrücke "Grand total" und "Total" durch "Summe" ersetzen. Wir erhalten folgenden Report:

Beachten Sie, dass FastReport automatisch eine Spalte mit der Zwischensumme eines jeden Jahres eingefügt hat. Diese Option ist über den Editor des Cross-tab Objekts erreichbar. Man markiert das Element "Year" in der Spalte und setzt/entfernt das Häkchen bei "Zwischensumme":

screenshot - 18.05.2009 , 17_05_52

Ebenfalls kann man erwähnen, dass das Zwischenergebnis beim untersten Element der Spalte fehlt (auch falls es das einzige Element ist). In unserem Beispiel sind die Zwischenergebnisse nach jedem Monat nicht nötig.

Betrachten wir eine weitere Möglcihkeit der Darstellung der Zwischenergebnisse. In unserem Beispiel wäre es besser statt "Summe" die Überschrift "Summe für 2000". Dies ist einfach: markieren Sie das gewünschte Objekt und schreiben Sie folgenden Text rein:

Summe für [Value]

Bei der Erstellung wird der Ausdruck "Value" durch den Wert aus der darüberliegenden Kopfzeile ersetzt:


Zellengröße

In der vorhergehenden Grafik sieht man, dass FastReport automatisch die Breite der Zellen anpasst und zwar so, das die längsten Zeilen reinpassen. In manchen Fällen ist das nicht erwünscht, da bei sehr langen Zeilen das Aussehen der Tabelle darunter leidet. Was kann man in solch einen Fall machen? Betrachten wir drei Beispiele der Steuerung der Größenanpassung der Zellen.

Die erste Variante ist es, einen Bruch der Zeile in den Text des Objektes mit den Zwischenergebnissen einzusetzen, d.h. eine Zeile einfügen:

Summe

für [Value]

Wir sehen die Tabelle sieht jetzt viel besser aus:

Diese Methode kann man aber auch nicht immer verwenden, da die Werte der Zeilen/Spalten auch zu lang sein können und die Trennung nicht im nachhinein manuell eingefügt werden kann. Die zweite Methode, ist die Nutzung der Eigenschaften MinWidth und MaxWidth (minimale und maximale Breite der Zellen selbst). Beide Eigenschaften sind nur über den Objektinspektor erreichbar.

Standardmäßig ist der Wert MinWidth = 0 und MaxWidth = 200. Dies ist in den meisten Fällen ausreichend. Sie können diese jedoch verändern, falls an die Tabellen besondere Ansprüche gestellt werden.

In unserem Beispiel kann man MinWidth = MaxWidth = 50 eingeben, d.h. die Breite der Zelle soll in jedem Fall 50 Pixel betragen. Ist die Zelle kleiner, so wird sie auf diese Breite gedehnt. Ist sie größer, so richtet sie sich nach MaxWidth aus und der Text wird mit einzelnen Wörtern übertragen. Was so aussieht:

Jetzt die dritte Methode, in welcher man selbstständig die benötigten Maße einstellt. Hierfür deaktivieren wir die Eigenschaft "Größe automatisch" im Objekteditor (AutoSize im Inspektor). Jetzt können die Maße der Elemente in der Tabelle manuell verändert werden. Dazu ziehen Sie die Maus über die einzelnen Elemente, der Mauszeiger ändert dabei seine Form und erlaubt die Höhe und Breite zu ändern. Hier ein Beispiel dazu:

Beachten Sie, dass das Deaktivieren der Eigenschaft "Größe automatisch" dazu führt, dass die Maße der Zellen nicht mehr automatisch angepasst werden. Falls Sie die Breite der Zelle zu klein einstellen, so wird der Text einfach abgeschnitten:

Sollte dies passieren, erhöhen Sie die Maße der betroffenen Zellen.


Farbliche Hervorhebung der Werte

Oft ist es notwendig bestimmte Werte in einer anderen Farbe der Schrift oder des Hintergrunds darzustellen. Wir hatten schon eine ähnliche Aufgabe, betrachtet am Beispiel des Reportes mit Gruppen. Damals verwendeten wir das Hervorheben unter bestimmten Bedingungen des Objektes "Text". Dies wollen wir auch jetzt anwenden.

Betrachten wir das Hervorheben an unserem Beispiel. Gehen wir davon aus das ein Wert über 3000 in roter Schrift dargestellt werden muss. Wir klicken auf das Objekt das die Tabellenzelle darstellt und drücken auf den Button [image] auf den Instrumentenpanell. Es öffnet sich der Editor der Hervorhebung und hier trägt man folgende Bedingung ein:

Value > 3000

screenshot - 18.05.2009 , 17_10_33

Mehr braucht man nicht. Schließen wir den Editor mit OK und starten den Report:

Falls nötig, kann man auf diese Weise die Spalten-/Zeilensummen hervorheben.


Steuerung der Kreuztabelle aus dem Script

Falls die visuellen Möglichkeiten der Tabelleneinstellungen nicht ausreichen, kann man das Script nutzen, um Feineinstellungen des Tabellenäußeren vorzunehmen. Das "Cross-tab Objekt" besitzt folgende Ereignisse:

Ereignis Beschreibung

OnAfterPrint Ereignis wird nach dem Druck der Tabelle aufgerufen.

OnBeforePrint Ereignis wird vor dem Druck der Tabelle aufgerufen.

OnCalcHeight Ereignis wird vor dem Berechnen der Zeilenhöhe der Tabelle aufgerufen. Der Bearbeiter des Ereignisses gibt die eingegebene Höhe wieder oder 0 um die Zeile zu verbergen.

OnCalcWidth Ereignis wird vor dem Berechnen der Spaltenbreite der Tabelle aufgerufen. Der Bearbeiter des Ereignisses gibt die eingegebene Breite wieder oder 0 um die Spalte zu verbergen.

OnPrintCell Ereignis wird vor dem Anzeigen der Zellen der Tabelle aufgerufen. Der Bearbeiter kann das Format und den Inhalt ändern.

OnPrintColumnHeader Ereignis wird vor dem Anzeigen der Spaltenköpfe der Tabelle aufgerufen. Der Bearbeiter kann das Format und den Inhalt der Spaltenköpfe ändern.

OnPrintRowHeader Ereignis wird vor dem Anzeigen der Zeilenköpfe der Tabelle aufgerufen. Der Bearbeiter kann das Format und den Inhalt der Zeilenköpfe ändern.

In den Ereignissen kann man folgende Methoden des "Cross-tab Objektes verwenden":

Methode Beschreibung

function ColCount: Integer Zählt die Anzahl der Spalten in der Tabelle.

function RowCount: Integer Zählt die Anzahl der Zeilen in der Tabelle.

function IsGrandTotalColumn(Index: Integer): Boolean Zeigt True an, falls die angegebene Spalte eine Summenspalte ist.

function IsGrandTotalRow(Index: Integer): Boolean Zeigt True an, falls die angegebene Zeile eine Summenzeile ist.

function IsTotalColumn(Index: Integer): Boolean Zeigt True an, falls die angegebene Spalte eine Spalte mit Zwischensummen ist.

function IsTotalRow(Index: Integer): Boolean Zeigt True an, falls die angegebene Zeile eine Zeile mit Zwischensummen ist.

procedure AddValue(const Rows, Columns, Cells:arrayof Variant) Fügt einen Wert in die Tabelle ein.

Betrachten wir am Beispiel, wie man den Hintergrund der dritten Spalte hervorheben kann (in unserem Beispiel sind es die Daten des November 1999). Wir markieren die Kreuztabelle und erstellen den Bearbeiter des Ereignisses OnPrintCell:

Pascal script:

procedure Cross1OnPrintCell(Memo: TfrxMemoView;

RowIndex, ColumnIndex, CellIndex: Integer;

RowValues, ColumnValues, Value: Variant);

begin

if ColumnIndex = 2then

Memo.Color := clRed;

end;

C++ Script:

void Cross1OnPrintCell(

TfrxMemoView Memo,

int RowIndex,

int ColumnIndex,

int CellIndex,

Variant RowValues,

Variant ColumnValues,

Variant Value)

{

if (ColumnIndex == 2) { Memo.Color = clRed; }

}

Wir erhalten folgendes Ergebnis:

Um den Spaltenkopf hervorzuheben, erstellen wir einen Bearbeiter des Ereignisses OnPrintColumnHeader:

Pascal script:

procedure Cross1OnPrintColumnHeader(Memo: TfrxMemoView;

HeaderIndexes, HeaderValues, Value: Variant);

begin

if (VarToStr(HeaderValues[0]) = '1999') and

(VarToStr(HeaderValues[1]) = '11') then

Memo.Color := clRed;

end;

C++ Script:

void Cross1OnPrintColumnHeader(

TfrxMemoView Memo,

Variant HeaderIndexes,

Variant HeaderValues,

Variant Value)

{

if ((VarToStr(HeaderValues[0]) == "1999") &&

(VarToStr(HeaderValues[1]) == "11"))

{

Memo.Color = clRed;

}

}

Das Resultat:

Klären wir die Arbeitsweise der Scripte. Der Bearbeiter des Ereignisses OnPrintCell wird vor dem Druck der Zelle, welche in der Tabelle ist, aufgerufen. Beim Druck der Zellen der Spaltenköpfe der Tabelle werden die Bearbeiter OnPrintColumnHeader oder OnPrintRowHeader aufgerufen. Dazu wird in den Bearbeiter OnPrintCell ein Link zum Objekt "Text" erstellt. Dieser stellt die Zellen der Tabelle (Parameter Memo) und die Adresse der Zellen in zwei Varianten dar: Zeilen-, Spalten-, Zellennummer (die letzte aktuell, falls Sie in der Tabelle Zellen mit mehreren Ebenen haben) in Parametern RowIndex, ColumnIndex, CellIndex entsprechend. Die zweite Variante der "Adresse", sind die Parameter RowValues und ColumnValues. Das Parameter Values stellt den Inhalt der Zelle dar.

Um eine "Adresse" zu spezifizieren, können Sie sowohl die erste Variante (RowIndex, ColumnIndex), als auch die zweite Variante (RowValues, ColumnValues) verwenden. Diese ist in unserem Beispiel besser. Wir wollten in unserem Fall die dritte Spalte hervorheben, deswegen analysieren wir am besten die erste Variante. Da die Nummerierung der Spalten und Zeilen bei 0 beginnt, hilft die Überprüfung ColumnIndex = 2 uns, die dritte Spalte zu ermitteln. Man kann auch anders vorgehen und die Spalte anhand der Daten ermitteln (wir benötigen den 11 Monat 1999):

Pascal script:

procedure Cross1OnPrintCell(Memo: TfrxMemoView;

RowIndex, ColumnIndex, CellIndex: Integer;

RowValues, ColumnValues, Value: Variant);

begin

if (VarToStr(ColumnValues[0]) = '1999') and

(VarToStr(ColumnValues[1]) = '11') then

Memo.Color := clRed;

end;

C++ Script:

void Cross1OnPrintCell(

TfrxMemoView Memo,

int RowIndex,

int ColumnIndex,

int CellIndex,

Variant RowValues,

Variant ColumnValues,

Variant Value)

{

if ((VarToStr(ColumnValues[0]) == "1999") &&

(VarToStr(ColumnValues[1]) == "11"))

{

Memo.Color = clRed;

}

}

Die Werte, die in den Parametern RowValues und ColumnValues sind Reihen des Types "Variant" mit einer Nullbasis. Das Nullelement ist der Wert der obersten Ebene im Tabellenkopf, das erste Element der Wert der nächsten Ebene usw. In unserem Fall ist ColumnValues[0] die Jahre und ColumnValues[1] die Monate.

Wozu benötigt man VarToStr? Dies garantiert die Fehlerfreiheit bei der Konvertierung der Typen. Bei Operationen des Typs Variant versucht FastReport die Zeilen automatisch im Format "Zahl" darzustellen. In unserem Fall würde das zu einem Fehler führen, wenn die Werte der Spalten 'Total' und 'Grand Total' angezeigt werden sollen.

Der Bearbeiter des Ereignisses OnPrintColumnHeader wird beim Druck der Zellen des Spaltenkopfes aufgerufen. Die Auswahl der Parameter ist ähnlich der Bearbeiter OnPrintCell, hier jedoch wird die "Adresse" der Zelle (Parameter HeaderIndexes, HeaderValues) anders transferiert. Der Parameter HeaderValues zeigt dieselben Werte wie die Parameter ColumnValues und RowValues im Bearbeiter OnPrintCell. Der Parameter HeaderIndexes ist ebenfalls eine Reihe des Types Variant und enthält die "Adresse" der Zelle des Kopfes in einer anderen Form. Das Nullelement ist die Reihennummer der obersten Ebene, das erste Element die Nummer der nächsten Ebene usw. Das Prinzip der Nummerierung der Zellen wird verständlich, wenn man die Grafik betrachtet:

In unserem Beispiel ist es einfacher die Werte HeaderValues zu analysieren, aber man kann auch den folgenden Bearbeiter schreiben:

Pascal script:

procedure Cross1OnPrintColumnHeader(Memo: TfrxMemoView;

HeaderIndexes, HeaderValues, Value: Variant);

begin

if (HeaderIndexes[0] = 0) and (HeaderIndexes[1] = 2) then

Memo.Color := clRed;

end;

C++ Script:

void Cross1OnPrintColumnHeader(

TfrxMemoView Memo,

Variant HeaderIndexes,

Variant HeaderValues,

Variant Value)

{

if ((HeaderIndexes[0] == 0) && (HeaderIndexes[1] == 2)) { Memo.Color = clRed; }

}

Mit Hilfe der Bearbeiter der Ereignisse OnCalcWidth und OnCalcHeight kann man die Breite und Höhe der Zeilen/Spalten steuern. Zeigen wir das an einem Beispiel: wir vergrößern die Breite der Spalte, welche 11 Monat 1999 entspricht. Hierfür erstellen wir Bearbeiter des Ereignisses OnCalcWidth:

Pascal script:

procedure Cross1OnCalcWidth(ColumnIndex: Integer;

ColumnValues: Variant; var Width: Extended);

begin

if (VarToStr(ColumnValues[0]) = '1999') and

(VarToStr(ColumnValues[1]) = '11') then

Width := 100;

end;

C++ Script:

void Cross1OnCalcWidth(

int ColumnIndex,

variant ColumnValues,

Extended &Width)

{

if ((VarToStr(ColumnValues[0]) == "1999") &&

(VarToStr(ColumnValues[1]) = "11"))

{

Width = 100;

}

}

Das Resultat:

Um die Spalte zu verbergen, reicht es aus Width := 0 einzustellen. Beachten Sie, dass die Summen nicht neu berechnet werden, da die Matrix schon mit Werten gefüllt worden ist.


Farbliche Hervorhebung der Werte

The user can adjust width and height of the tables rows and columns using the "OnCalcWidth" and "OnCalcHeight:" events handlers. Let us show how to increase width of the column, which corresponds to the 11th month of 1999 by the following example. To do this, create the "OnCalcWidth" events handler:

Pascal script:

procedure Cross1OnCalcWidth(ColumnIndex: Integer;

ColumnValues: Variant; var Width: Extended);

begin

if (VarToStr(ColumnValues[0]) = '1999') and

(VarToStr(ColumnValues[1]) = '11') then

Width := 100;

end;

C++ Script:

void Cross1OnCalcWidth(

int ColumnIndex,

variant ColumnValues,

Extended &Width)

{

if ((VarToStr(ColumnValues[0]) == "1999") &&

(VarToStr(ColumnValues[1]) = "11"))

{

Width = 100;

}

}

And the result would appear as follows:

In our example, to hide a column, it is enough to return the Width := 0. Note, that the sums are not recalculated at the same time, since the matrix is already full of values at this time.


Manuelles Ausfüllen der Tabelle

Wie wir bereits wissen, gibt es 2 Arten der Kreuztabelle: die Objekte "Datenbank Cross-tab Objekt" und "Cross-tab Objekt" Bis jetzt haben wir nur mit dem ersten Objekt gearbeitet. Dieses wird an die Daten der DB-Tabelle geknüpft und wird beim Start des Reports automatisch mit Daten gefüllt. Betrachten wir nun das zweite Objekt "Cross-tab Objekt".

Dieses Objekt ist nicht mit Daten der Datenbank verknüpft. Sie müssen diese selber in die Tabelle eintragen. Das Objekt hat einen ähnlichen Editor, hier wählen Sie aber die Anzahl Zeilen, der Spalten und der Zellen:

screenshot - 18.05.2009 , 17_15_14

Betrachten wir die Arbeit mit dem Objekt "Cross-tab" am Beispiel. Wir legen auf das Blatt des Reportes das Objekt und stellen die Eigenschaften wie in der folgenden Grafik ein: die Anzahl der Ebenen im Zeilenkopf 1, im Spaltenkopf 2, in Zellen 1. Um die Tabelle mit Daten zu füllen, nutzen wir den Bearbeiter des Ereignisses OnBeforePrint des Objektes:

PascalScript:

procedure Cross1OnBeforePrint(Sender: TfrxComponent);

begin

with Cross1 do

begin

AddValue(['Ann'], [2001, 2], [1500]);

AddValue(['Ann'], [2001, 3], [1600]);

AddValue(['Ann'], [2002, 1], [1700]);

AddValue(['Ben'], [2002, 1], [2000]);

AddValue(['Den'], [2001, 1], [4000]);

AddValue(['Den'], [2001, 2], [4100]);

end;

end;

C++ Script:

void Cross1OnBeforePrint(TfrxComponent Sender)

{

Cross1.AddValue(["Ann"], [2001, 2], [1500]);

Cross1.AddValue(["Ann"], [2001, 3], [1600]);

Cross1.AddValue(["Ann"], [2002, 1], [1700]);

Cross1.AddValue(["Ben"], [2002, 1], [2000]);

Cross1.AddValue(["Den"], [2001, 1], [4000]);

Cross1.AddValue(["Den"], [2001, 2], [4100]);

}

Im Bearbeiter ist es notwendig die benötigten Daten mit Hilfe der Methode TfrxCrossView.AddValue einzufügen. Diese Methode besitzt drei Parameter und jedes ist eine Reihe des Types Variant. Der erste Parameter, ist der Wert der Zeile, der zweite der Wert der Spalte und der dritte stellt den Wert der Zellen dar. Beachten Sie, dass die Anzahl der Werte in jeder Reihe der Einstellungen des Objektes entsprechen muss! In unserem Beispiel besitzt das Objekt eine Ebene im Kopf der Zeilen, zwei Ebenen im Kopf der Spalten und eine Ebene in den Zellen. Entsprechend fügen wir in AddValue einen Wert für die Zeilen, zwei Werte für die Spalten und einen Wert für die Zellen hinzu.

Starten wir den Report, sehen wir nun folgendes:

Die Methode AddValue kann man genauso verwenden für das Objekt " Datenbank Cross-tab Objekt". Dadurch kann man in die Kreuztabelle Daten eintragen, die nicht in der verknüpften Datenquelle vorhanden sind. Sind die Daten vorhanden, so werden diese hinzuaddiert.


Hinzufügen von Objekten in die Tabelle

In die Tabelle können zusätzliche Objekte eingefügt werden. Wozu braucht man das? Man kann z. B. bestimmte Werte in den Zellen damit grafisch hervorheben. Zwar kann man dazu auch das Hervorheben unter bestimmten Bedingungen verwenden, aber das reicht nicht immer aus.

Betrachten wir ein Beispiel. Jeder Wert in den Zellen soll zusätzlich einen kleinen Balken erhalten, welcher die Höhe des Gehaltes anzeigt. Wir erhalten folgendes:

In rot werden Werte unter 100 angezeigt, in gelb die weniger 3000 und in grün die Werte über 3000.

Fangen wir mit der Erstellung des Reports an. Legen wir das Objekt "Datenbank Cross-tab Objekt" auf das Blatt und stellen es wie folgt ein:

screenshot - 18.05.2009 , 17_16_48

Jetzt stellen wir das Erscheinungsbild ein. Hierzu wählen wir eine Farbe für die Köpfe, ändern die englischen Bezeichnungen in deutsche (Gehalt, Mitarbeiter, Jahr, Summe) und deaktivieren die Eigenschaft "Größe automatisch" (AutoSize). Als Resultat erhalten wir folgende Tabelle:

Nun fügen wir die Elemente in die Tabelle ein, die den Balken darstellen sollen. Wählen Sie "Zeichnen/Rechteck" im Objektenpanell aus und legen diesen in die Zelle:

screenshot - 18.05.2009 , 17_20_22

Jetzt erstellen wir ein Script, das die nötige Anzahl der Rechtecke einfügt und diese in der gewünschten Farbe anzeigt. Wählen Sie die Zelle an und erstellen einen Bearbeiter des Ereignisses OnBeforePrint:

Im Bearbeiter schreiben wir folgendes (beachten Sie Objektbezeichnungen, die Objekte in der Tabelle haben genau die Namen):

procedure DBCross1Cell0OnBeforePrint(Sender: TfrxComponent);

begin

// Value - aktueller Wert der Zelle

if Value < 100then

begin

// das ist das erste Objekt

DBCross1Object1.Color := clMaroon; // rot

// das ist das zweite Objekt

DBCross1Object2.Color := clWhite;

// das ist das dritte Objekt

DBCross1Object3.Color := clWhite;

end

elseif Value < 3000then

begin

DBCross1Object1.Color := $00CCFF; // gelb

DBCross1Object2.Color := $00CCFF;

DBCross1Object3.Color := clWhite;

end

else

begin

DBCross1Object1.Color := $00CC98; // grün

DBCross1Object2.Color := $00CC98;

DBCross1Object3.Color := $00CC98;

end;

end;

Wenn wir den Report nun starten, sehen wir die am Anfang gezeigte Tabelle.


Weitere nützliche Einstellungen

Betrachten wir weitere Tabelleneinstellungen, die uns nützlich sein können. Alle diese Einstellungen sind im Editor des Objektes erreichbar.

screenshot - 18.05.2009 , 17_22_43

Die obere Gruppe der Einstellungen zeigt oder verbirgt verschiedene Elemente der Tabelle.

Die Option "Größe automatisch" haben wir schon kennen gelernt. Diese deaktiviert die automatische Anpassung der Tabelle und erlaubt die manuelle Einstellung.

Die Option "Umrandung der Zellen" fügt äußere Rahmenlinien den Zellen hinzu. Man kann damit einen Rahmen um den kompletten Zellenblock machen (nicht um die Tabelle!). Hier ein Beispiel (alle Rahmenlinien, bis auf den äußeren Rahmen, sind deaktiviert):

Die Option "Druckrichtung erst nach unten, dann gegenüber" steuert die Verteilung einer großen Tabelle auf mehrere Seiten. Hier ein Beispiel einmal mit der aktivierten Option und einmal ohne (beachten Sie die Nummerierung der Seiten).

1) " Druckrichtung erst nach unten, dann gegenüber " - aktiviert:

2) " Druckrichtung erst nach unten, dann gegenüber " - deaktiviert:

Die Option "Kopf auf neuer Seite wiederholen" bestimmt, ob die Köpfe der Tabelle auf jeder neuen Seite der Tabelle gedruckt werden sollen.

Die Option "Zellen Seite an Seite" wird verwendet, wenn in der Zelle mehrere Ebenen vorhanden sind. Die Option bestimmt, ob die Zellen nebeneinander gedruckt werden sollen (in einer Zeile) oder untereinander.

Die Option "Verbinde gleiche Zellen" erlaubt zwei oder mehr Zellen in einer Zeile zusammenzufassen, wenn sie dieselben Werte haben. Hier ein Beispiel:

Weitere Einstellungen sind im Objektinspektor enthalten:

- AddWidth, AddHeight der freie Platz der hinzugefügt wird beim Berechnen der Zellenmaße. Diese Eigenschaft vergrößert die Zelle auf die gewünschten Maße. Die Eigenschaft AutoSize muss gleich True sein;

- NextCross Hinweis zum nächstem "Cross-tab Objekt", wird rechts neben den Tabellendaten angezeigt;

- NextCrossGap der Abstand zwischen zwei Tabellen.


Grafiken, Diagramme

FastReport erlaubt es in den Report Diagramme einzufügen.

Betrachten wir die Erstellung eines einfachen Diagramms am Beispiel. Dazu benötigen wir die Tabelle country aus dem Komplekt der Demonstrationsdatenbank DBDEMOS. Die Tabelle enthält Daten über ein Land, dessen Fläche und Bevölkerung.

NameAreaPopulation

Argentina2 777 81532 300 003

Bolivia1 098 5757 300 000

….

Erstellen wir ein neues Projekt in Delphi. Wir legen auf die Form die Komponenten TTable, TfrxDBDataSet, TfrxReport und stellen diese wie folgt ein:

Table1:

DatabaseName = 'DBDEMOS'

TableName = 'coutry.db'

frxDBDataSet1:

DataSet = Table1

UserName = 'Country'

Wir öffnen den Reportdesigner und verknüpfen ihn mit der Datenquelle im Fenster "Report|Daten…". Auf das Blatt legen wir das Objekt "Diagram" embim2. Die Maße des Objektes setzen wir auf 18õ8 cm. Um die Einstellungen des Objektes verändern zu können, rufen wir den Editor mit einem Doppelklick der Maus auf.

screenshot - 18.05.2009 , 17_55_50

Die Zahlen in der Grafik bedeuten:

1 Diagrammstruktur. Das Diagramm kann eine oder mehrere Serien (series) enthalten.

2 Objektinspektor. Dieser zeigt die Eigenschaften des gewählten 1 Elementes an. Auf diese Weise können die Feineinstellungen der Eigenschaften vorgenommen werden.

3 das Panell der Vernüpfung der Daten und der Serie, zugänglich nach Auswahl einer Serie im Fenster 1.

Beim ersten Start des Editors sieht das Fenster wie oben dargestellt aus. Das erste was gemacht werden muss, ist das Zufügen einer oder mehrerer Serien (in unserem Beispiel nur eine). Klicken Sie dazu auf den Button [image] und wählen aus der Drop-Down-Liste das Kreisdiagramm (Pie):

Nach dem Hinzufügen der Serie, ist das Panell 3 aktiviert worden. Hier muss eingegeben werden welche Daten bei der Diagrammerstellung verwendet werden sollen. Als erstes wählen wir den Datensatz aus der Drop-Down-Liste "Datensatz". Die Felder "Label" und "Pie" füllen wir auf folgende Weise (diese können ebenfalls über die Drop-Down-Listen gewählt werden):

screenshot - 18.05.2009 , 17_50_42

Die Buttons mit den Pfeilen nach oben und nach unten erlauben es die Serie des Diagrams zu verschieben und geben die Reihenflge der Darstellung vor. Falls nötig kann man den Namen der Serie über einen Klick darauf eingeben.

In unserem Beispiel (mit dem Kreisdiagramm) werden die Werte "Label" für die Beschriftungen verwendet. Für die Erstellung des Diagrames selber werden nur die Werte "Pie" verwendet. Man kann ebenfalls in "Color" für jedes "Stück" des Diagramms die gewünschte Farbe einstellen.

Beenden wir erstmal die Konfiguration und schließen den Editor mit dem Button OK. Nun starten wir den Report:

Was könnte man in diesem Report besser machen? Als erstes wäre es gut die Sortierung absteigen einzustellen. Wir öffnen den Editor des Diagramms erneut und wählen die Serie oben im Fenster aus. Nun müssen wir die Art der Sortierung auswählen:

screenshot - 18.05.2009 , 17_53_54

Wenn wir den Report wieder starten sehen wir, dass die Daten in der Tabelle durchsortiert worden sind.


Begrenzung der Anzahl der Werte im Diagramm

Unser Diagramm sieht überfüllt aus. Zu viele kleine Werte, die im Diagramm sowieso nicht zu sehen sind. Mit FastReport kann man die Mengen der Werte im Diagramm beschränken. Dabei werden alle Werte die nicht eine bestimmte Bedingung erfüllen, zu einem Wert zusammengefasst. Dieser Wert wird dann als Summe angezeigt.

In unserem Beispiel hat das Diagramm 18 Werte, wir wollen nur 8 davon darstellen. Öffnen wir den Editor und geben die Beschränkung ein:

screenshot - 18.05.2009 , 17_57_29

Die Begrenzung wird arbeiten, wenn das Feld "ErsteN Werte" ungleich null ist. Im Feld "ErsteNBeschriftung" muss der Name eingetragen werden, welche gegenüber der Summe stehen soll. Die Art der Sortierung spielt keine Rolle, diese ist absteigend.

Das Resultat sieht so aus:


Weitere nützliche Einstellungen

Betrachten wir weitere Einstellungen, die uns dabei helfen das Erscheinungsbild des Diagramms zu gestalten. Diese Einstellungen kann man nur im Objektinspektor durchführen.

Folgende Grundeigenschaften sind beim Anwählen des Diagramms in der Liste oben anwähbar:

- Gradient Einstellungen für die steigende Hintergrundfüllung. Um diesen anzuzeigen, aktivieren Sie Gradient.Visible.

- Legend Einstellungen des Aussehens der Legende. Wird über Legend.Visible deaktiviert. Verschieben kann man sie über Legend.Alignment.

Haben Sie eine Serie ausgewählt, sind folgende Eigenschaften zugänglich:

- ColorEachPoint markiert jeden Wert in einer anderen Farbe.

- ExplodeBiggest markiert den höchsten Wert (nur beim Kreisdiagramm).

- Marks Einstellungen für das Aussehen der Hilfstexte.

- ValueFormat Zeile der Formatierung der Werte.

Man muss anmerken, dass man alle Möglichkeiten der Diagrammbearbeitung mit dem Paket TeeChart Pro erhält (wird separat erworben). Dieses Paket enthält viele weitere Arten der Diagramme und besitzt Editoren zur bequemen Bearbeitung der Diagramme und Serien. All das erlaubt eine einfache und schnelle Bearbeitung der Diagramme.


Chart with specified values

Im vorherigen Beispiel haben wir ein Diagramm auf Basis der DB-Tabelle erstellt. Man kann aber auch das Diagramm auf eine andere Weise erstellen und zwar indem man die Daten manuell eingibt. Diese Möglichkeit ist praktisch für kleine Diagramme.

Schauen wir uns das ganze an einem Beispiel an. Legen wir ein Diagramm auf das Blatt und gehen in dessen Editor. Als nächstes fügen wir die Serie "Säulendiagramm" ein und konfigurieren die Eigenschaften:

screenshot - 18.05.2009 , 18_03_27

Beim Start des Reports sehen wir folgendes Ergebnis:


Füllen des Diagrammes aus dem Script

Füllen wir das vorhergehende Diagramm mit Daten aus einem Script. Dazu lassen wir im Editor die Felder X und Y leer. Im Script des Reports schreiben wir folgendes:

PascalScript:

begin

Chart1.SeriesData[0].Source1 := 'Januar;Februar;März;April';

Chart1.SeriesData[0].Source2 := '31;28;31;30';

end.

C++Script:

{

Chart1.SeriesData[0].Source1 = "Januar;Februar;März;April";

Chart1.SeriesData[0].Source2 = "31;28;31;30";

}

In diesem Fall erlaubt SeriesData[0] die Eingabe der Parameter der ersten Serie im Diagramm. Hat das Diagramm mehrere Serien, so kann man diese über SeriesData[Nummer_Serie] erreichen.


Drucken von Diagrammen (erstellt in Delphi)

Falls Sie schon ein Diagramm im Code Delphi erstellt haben und dieses in den Report einfügen wollen, so benötigen Sie das Objekt "Grafik". Plazieren Sie das Objekt an dem gewünschten Platz und schreiben folgenden Bearbeiter des Ereignisses TfrxReport.OnBeforePrint:

procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);

begin

if Sender.Name = 'Picture1'then

TfrxPictureView(Sender).Picture.Assign(

Chart1.TeeCreateMetafile(False,

Rect(0, 0, Round(Sender.Width), Round(Sender.Height))));

end;

wo Picture1 steht, kommt der Name des Objetes "Grafik" rein. Chart1 ist Ihr Delphi Diagramm.


Dot-Matrix Reporte

Bis jetzt haben wir uns Reporte angesehen, die für den Druck auf Standarddruckern (Tinten-, Laserdrucker) bestimmt waren. Das Drucken eines solchen Reportes wird auf einem Nadeldrucker sehr viel Zeit in Anspruch nehmen. Mit FastReport kann man spezielle Reporte extra für Nadeldrucker erstellen. Es werden nur die Standardsymbole der Schrift verwendet, ohne grafische Elemente. Dadurch erfolgt der Druck wesentlich schneller.

Betrachten wir das Erstellen eines Reportes der Art «Liste» bestimmt zum Druck auf einem Nadeldrucker. Wir haben solch einen Report schon eher erstellt s.h. Kapitel «Report «Kundenliste». Wir verwenden für den Report jetzt dieselben Daten.

Nun erstellen wir ein neues Projekt in Delphi und legen auf die Form die Komponenten TTable, TfrxDBDataSet, TfrxReport, TfrxDotMatrixExport und stellen die Egenschaften ein:

TTable:

DatabaseName = 'DBDEMOS'

TableName = 'Customer.db'

TfrxDBDataSet:

DataSet = Table1

UserName = Customers

Wir öffnen den Reportdesigner und wählen den Punkt "Datei|Neu…". Es öffnet sich ein Fenster, in dem sich die Assistenten aufgeführt sind. Wir wählen «Dot-Matrix Report»:

screenshot - 18.05.2009 , 18_06_02

Wenn Sie auf OK gehen erscheint eine leere Seite. Diese ist der Matrixschrift angepasst:

Die Liste der Objekte, welche eingefügt werden können, hat sich verändert. Es sind nun «Band», «Text», «Dot-matrix Linie», «ESC-Befehl», «Unterreport» und «Cross-tab Objekt». Andere Objekte können in einem Matrixreport nicht verwendet werden.

Fügen wir auf die Seite die Bänder Report title, Page header und Master data ein:

Die Objekte "Text" verteilen wir auf die Bänder auf folgende Weise:

Das Prinzip der Objektverteilung ist dasselbe wie auch im Standardreport. Der Unterschied besteht darin, dass die Objekte fest im Netz verankert sind. Für diese kann man keine andere Schriftgröße oder Farbe wählen. Jedoch können bestimmte Eigenschaften der Schrift verändert werden. Wählen Sie das Objekt "Text" an und klicken auf 72.6 im Instrumentenpanell:

screenshot - 18.05.2009 , 18_08_54

Wie man sieht können hier die Eigenschaften eingegeben werden die für das Drucken auf Nadeldruckern speziefisch sind. Diese Eigenschaften besitzt die Seite und alle Matrixobjekte (ausgenommen die Bänder).

Achtung! Im Designer und der Vorschau werden nur die Eigenschaften «Fett», «Kursiv», «Unterstrichen». Zum Drucken werden jedoch alle Eigenschaften verwendet.

Verändern wir das Aussehen des Reportes und geben für die Köpfe «Fett». Der Report ist nun fertig und kann in der Vorschau betrachtet werden:


Cross-tab in dot-matrix

Die Anzahl der Objekte im Matrixreport ist nur auf die beschränkt, die in der Textform dargestellt werden können. Dazu gehört auch das «Cross-òàb Objekt». Betrachten wir die Erstellung solch eines Reports, dies geschieht analog dem im Kapitel «Tabelle mit zusammengesetzten Kopfzeilen» erstellten Report.

Wir führen nun dieselben Schritte durch und rufen den Assistenten "Dot-matrix Report" auf. Auf die Seite legen wir nun die Komponente "Datenbank Cross-tab Objekt" und konfigurieren die Struktur:

screenshot - 18.05.2009 , 18_09_57

Wie man sieht, zeigt der Editor die Struktur der zukünftigen Tabelle schon in der Matrixform. Den Stil der Zellen kann man im Designer durch den Button 73.2 verändern. Die übrigen Arbeitsschritte unterscheiden sich nicht von den oben durchgeführten. Auf dem Bildschirm würde solch ein Report so aussehen:


Dot-matrix reports printing

Um einen Matrixreport im Textmodus drucken zu können (d.h. mit maximaler Geschwindigkeit), muss auf die Seite Ihres Projektes unbedingt die Komponente TfrxDotMatrixExport [image] aus dem Komponentensatz von "FastReport 4.0" gelegt werden. Der Standarddialog zum Drucken ändert sich dabei:

screenshot - 18.05.2009 , 18_11_47

Das Fenster sieht dem Standardfenster ähnlich, es enthält jedoch auch Spezifikationen für Nadeldrucker. Vor dem Drucken muss der ESC-Befehl gewählt werden. Folgende Befehle sind vorhanden:

screenshot - 18.05.2009 , 18_12_29

Auch können folgende Optionen des Druckens eingegeben werden:

- Speichern in Datei bestimmt ob die Daten auf der Festplatte gespeichert werden sollen. Setzt man das Häkchen, wird vor dem Drucken eine Anfrage der Datei erfolgen;

- Seitenbruch bestimmt ob der Befehl «Seitenbruch» erteilt wird, wenn das Ende der Seite erreicht wird. Setzt man das Häkchen nicht, wird auf Rollenpapier gedruckt;

- OEM Codierung bestimmt wie die vertikalen bzw. horizontalen Linien gezeichnet werden. Ist das Häkchen nicht gesetzt, werden die Linien mithilfe der Symbole -, |, + gezeichnet.


"Dot-matrix Befehlsobjekt"

&quot;Dot-matrix Befehlsobjekt&quot;

 Top Letztes Next

Wie wir vorhin beschrieben haben, können Sie folgende Eigenschaften für Dot-Matrix Reporte einstellen:

screenshot - 18.05.2009 , 18_08_54

Dies ist die Standardauswahl, welche von allen Modellen der Nadeldrucker verstanden wird. Außerdem kann ein konkretes Druckermodell Befehle unterstützen, die nicht in der Standardauswahl vorhanden sind z.B. erhöhen auf 20 Zeichen pro Zoll. Um diesen Befehl einzugeben nutzen Sie das «Dot-matrix Befehlsobjekt» .

Man fügt das Objekt auf die gewünschte Stelle der Seite (z.B. oben links oder vor die Objektgruppe, die diese Einstellungen haben sollen). Um den Befehl einzugeben, editieren Sie die Eigenschaft des Objektes im Objektinspektor:

Sie können den Befehl auf zwei Arten erteilen: dezimal (z. B. #27#40) oder hexadezimal (1B28).


Dialogformen

Im Report können neben den Reportseiten, Dialogformen enthalten sein. Um diese zu erstellen verwenden Sie denselben Designer wie den der Seiten. Um eine neue Dialogseite zu erstellen, klicken Sie auf den Button [image] auf der Instrumentenleiste. Eine neue Seite wird dann in den Report eingefügt. Wenn Sie nun auf die Dialogseite wechseln, ändert sich die Arbeitsfläche. Hier können nun Objekte eingefügt werden, die die Steuerungselemente darstellen:

screenshot - 18.05.2009 , 18_18_51


Steuerungselemente

Die Steuerungselemente der Dialogseiten werden durch die Verwendung der Komponente TfrxDialogControls [image] verknüpft aus dem Komponentenset FastReport. Es reicht aus die Komponente auf eine beliebige Seite des Projektes zu legen oder in die Liste uses frxDCtrl einzufügen. Es werden dann folgende Steuerungslemente hinzugefügt:

Element Bezeichnung Beschreibung

TfrxLabelControl Dieses Steuerungselement wird verwendet um Hilfstexte auf der Dialogform anzuzeigen.

TfrxEditControl Mit Hilfe des Steuerungselementes wird eine Textzeile mithilfe der Tastatur eingefügt.

TfrxMemoControl Mit Hilfe des Steuerungselementes werden mehrere Textzeilen mit Hilfe der Tastatur eingefügt.

TfrxButtonControl Dieses Element stellt einen Button dar.

TfrxCheckBoxControl Dieses Element stellt ein Häkchen dar im aktivierten/deaktivierten Zustand. Neben dem Häkchen wird ein Hilfstext angezeigt.

TfrxRadioButtonControl Dieses Element stellt einen Umschalter mit einer abhängigen Fixierung dar. Deswegen wird es nicht alleine verwendet.

TfrxListBoxControl Dieses Element stellt eine Liste mit Zeilen dar und der Möglichkeit eine auszuwählen.

TfrxComboBoxControl Dieses Element stellt eine Drop-Down-Liste mit Zeilen dar und der Möglichkeit eine auszuwählen.

TfrxDateEditControl Dieses Element stellt ein Datumeingabefeld dar, mit einem ausfahrbaren Kalender.

TfrxGroupBoxControl Dieses Element stellt ein Panell mit einem Hilfstext dar, und dient dem Vereinigen mehrerer Steuerungselemente.

TfrxPanelControl Dieses Element stellt ein Panell dar und dient dem Vereinigen mehrerer Steuerungselemente.

TfrxBitBtnControl Dieses Element stellt einen Button mit einer Grafik dar.

TfrxSpeedButtonControl Dieses Element stellt einen Button mit einer Grafik dar.

TfrxMaskEditControl Dieses Element stellt ein Feld zum Einfügen von Informationen in eine Maske dar.

TfrxCheckListBoxControl Dieses Element stellt eine Liste mit Kontrollkästchen dar.

TfrxBevelControl Dieses Element wird zum designender Dialogform verwendet.

TfrxImageControl Dieses Element stellt eine Grafik in den Formaten BMP, ICO, WMF, EMF dar.

Wie man sieht sind die Steuerungselemente denen in Delphi ähnlich. Hilfe zu den Eigenschaften, Ereignissen und Methoden eines jeden Elementes, erhält man in der FastReport-Hilfe


Report "Hello, World!"

Report &quot;Hello, World!&quot;

 Top Letztes Next

Diesmal erstellen wir einen Report, der uns vor dem eigentlichen Report eine Begrüßung anzeigt indem wir eine Dialogform verwenden. Starten wir ein neues Projekt in Delphi und legen folgende Komponenten auf die Seite: TfrxReport, TfrxDialogControls. Durch einen Doppelklick auf die Komponente TfrxReport rufen wir den FastReport Designer auf und fügen in den Report eine Dialogform ein. In die Form fügen wir die Objekte TfrxLabelControl, TfrxButtonControl ein:

Die Objekteigenschaften werden folgendermaßen eingestellt:

TfrxLabelControl:

Caption = 'Hello, World!'

TfrxButtonControl:

Caption = 'OK'

Default = True

ModalResult = mrOk

Jetzt stellen wir die Eigenschaft der Dialogform BorderStyle = bsDialog ein. Wie man sehen kann haben die Steuerungselemente und die Dialogform denselben Satz der Eigenschaften wie auch die entsprechenden Elemente in Delphi.

Nachdem wir die Einstellungen eingestellt haben, kehren wir auf die Reportseite zurück und fügen dort ein Objekt "Text" ein mit einem beliebigen Satz. Starten wir nun den Report und sehen unsere Dialogform:

Wenn man auf OK geht, wird der Report erstellt und angezeigt. Schließt man das Fenster mit X, so wird der Report nicht erstellt. So arbeitet der Algorithmus von FastReport, ein Report wird nur durch klick auf OK erstellt. Deshalb haben wir am Anfang die Eigenschaft ModalResult des Buttons gleich mrOk gestellt.


Einfügen von Parametern und deren Transfer in den Report

Machen wir unser Beispiel komplizierter um zu zeigen auf welche Weise die in der Dialogform enthaltenen Werte in den Report übertragen werden. Dazu verändern wir unsere Dialogform folgendermaßen:

Auf der Reportseite fügen wir das Objekt "Text" mit folgendem Text ein:

You've entered:

[Edit1.Text]

Starten wir den Report und vergewissern uns, dass der eingefügte Parameter im Report angezeigt wird. Analog können auch andere Elemente der Dialogform bearbeitet werden. Jedes Objekt besitzt einen einzigartigen Namen innerhalb des Reports und kann deshalb an einer beliebigen Stelle im Report verwendet werden.


Interaktion der Steuerungselemente

Wenn man Scripte verwendet kann man die Logik der Arbeitsweise der Dialogform leicht nachvollziehen z. B. die Interaktion der Steuerungselemente. Schauen wir uns ein Beispiel an. Modifizieren wir die Dialogform auf folgende Weise:

Nun klicken wir doppelt auf das Objekt "CheckBox", dabei wird ein Bearbeiter des Ereignisses OnClick erstellt und schreiben folgenden Script:

PascalScript:

procedure CheckBox1OnClick(Sender: TfrxComponent);

begin

Button1.Enabled := not CheckBox1.Checked;

end;

C++ Script:

void CheckBox1OnClick(TfrxComponent Sender)

{

Button1.Enabled = !CheckBox1.Checked;

}

Wie man sieht, unterscheidet sich der Code nicht von dem in Delphi verwendeten. Starten wir den Report und sehen, dass der Button darauf reagiert, ob das Häkchen da ist oder nicht.


Verschiedene Dialogformen

Schauen wir uns an wie ein Report mit zwei Dialogformen arbeitet. Erstellen wir einen Report mit zwei Dialogformen und einer Seite:

Wir stellen die Eigenschaften ModalResult (mrOk und mrCancel entsprechend) der Buttons OK und Cancel ein. Jetzt starten wir den Report. Zuerst sollen wir die Fragen des ersten Dialoges beantworten (Name, Kinder ja/nein), danach (nach dem klick auf OK) die des zweiten (Namen der Kinder). Klicken wir auf OK des zweiten Dialoges so wird der Report erstellt. Dies ist die Arbeitsweise des Kerns von FastReport. Die Dialoge werden in der Reihenfolge der Erstellung angezeigt. Der folgende Dialog erscheint dabei nur, wenn man den vorherigen (mit der Eigenschaft ModalResult = mrOk) mit OK schließt. Wird einer der Dialoge abgelehnt (Button Cancel oder mit dem Kreuz oben rechts) so wird die Erstellung des Reports beendet.


Steuerung der Reportformen

Im vorherigen Beispiel werden die Dialogformen angezeigt. Unabhängig davon, ob wir ein Häkchen bei "Have children" gesetzt haben oder nicht. Schauen wir uns an, wie man den zweiten Dialog verbergen kann, falls kein Häkchen gesetzt worden ist. Hierfür erstellen wir einen Bearbeiter OnClick beim Button OK im ersten Dialog (führen Sie einen Doppelklick auf den Button aus, um den Bearbeiter zu erstellen):

PascalScript:

procedure Button1OnClick(Sender: TfrxComponent);

begin

DialogPage2.Visible := CheckBox1.Checked;

end;

C++Script:

void Button1OnClick(TfrxComponent Sender)

{

DialogPage2.Visible = CheckBox1.Checked;

}

Dieser Code verbirgt den zweiten Dialog (DialogPage2), falls man kein Häkchen gesetzt hat. Wenn wir den Report nun starten, sehen wir, dass der Report einwandfrei funktioniert.

Eine andere Möglichkeit der Steuerung der Dialogformen, ist die Verwendung des Ereignisses OnRunDialogs. Um den Bearbeiter dieses Ereignisses zu erstellen, wählen sie das Objekt Report im Reporttree oder im Objektinspektor aus und gehen auf den Tab "Ereignis" im Inspektor. Der Doppelklick auf das Ereignis OnRunDialogs erstellt nun den Bearbeiter:

Im Bearbeiter schreiben wir folgenden Code:

PascalScript:

procedure frxReport1OnRunDialogs(var Result: Boolean);

begin

Result := DialogPage1.ShowModal = mrOk;

if Result then

begin

if CheckBox1.Checked then

Result := DialogPage2.ShowModal = mrOk;

end;

end;

C++Script:

void frxReport1OnRunDialogs(bool &Result);

{

Result = DialogPage1.ShowModal == mrOk;

if (Result)

{

if (CheckBox1.Checked)

Result = DialogPage2.ShowModal == mrOk;

}

}

Der Bearbeiter arbeitet folgendermaßen: wir zeigen den ersten Dialog. Wird dieser mit OK geschlossen, schauen wir uns das Kontrollkästchen CheckBox1 an und zeigen den zweiten Dialog, falls nötig. Gibt der Bearbeiter Result = True wieder, so wird der Report erstellt. Ist Result = False, so wird der Report gestoppt.


Assistenten

Das Komplekt von FastReport enthält einige Assistenten die die Erstellung der Reporte vereinfachen sollen. Die Assistenten sind über das Menü "Datei|Neu..." erreichbar.

screenshot - 18.05.2009 , 18_55_03


Assistenten neuer Reporte

Es gibt 4 Assistenten neuer Reporte:

- Standard Report Assistent

- Dot-Matrix Report Assistent

- Standard Report

- Dot-Matrix Report

Die Assistenten "Standard Report" und "Dot-Matrix Report" erstellen einen leeren Report (für Standarddrucker oder Nadeldrucker über Matrixreporte s.h. nächstes Kapitel), welcher eine Seite enthält.

Die Assistenten "Standard Report Assistent" und "Dot-Matrix Report Assistent" erlauben die Auswahl der Felder, der Gruppen, des Layouts usw. im Report. Betrachten wir die Erstellung eines Reportes mit Hilfe des "Standard Report Assistent" genauer.

Wählen Sie im Menü "Datei|Neu..." und in dem sich öffnendem Fenster den Punkt "Standard Report Assistent" aus. Wir sehen nun das Fenster des Assistenten:

screenshot - 18.05.2009 , 18_51_03

Wie man sieht, besitzt das Fenster mehrere Tabs. Auf dem ersten Tab wählen wir die Datenquelle aus, auf der der Report erstellt werden soll. Hier befinden sich alle uns zur Verfügung stehenden Datenquellen (Komponenten TfrxDBDataSet). Wir können ebenfalls eine neue Datenquelle erstellen (Tabelle oder Abfrage) indem wir die Buttons "Neue Tabelle" oder "Neue Abfrage" anklicken. Es wird der Assistent der neuen Tabelle/Abfrage aufgerufen (dazu später im Kapitel mehr). Wählen wir nun die Datenquelle und klicken den Button "Weiter >>".

Im folgenden Tab müssen wir die Felder auswählen, die im Report erscheinen sollen:

screenshot - 18.05.2009 , 18_52_52

In der Liste links befinden sich die verfügbaren Felder, in der Liste rechts die ausgewählten. Die Felder kann man verschieben, indem man die Pfeile dazwischen verwendet. Mithilfe der Buttons [image] kann die Reinfolge der Felder verändert werden. Fügen wir nun die Felder Company, Contact, Phone, FAX hinzu und klicken auf "Weiter >>".

Im nächsten Tab können Gruppen gebildet werden. Dabei werden in den Report die Bänder Group header, Group footer eingefügt.

screenshot - 18.05.2009 , 18_53_18

Die Bildung der Gruppen ist jedoch nicht notwendig. Klicken wir auf "Weiter >>".

Beim nächsten Tab wählen wir die Ausrichtung der Seite und das Layout:

screenshot - 18.05.2009 , 18_53_49

Das Layout kann in der Tabellen- oder Spaltenform erfolgen. In der Tabellenform bedeutet das, die Felder gehen von links nach rechts. In Spalten bedeutet, die Felder liegen untereinander. Je nach Auswahl des Layouts verändert sich das Bild auf der rechten Seite. Die Option "Felder an Seitenbreite anpassen" verändert die Breite der ausgewählten Felder so, dass alle Felder auf die Seite passen.

Im letzten Tab kann der Stil des Reports ausgesucht werden. Es stehen verschiedene Farbenpaletten der Reportelemente zur Auswahl.

screenshot - 18.05.2009 , 18_54_18

Nach dem Klick auf den Button "Fertig" erstellt der Assistent folgenden Report:

Der Report kann auch gleich im Vorschaufenster betrachtet werden.


Assistent für neue Verbindung

Dieser Assistent erlaubt, in den schon bestehenden Report, ein neue Verbindung zur Datenbank hinzuzufügen. Dies kann nötig sein, wenn Sie im Report Daten aus zwei oder mehr Datenquellen anzeigen möchten. Der Assistent fügt in den Report ein Komponente des Types "ADO Datenbank" hinzu.

screenshot - 18.05.2009 , 19_00_47

Sie müssen die Verbindungszeile hinzufügen ( [image]). Es öffnet sich ein Standardfenster Windows, wo Sie die Art der Verbindung und die Parameter auswählen können. Danach geben Sie den Benutzernamen und das Passwort ein, falls nötig.

Eine neue Verbindung kann ebenfalls erstellt werden, indem man auf das Tab "Data" geht und in den Report die Komponente "ADO Datenbank" hinzufügt.


Assistent für neue Tabellen

Dieser Assistent erlaubt in einen bestehenden Report eine neue Datenquelle einzufügen und zwar eine Tabelle. Achtung: zuerst muss eine Verknüpfung zur Datenbank im Menü"Report|Daten..." hergestellt werden!

screenshot - 18.05.2009 , 19_02_05

Im Fenster des Assistenten müssen Sie den Namen der Tabelle auswählen. Ebenfalls können Bedingungen für das Filtern eingegeben werden z.B.:

(CustNo > 2000) and (CustNo < 3000)

Eine neue Tabelle kann ebenfalls erstellt werden, indem man auf das Tab "Data" geht und die Komponente "ADO Tabelle" in den Report einfügt.


Assistent für neue Abfragen

Dieser Assistent erlaubt in einen bestehenden Report eine neue Datenquelle einzufügen und zwar eine SQL-Abfrage. Achtung: zuerst muss eine Verknüpfung zur Datenbank im Menü"Report|Daten..." hergestellt werden!

screenshot - 18.05.2009 , 19_03_49

Im Fenster des Assistenten tragen Sie die SQL-Abfrage ein. Sie könne ebenfalls die Abfrage mit dem visuellen Query Builder erstellen, indem Sie auf den Button [image] klicken. Der visuelle Query Builder wird später im Kapitel beschrieben.

Eine neue Abfrage kann ebenfalls erstellt werden, indem man auf das Tab "Data" geht und die Komponente "ADO Abfrage" in den Report einfügt.


Query construction

FastReport (Versionen Professional, Enterprise) enthält einen visuellen Query Builder. Dazu verwendet man den FastQueryBuilder, welcher auch als separates Produkt in Ihren Anwendungen verwendet werden kann. Den Query Builder nutzt man um visuelle Textabfragen in SQL zu erstellen. Der Query Builder sieht wie folgt aus:

Die Zahlen bedeuten:

1 - Instrumentenleiste

2 Arbeitsfläche des Designers

3 Liste der verwendbaren Tabellen

4 Parameter der ausgewählten Tabellenfelder

Instrumentenleiste:

- Öffnen SQL Datei

- Speichern der Abfrage (das Schema wird ebenfalls gespeichert)

- leeren der Arbeitsfläche des Designers

- Button Îê. Schließen des Designers mit anschließendem Speichern

- Schließen des Designers ohne zu speichern

Die Arbeitsfläche des Query Builders und die Liste der Tabellen unterstützen Drag&Drop, d.h. um eine Tabelle auf die Arbeitsfläche zu legen, zieht man diese einfach mit der Maus rüber. Die andere Möglichkeit ist die benötigte Tabelle in der Liste doppelt anzuklicken.

Um ein Feld in die Abfrage miteinzubeziehen, reicht es aus, dieses zu markieren:

Markierte Felder erscheinen in der Parametertabelle:

- Visibility bestimmt, ob das Feld später angezeigt werden soll

- Where die Bedingung, ob das Feld ausgewählt werden soll z.B. '> 5'

- Sort Art der Sortierung

- Function bestimmt die Funktion, die angewendet werden soll

- Group die Gruppierung des Feldes

Durch das "Rüberziehen" der Felder zwischen den Tabellen, werden Verbindungen geknüpft (join). Bevor die Verbindungen erstellt werden, wird überprüft, ob die Arten der Felder zusammenpassen. Ist das nicht der Fall können diese nicht verknüpft werden. Um die Einstellungen der Verknüpfungen bearbeiten zu können, muss man auf die Verbindungslinie klicken und den Punkt Link options auswählen. Es erscheint das Fenster der Verbindungsparameter:


Die Verwendung des Query Builders

Erstellen wir einen einfachen Report unter Verwendung des Query Builders.

Wählen Sie in der Instrumentenleiste "Neuer Report" [image] aus. Es wird eine Seite erstellt, die die Bänder "ReportTitel", "MasterData1" und den "Seitenfuß" enthält.

Auf die Seite "Data" legen Sie die Komponente "ADO Abfrage" und klicken darauf doppelt, um den Editor aufzurufen.

Klicken Sie nun auf den Button [image] im Editor und es erscheint der Query Builder. Wählen Sie die Tabelle Customer aus und ziehen diese auf die Arbeitsfläche (man kann diese auch durch den Doppelklick auswählen). Als nächstes werden nun Häkchen an die Felder CustNo, Company und Phone gesetzt:

Mehr braucht man nicht um ein Abfrage zu erstellen. Der Text der Abfrage wird im Tab SQL angezeigt und die Daten, die die Abfrage liefert, im Tab Result. Klicken Sie auf [image] um den Query Builder zu schließen. Wir kehren zurück zum Editor der Abfrage und sehen den generierten Text dieser:

Achtung! Falls Sie den Text der Abfrage verändern, so verlieren sie das Schema (die Anordnung der Tabellen im Query Builder und die Verbindungen zwischen diesen). Wird der Text der Abfrage nicht manuell verändert, so können Sie immer im Query Builder das Schema visuell verändern. Klicken Sie auf OK im Editor und kehren in den Reportdesigner zurück. Jetzt müssen nur noch das Band "MasterData1" mit der Datenquelle verknüpft und die Felder auf dem Band verteilt werden.


Erstellen einer komplexen Abfrage

Im vorherigen Beispiel haben wir einen Report auf den Daten einer Tabelle aufgebaut. Betrachten wir nun einen Report der die Daten zweier Tabellen enthält.

Früher haben wir die Arbeit des Reports mit Gruppen (Kapitel "Report mit Gruppen") betrachtet. Erstellen wir nun eine Abfrage für diesen Report mit Hilfe des Query Builders. Wir müssen die Abfrage in SQL verfassen. Dieser soll die Daten beider Tabellen anzeigen, welche auf bestimmte Weise sortiert sind. In unserem Fall durch die Verknüpfung der Felder CustNo in beiden Tabellen.

Wie im Beispiel vorhin, erstellen wir einen neuen Report und legen auf die Seite die Komponente "ADO Abfrage". Im Editor starten wir nun den Query Builder.

Nun werden zwei Tabellen auf die Arbeitsfläche gezogen Customers und Orders. Beide Tabellen besitzen das Feld CustNo über welches sie verbunden werden. Durch das Rüberziehen des Feldes CustNo von der einen Tabelle in die andere erstellen wir die Verknüpfung:

Jetzt müssen die Felder markiert werden, die die Abfrage enthalten sollen. Diese sollen anhand des Feldes CustNo sortiert werden. Setzen Sie dazu Häkchen an die Felder "*" in beide Tabellen und auch das Feld Custno in der Tabelle Customer. Im Fenster unten erscheinen nun die von uns ausgewählten Felder und es muss die Art der Sortierung für das Feld CustNo ausgewählt werden:

Die Abfrage ist nun fertig und sieht wie folgt aus:


Betrachten, Drucken, Export des Reports

Der fertige Report kann auf dem Bildschirm betrachtet, über einen Drucker gedruckt oder in ein unterstützendes Format exportiert werden. Das alles kann im Vorschaufenster machen.

Die Zahlen bedeuten:

1 Seiten des fertigen Reportes;

2 Instrumentenleiste ;

3 Statusleiste;

4 Seitenpanell. Hier wird entweder der Reporttree angezeigt (wie in der Grafik) oder Vorschau der Seiten.

Die Instrumentenleiste besitzt folgende Buttons:

Icon

Bezeichnung

Beschreibung

Drucken

Druckt den Report. Tastaturbefehl Strg P.

Öffnen

Öffnet einen Report (*.fp3).

Speichern

Speichert einen Report (*.fp3).

Export

Export des Reportes in ein unterstütztes Format.

Export nach PDF

Exportiert den Report in eine pdf-Datei. Dieser Button wird angezeigt, wenn der entsprechende Exportfilter installiert worden ist.

Als E-Mail senden

Export in ein unterstützendes Format und Versand per E-Mail als Anhang. Dieser Button wird angezeigt, wenn der entsprechende Exportfilter installiert worden ist.

Suchen

Textsuche im Report. Tastaturbefehl Strg F.

Vergrößern

Vergrößert den Maßstab.

Zoom

Auswahl des Maßstabes.

Verkleinern

Verkleinert den Maßstab.

Vollbild

Zeigt den Report auf dem ganzen Bildschirm an. Um zur Standardansicht zu wechseln, klicken Sie doppelt auf die Seite.

Baumansicht

Zeigt und verbirgt den Reporttree.

Miniaturansicht

Zeigt/Verbirgt die Miniaturansicht der Seiten.

Seiteneinstellungen

Ruft einen Dialog mit den Seiteneigenschaften auf.

Seite bearbeiten

Editiert die aktuelle Seite.

Erste Seite

Springt zur ersten Seite des Reportes.

Vorige Seite

Geht zur vorherigen Seite im Report.

Seitennummer

Geht zur angegebenen Seitennummer im Report. Fügen Sie die Nummer ein und klicken auf Enter.

Nächste Seite

Geht zur nächsten Seite im Report.

Letzte Seite

Springt zur letzten Seite im Report.

Schließen

Schließen

Schließt das Vorschaufenster.


Tastatursteuerung

Tasten Beschreibung

Strg+S Speichert den Report *.fp3.

Strg+P Druckt den Report.

Strg+F Textsuche.

F3 Weiterführen der Suche.

Pfeile Flüssiges Scrollen des Dokumentes.

Bild hoch, Bild runter Scrollen hoch/runter.

Strg+Bild hoch, Bild runter Scrollen hoch/runter zur nächsten Seite.

Pos 1 Springt zum Anfang des Dokumentes.

Ende Springt zum Ende des Dokumentes.


Maussteuerung

Aktion Beschreibung

Linke Maustaste Klick auf ausgewählte Objekte (im interaktiven Report); Scrollen im Modus «Hand» (Taste festhalten und Maus bewegen); im Modus «Zoom» - heranzoomen.

Rechte Maustaste Kontextmenü; im Modus «Zoom» - herauszoomen.

Doppelklick Bei Anzeige des Reports auf dem ganzen Bildschirm, Rückkehr zur Standardansicht.

Mausrad Scrollen der Seite.


Druck des Reports

Um den Report auszudrucken, klicken Sie auf den Button [image] (oder die Tasten Strg+P). Es erscheint folgendes Fenster:

screenshot - 18.05.2009 , 19_22_33

Schauen wir uns die vorhandenen Einstellungen an.

In der Gruppe "Drucker" kann man den Drucker aussuchen, dessen Einstellungen bearbeiten und "In Datei drucken" auswählen.

screenshot - 18.05.2009 , 19_23_14

In der Gruppe "Seite" können die zum Druck bestimmten Seiten ausgewählt werden (alle, aktuelle oder bestimmte).

screenshot - 18.05.2009 , 19_23_37

Gruppe "Kopien": hier geben wir die Anzahl der Kopien an und wählen die Sortierung der Seiten aus ("Sortieren"):

screenshot - 18.05.2009 , 19_24_02

Gruppe "Druckoptionen": hier wählen wir welche Seiten gedruckt werden sollen (alle, gerade, ungerade), die Reihenfolge (ab erster Seite oder ab der letzten) und geben die Einstellungen für doppelseitigen Druck ein ("Duplex" falls Ihr Drucker das unterstützt).

screenshot - 18.05.2009 , 19_24_21

In der Gruppe "Druckmodus" kann einer der Modi ausgewählt werden.

screenshot - 18.05.2009 , 19_24_47

- Standarddruck. Der Drucker druckt das, in dem Report angegebene Format. Eine Seite des Reports entspricht einer gedruckten Seite

- Aufteilen. Dies wird verwendet um Seiten im DIN A3 Format als DIN A4 zu drucken. Aus einer Reportseite werden zwei gedruckte. Wählen Sie diesen Modus, müssen Sie auch das gewünschte Papierformat aus der Liste "Papierformat" auswählen.

- Zusammenfügen. Will man den Report DIN A4 im Format DIN A3 drucken so wählt man zusammenfügen aus. Auf einer gedruckten Seite werden zwei Reportseiten dargestellt. Auch hier muss man das gewünschte Papierformat aus der Liste "Papierformat" auswählen.

- Anpassen. Druckt den Report im gewünschten Format. Dabei wird das Erscheinungsbild gezoomt (größer/kleiner) abhängig vom Format des Reports und der Seite. Eine Reportseite erscheint dann auf einer Blattseite. Hier muss ebenfalls das gewünschte Papierformat aus der Liste "Papierformat" auswählt werden.

Klickt man auf OK, startet der Druck. Ist das Kontrollkästchen «In Datei drucken» ausgewählt, so erfolgt eine Anfrage nach dem Dateinamen und die Speicherung in dieser (die Datei mit der Endung *.prn enthält die Kopie der Informationen, die an den Drucker gesendet worden sind).


Textsuche im Report

Mit FastReport kann man im Vorschaufenster eine Textsuche durchführen. Dazu klicken Sie auf den Button [image] auf der Instrumentenleiste (Tastaturbefehl Strg+F). Es erscheint das Fenster der Suche:

screenshot - 18.05.2009 , 19_30_42

Hier kann der Text eingegeben werden und die Optionen der Suche:

- Ab Anfang die Suche wird vom Anfang des Dokumentes an durchgeführt, ansonsten auf der aktuellen Seite.

- Groß-/Kleinschreibung wählt man es aus, so wird die Groß-/Kleinsschreibung bei der Suche beachtet.

Klicken Sie nun auf OK wird die Textsuche durchgeführt und das erste gefundene Element angezeigt:

Um die Suche fortzuführen, drücken Sie auf F3. Es wird das nächste Element angezeigt.


Export der Reporte

FastReport erlaubt den Export des fertigen Reports in verschiedene Formate zur weiteren Bearbeitung, Archivierung, dem Versand per E-mail usw.

Im Moment werden 13 Formate unterstützt: PDF, ODS, ODT, Excel, XML, RTF, HTML, text, CSV, BMP, Jpeg, Tiff und Gif. Es besteht die Möglichkeit den Report in all diesen Formaten per E-mail zu versenden. Um den Export auszuwählen klicken Sie auf 103.6 auf der Instrumentenleiste:

screenshot - 18.05.2009 , 19_33_09

Für den Export verwendet FastReport eine der 3 Möglichkeiten:

- Schicht-für-Schicht die Objekte im Bericht werden nacheinander in die Datei übertragen. Der Export ist dem Original ähnlich.

- Tabellarisch beim Übertragen der Objekte wird eine Zwischenmatrix verwendet, in der die Objekte untergebracht werden. Das Aussehen entspricht im hohen Maße dem Original, falls die Regeln der Erstellung der Maske beachtet worden sind (Kapitel «Vorschläge zur Reporterstellung»);

- Rendering es werden die sich auf der Seite befindenden Objekte gerendert. Die Kopie entspricht dem Original. Wird angewendet für den Export grafischer Formate.


Export ins Format PDF

PDF (Portable Document Format) ist ein plattformunabhängiges Format der Firma Adobe Systems. Es wird das kostenlose Paket Acrobat Reader verwendet. Dieses Format ist recht flexibel. Es können die Schriftart, Vektoren und Raster eingefügt werden. Es eignet sich sehr gut zum Versand und der Speicherung der Dokumente, welche angezeigt und gedruckt werden sollen.

Art des Exportes - Schicht für Schicht.

Beim Export in das Format PDF, wird ein Fenster mit den Einstellungen der zu exportierenden Datei angezeigt.

screenshot - 18.05.2009 , 19_35_09

Einstellungen:

- Komprimiert komprimiert die Datei, erhöht jedoch die Zeit des Exportes;

- Schriften einbetten alle Schriften die im Report verwendet werden, sind später auch in der PDF Datei vorhanden, damit diese korrekt angezeigt wird. Wo es diese Schriften nicht gibt, erhöht sich die Größe der ausgehenden Datei enorm.

- Hintergrund der Export der Grafiken die die Seite in PDF enthält, erhöht die Größe der Datei erheblich;

- Druckoptimiert die Grafiken werden in hoher Auflösung dargestellt, um beim Druck korrekt angezeigt zu werden. Diese Option ist sinnvoll, wenn das Dokument Grafiken enthält und deren Druck unbedingt notwendig ist. Die Größe der ausgehenden Datei wird auch hier erhöht;

- Lesezeichen diese Option ist aktiv, wenn der Report den Reporttree enthält. Beinhaltet die Möglichkeit des Exportes des Trees in das PDF-Dokument;

- Nach Export öffnen die PDF-Datei wird gleich nach dem Export mit dem Programm der Betrachtung der PDF-Dateien (z.B. Adobe Acrobat Reader) geöffnet.

Besonderheit des Exportes: RichText-Objekte werden wie Grafiken exportiert.


Export in das Format Open Dokument

OpenDocument Format (ODF Abkürzung für OASIS Open Document Format for Office Application) ist ein offenes Dateienformat zur Speicherung und den Austausch von Office-Dokumenten, einschließlich von Textdokumenten (z.B. Notizen, Berichten oder Büchern), elektronischen Tabellen, Grafiken, Datenbanken, Präsentationen. Dieser Standard wurde im Unternehmen OASIS entwickelt und basiert auf dem XML-Format. Dieser Format wurde als erstes durch OpenOffice.org entwickelt und am 1. Mai 2006 als internationaler Standard ISO/IEC 26300 übernommen.

FastReport unterstützt den Export in Tabellen ( .ods Datei) und Text ( .odt Datei) OpenDocument. Diese Dateien können mit Hilfe des kostenlosen Paketes OpenOffice geöffnet werden.

Art des Exportes Tabellarisch.

Beim Export erscheint ein Dialog mit den Einstellungen der Parameter der ausgehenden Datei.

screenshot - 18.05.2009 , 19_39_04

Exporteinstellungen:

- Weiter ununterbrochener Export. Die Seiten und Tabellen werden exportiert ohne unterbrochen zu werden und der Ausblendung der Spaltenbezeichnungen (diese werden nur auf der ersten und letzten Seite angezeigt). Die Option ist sinnvoll bei großen Dokumenten, die zur weiteren Bearbeitung vorgesehen sind;

- WYSIWYG eine hundertprozentige Übereinstimmung des Äußeren der Datei beim Export. Wird die Option deaktiviert, so wird eine Optimierung durchgeführt, bei welcher die Anzahl der Spalten und Zeilen in der resultierenden Datei reduziert wird;

- Hintergrund - der Export der gewählten Hintergrundfarbe;

- Seitenumbrüche aktiviert die Seitenumbrüche in der resultierenden Datei;

- Nach dem Export öffnen die Datei wird gleich nach dem Export geöffnet.

Besonderheit des Exportes: RichText-Objekte werden wie einfacher Text exportiert, die Weiterleitung von Grafiken wird unterstützt.


Export in das Format RTF

RTF (Rich Text Format) wurde als Standardformat zum Austausch von Textdokumenten entwickelt. Heutzutage werden RTF-Dokumente von den meisten aktuellen Texteditoren und Operationssystemen unterstützt.

Art des Exportes Tabellarisch.

Beim Export in das Format RTF, wird ein Fenster mit den Einstellungen der zu exportierenden Datei angezeigt.

screenshot - 18.05.2009 , 19_35_41

Exporteinstellungen:

- Bilder aktiviert die Möglichkeit des Exportes von Grafiken in die RTF-Datei;

- Seitenumbrüche aktiviert Seitenumbrüche in der RTF-Datei;

- WYSIWYG eine hundertprozentige Übereinstimmung des Äußeren der Datei beim Export. Wird die Option deaktiviert, so wird eine Optimierung durchgeführt, bei welcher die Anzahl der Spalten und Zeilen in der resultierenden Datei reduziert wird;

- Weiter ununterbrochener Export. Die Seiten und Tabellen werden exportiert ohne unterbrochen zu werden und der Ausblendung der Spaltenbezeichnungen (diese werden nur auf der ersten und letzten Seite angezeigt). Die Option ist sinnvoll bei großen Dokumenten, die zur weiteren Bearbeitung vorgesehen sind;

- Seiten Kopf/Fuß Ausführungsweisen: Text wird wie gewöhnlicher Text behandelt, Kopf/Fuß im RTF-Dokument werden diese gebildet, Nichts - Kopf/Fuß werden ignoriert;

- Nach Export öffnen die Datei wird gleich nach dem Export mit dem voreingestellten Programm (z.B. Microsoft WordPad) geöffnet.

Besonderheit des Exportes: RichText Objekte werden komplett ins Format RTF übertragen, das Aussehen und die Größe der Datei sind stark von der Maske des Reports abhänging (Kapitel «Vorschläge zur Reporterstellung»);


Export in Excell

Excell eine Anwendung zur Arbeit mit Tabellen. Enthalten im Microsoft Office System.

Art des Exportes Tabellarisch.

Beim Export in Excell, wird ein Fenster mit den Einstellungen der zu exportierenden Datei angezeigt.

screenshot - 18.05.2009 , 19_35_56

Exporteinstellungen:

- Weiter ununterbrochener Export. Die Seiten und Tabellen werden exportiert ohne unterbrochen zu werden und der Ausblendung der Spaltenbezeichnungen (diese werden nur auf der ersten und letzten Seite angezeigt). Die Option ist sinnvoll bei großen Dokumenten, die zur weiteren Bearbeitung vorgesehen sind;

- Bilder aktiviert die Möglichkeit des Exportes von Grafiken in die Tabelle;

- Als Text alle Objekte werden in die Tabelle als Textobjekte übertragen. Diese Option ist nützlich beim übertragen von nummerischen Feldern mit komplexen Formatierungen;

- Fast Export dabei wird die Übertragung der Daten optimiert und somit beschleunigt. Das Deaktivieren der Option verlangsamt die Übertragung, steigert jedoch die Vereinbarkeit beim Export, sollten Fehler dabei entstehen;

- Zellen verbinden das Verbinden der Zellen in der entstehenden Tabelle um die maximale Ähnlichkeit mit dem Original zu erreichen. Das Deaktivieren beschleunigt den Export, das Aussehen wird jedoch schlechter.

- WYSIWYG eine hundertprozentige Übereinstimmung des Äußeren der Datei beim Export. Wird die Option deaktiviert, so wird eine Optimierung durchgeführt, bei welcher die Anzahl der Spalten und Zeilen in der resultierenden Datei reduziert wird;

- Hintergrund - der Export der gewählten Hintergrundfarbe;

- Seitenumbrüche aktiviert Seitenumbrüche in der Excell-Datei;

- Excell nach Export öffnen die Datei wird gleich nach dem Export mit Excell geöffnet.

Besonderheit des Exportes: damit der Export einwandfrei funktionieren kann, ist das Vorhandensein von Excell auf dem PC unbedingt notwendig! RichText-Objekte werden wie einfacher Text exportiert, die Übertragung von Grafiken wird unterstützt.


Export in das XML-Format

XML (Extensible Markup Language). XML ist für die Aufbewahrung von strukturierten Daten vorgesehen, aber auch zum Austausch der Daten zwischen verschiedenen Programmen. FastReport verwendet das Format XML zum Übertragen der Daten in den Tabelleneditor Excell `03 und älterer Versionen.

Art des Exportes Tabellarisch.

Beim Export in das Format XML, wird ein Fenster mit den Einstellungen der zu exportierenden Datei angezeigt.

screenshot - 18.05.2009 , 19_36_13

Exporteinstellungen:

- Weiter ununterbrochener Export. Die Seiten und Tabellen werden exportiert ohne unterbrochen zu werden und der Ausblendung der Spaltenbezeichnungen (diese werden nur auf der ersten und letzten Seite angezeigt). Die Option ist sinnvoll bei großen Dokumenten, die zur weiteren Bearbeitung vorgesehen sind;

- Seitenumbrüche aktiviert Seitenumbrüche in der Excell-Datei;

- WYSIWYG eine hundertprozentige Übereinstimmung des Äußeren der Datei beim Export. Wird die Option deaktiviert, so wird eine Optimierung durchgeführt, bei welcher die Anzahl der Spalten und Zeilen in der resultierenden Datei reduziert wird;

- Hintergrund - der Export der gewählten Hintergrundfarbe;

- Excell nach Export öffnen die Datei wird gleich nach dem Export mit Excell geöffnet.

Besonderheit des Exportes: RichText-Objekte werden wie einfacher Text exportiert, die Übertragung von Grafiken wird nicht unterstützt.


Export ins CSV-Format

Die CSV-Datei enthält Werte in Form von Tabellen und diese sind so angeordnet, dass jeder Wert in der Spalte vom Wert der folgenden Spalte durch Trennzeichen getrennt ist und jede neue Reihe beginnt in einer neuen Zeile. Dieses Format kann in verschiedene Tabelleneditoren importiert werden.

Art des Exportes Tabellarisch.

Beim Export in das Format CSV, wird ein Fenster mit den Einstellungen der zu exportierenden Datei angezeigt.

screenshot - 18.05.2009 , 19_38_01

Exporteinstellungen:

- OEM Zeichensatz Auswahl des OEM Zeichensatzes der CSV-Datei;

- Trennzeichen Trennzeichen der Werte;

- Nach Export öffnen die Datei wird gleich nach dem Export mit dem voreingestellten Programm geöffnet.

Besonderheit des Exportes: Das Reportdesign wird beim Export in dieses Format nicht gespeichert. Grafiken werden nicht unterstützt.


Export in das HTML-Format

HTML (Hypertext Markup Language) gilt als die Standardsprache im Internet. HTML wurde entwickelt um wissenschaftliche und technische Dokumentationen auszutauschen, welche von Leuten verwendet werden sollten, die nicht Spezialisten auf dem Gebiet der Verschachtelungen sind. Es dient der Erstellung von einfachen aber optisch guten Dokumenten. Um die Dokumentenstruktur zu vereinfachen, wird Hypertext unterstützt.

Art des Exportes Tabellarisch.

Beim Export in das HTML-Format, wird ein Fenster mit den Einstellungen der zu exportierenden Datei angezeigt.

screenshot - 18.05.2009 , 19_35_28

Exporteinstellungen:

- Stile Export der Stile der Textobjekte. Das Deaktivieren beschleunigt den Prozess des Exportes, das Aussehen wird jedoch verschlechtert;

- Alles in einen Ordner alle zusätzlichen Dateien werden im selben Ordner aufbewahrt wie die Hauptdatei;

- Seitennavigator ein spezieller Navigator wird erstellt zur schnelleren Navigation über die Seiten;

- Feste Breite die automatische Änderung der Tabellenbreite bei Änderung der Größe des Fensters wird blockiert;

- Mehrfachseite jede Seite wird in einer separaten Datei gespeichert;

- Hintergrund Export grafischer Attribute, die auf der Seite vorhanden sind;

- Bilder aktiviert die Möglichkeit der Darstellung von Grafiken;

- Nach Export öffnen die Datei wird gleich nach dem Export mit dem voreingestellten Programm geöffnet.

Besonderheit des Exportes: der Export kann aus mehreren Dateien bestehen, Grafiken werden unterstützt und jede separat in einer eigenen Datei gespeichert. RichText Objekte werden als einfacher Text exportiert, das Aussehen und die Größe der Datei sind stark von der verwendeten Maske des Reportes abhängig (Kapitel «Vorschläge zur Reporterstellung»).


Export in ein Textformat

Standard Textdatei enthält Informationen aus dem Report, diese ist maximal optimiert und umgewandelt in Zusammenhang mit der Besonderheit des gegebenen Formates.

Art des Exportes Tabellarisch.

Beim Export in Text, wird ein Fenster mit den Einstellungen der zu exportierenden Datei angezeigt.

screenshot - 18.05.2009 , 19_38_33

Exporteinstellungen:

- Seitenumbrüche aktiviert Seitenumbrüche in der ausgehenden Datei;

- Leerzeilen Export leerer Zeilen;

- Rahmen Export von Rahmen der Textobjekte;

- OEM Zeichensatz die Auswahl des OEM Zeichensatzes in der entstehenden Datei;

- Nach Export öffnen die Datei wird gleich nach dem Export mit dem voreingestellten Programm geöffnet.

Besonderheit des Exportes: die Formatierung des Reporte wird beim Export in dieses Format nicht beibehalten. Grafiken werden nicht unterstützt und die Seitenbreite ist von den enthaltenen Textobjekten abhängig.


Export in Formate Jpeg, BMP, Gif, Tiff

FastReport erlaubt den Export in folgende grafische Formate.

- JPEG (Joint Photographic Experts Group) das Format basiert auf dem Komprimierungsalgorithmus. Dieses sucht nicht die gleichen Elemente, sondern betrachtet den Abstand zwischen den Pixeln. Es hebt sich durch einen hohen Stand der Kompression hervor, jedoch auf Kosten eines Teilverlustes von grafischen Informationen.

- BMP (Windows Device Independent Bitmap) wird zur Speicherung von Rasterdarstellungen verwendet, die zur Verwendung in Windows vorgesehen sind. Es ist das Standardformat der Dateien für Computer die Windows besitzen.

- GIF (Graphics Interchange Format) Unabhängig von der Hardware, unterstützt das GIF-Format den Transfer von Bitmap-Dateien in Netzwerken. Dies erlaubt die hohe Komprimierung der Dateien, welche viele gleichartige Inhalte besitzen (Logos, Aufschriften, Pläne)

- TIFF, TIF (Target Image File Format) ein unabhängiges Format. Eines der am weitverbreitesteten und zuverlässigsten Formate in Polygrafie und im Faksimile-Übertragung von Informationen

Art des Exportes Rendering.

Beim Export in eines der oben genannten Grafikformate, wird ein Fenster mit den Optionen der Darstellung geöffnet.

screenshot - 18.05.2009 , 19_36_30

Exporteinstellungen:

- Einzelne Dateien ist die Option aktiviert, so wird jede Seite des Reports in eine separate Datei exportiert. Der Name der Datei wird der gewünschte sein, mit dem Zusatz der Unterstreichung und Seitenzahl;

- Schwarz/Weiss die Darstellung in Schwarz/Weiss;

- Seiten zuschneiden nach dem Export wird die freie Fläche an den Seiten abgeschnitten;

- JPEG Qualität die Ebene der Komprimierung der JPEG-Datei. Die Option ist nur aktiv beim Export in das JPEG-Format;

- Auflösung (dpi) die Auflösung der ausgehenden grafischen Darstellung;

Besonderheit des Exportes: beim Export einiger Seiten in eine Datei (deaktivierte Option "Einzelne Dateien" muss die hohe Ressourcennutzung des Exportes beachtet werden.


Versand des Reportes über E-Mail

FastReport erlaubt den Versand des fertigen Reportes über E-Mail in dem benötigten Format. Es braucht keine unterstützenden Programme.

Bei Auswahl des Exportes über E-Mail, wird ein Dialog aufgerufen, in dem die Optionen der E-Mail und des zu exportierenden Formates eingestellt werden.

Vor der Erstellung des Exportes und dessen Versand über E-Mail, ist es wichtig die Benutzerparameter des E-Mail Fachs einzustellen. Diese Einstellungen befinden sich im Tab "eMail Konto":

screenshot - 18.05.2009 , 19_37_44

- Absender Name Name des Absenders;

- Absender Adresse E-Mail Adresse des Absenders;

- Organisation das Unternehmen des Absenders;

- Signatur Signatur des Briefes. Diese kann automatisch erstellt werden, beim Klicken auf "Erstellen", wenn die vorherigen Felder ausgefüllt worden sind;

- Server - Adresse des SMTP Servers;

- Port - des SMPT Servers;

- Login Login des Zuganges zu dem SMPT Server, wenn dies notwendig ist;

- Kennwort Kennwort der Autorisierung;

- Eigenschaften speichern diese werden für weitere Benutzung gespeichert.

Nachdem die Einstellungen zum Versand der E-Mail festgelegt worden sind (dies muss nur einmal gemacht werden), müssen die Eigenschaften des E-Mail selbst festgelegt werden im Tab «eMail»:

screenshot - 18.05.2009 , 19_37_20

- Adresse die E-Mail Adresse des Empfängers. Die früher gewählten Adressen können aus der Drop-Down-Liste ausgewählt werden;

- Betreff Betreff der E-Mail. Die früher gewählten Betreffe können aus der Drop-Down-Liste ausgewählt werden;

- Text Text der E-Mail;

- Format das Format des Anhangs. Kann aus den oben erwähnten Formaten ausgewählt werden, aber auch das Format des fertigen Reportes kann ausgesucht werden (.FP3);

- Erweiterte Export Einstellungen ist diese Option aktiviert, so wird nach dem Klicken auf «OK» ein Fenster mit den Einstellungen des gewählten Formates aufgerufen. Ansonsten werden die standardmäßig verwendeten Einstellungen benutzt.

Besonderheit des Exportes über E-Mail: es wird nur der plain der Autentifizierng auf SMTP Servern unterstützt. Wird die Authentifizierung nicht verlangt, so müssen die Felder «Login» und «Kennwort» in den Einstellungen nicht ausgefüllt werden.


Vorschläge zur Reporterstellung

Es ist wichtig zu erwähnen, dass die Qualität des Exportes sehr stark von der Art der Erstellung der Maske abhängig ist. FastReport besitzt umfangreiche Möglichkeiten zur Manipulation der Objekte bei der Herstellung der Reportmaske. Dadurch besitzt man viele Vorteile bei der schnellen Generierung der Reporte und dem Druck dieser. Das gedruckte Dokument wird genauso aussehen wie auf dem Monitor, was auch das eigentliche Ziel des Reportgenerators FastReport ist. Auf der anderen Seite dieser Freiheit bei der Erstellung, ist das komplizierte Exportieren des erhaltenen Dokumentes in verschiedene Formate. Diese besitzen eigene, oftmals große Beschränkungen in der Darstellung der Daten. In diesem Kapitel werden Vorschläge gegeben bei der Erstellung der Reporte, welche zum Export vorgesehen sind.

Viele Formate verwenden tabellarische Darstellungen der Daten. Vor allem sind es die Formate HTML, XLS, XML, RTF und CSV. Die Überschneidungen und Schichtung der Zellen sind in diesen Formaten nicht zulässig (insbesondere HTML und RTF). Im Gegensatz zu den Freiheiten beim Prozess der Maskenerstellung im Designer FastReport. Die Exportfilter beachten diese Anforderungen beim Transfer der Objekte in das benötigte Format. Dies wird durch spezielle Algorithmen der Übertragung und der optimalen Anordnung ermöglicht. An Stellen wo sich die Objekte überschneiden werden neue Spalten und Zeilen in der neuen Tabelle gebildet. Dies ist notwendig zur genaueren Positionierung der übertragenden Objekte in FastReport zu erhalten und die größtmögliche Übereinstimmung zwischen der ursprünglichen und der gedruckten Datei zu erreichen. Viele, sich überschneidende Objekte im Report führen dazu, das sich die Anzahl der Spalten und Zeilen in der Tabelle erhöht. Dies erschwert die weitere Verwendung der Datei und verlangsamt den Export dieser.

Zum Beispiel ist im Report eine geringfügige Überschneidung von zwei Objekten vorhanden. Diese befinden sich auf einem Band und überschneiden sich. Die Zahl der Einträge bei der Erstellung des Reportes beträgt 150. Beim Export in das Format RTF werden 450 Zeilen in der Tabelle erstellt (150 für jedes Objekt und 150 für die Überschneidung). Wird die Überschneidung behoben, wird die Zahl auf 300 reduziert. Bei großen Reporten und und hoher Anzahl der Objekte wird der Unterschied enorm sein, auch in der Größe der ausgehenden Datei.

Objekte auf der Reportseite Objekte nach dem Export in Excell

Sie müssen dies beachten bei der Erstellung der Maske, falls Sie vorhaben diese später in verschiedene Formate zu exportieren.

Bei der Erstellung der Tabellen in den Reporten, achten Sie darauf, dass die Ränder der Zellen aneinanderliegen. Es ist wichtig, dass sich die Zellen nicht überschneiden und nicht übereinanderliegen. Der Algorithmus des Exportfilters wird die Zellen anpassen, aber das Resultat des Exportes kann von dem gewünschten abweichen (sprich man sieht nicht das, was man erwartet hat). Plazieren Sie die Objekte so, dass diese auf einer Linie liegen; vertikal und horizontal. Dabei helfen die Hilfslinien:

Um die Hilfslinien verwenden zu können, klicken Sie auf das Lineal oben bzw. links und bei festgehaltener Maustaste ziehen Sie die Linie auf die Seite. Dort legen Sie sie auf dem gewünschten Platz ab. Sie können nun die Objekte entlang der vertikalen/horizontalen Linie anordnen.

Überlappungen der Zellen können ebenfalls durch die Ausrichtung der Textobjekte an den Gitterlinien vermieden werden. Achten Sie darauf das diese Option im Designer aktiviert ist. Um die Ausrichtung zu vereinfachen, kann der Abstand der Gitterlinien erhöht werden. Die Abstände und die Ausrichtung kann man im Menü des Designers unter «Ansicht|Optionen...» einstellen:

screenshot - 18.05.2009 , 19_45_16.zoom64

Für die Rahmenlinien der Textobjekte ist es besser die integrierten Möglichkeiten der Textobjekte und nicht die grafischen Objekte wie Linien, Rechtecke und weitere zu verwenden. Versuchen Sie nicht Hintergrundobjekte unter durchsichtige Textobjekte zu legen.

Die Anwendung dieser einfachen Regeln, erlaubt die Erstellung von Reporten, die nach dem Export in ein Format welches tabellarisch ist, ein professionelles Aussehen besitzen.

Die unten aufgeführten Beispiele zeigen einmal die falsche und einmal die richtige Anordnung der Objektanordnung bei der Erstellung der Reportmaske.

falschrichtig

Die Objekte sind horizontal ausgerichtet. Wenn möglich sollte bei der Ausrichtung auf die hervorgehobenen Linien geachtet werden. Dadurch erhalten die Objekte eine gleichmäßige horizontale Ausrichtung.

falsch

richtig

Die Objekte überschneiden sich. In einem solchem Fall werden bei einem Export in ein Tabellenformat zusätzliche, nutzlose Spalten und Zeilen gebildet. Auch entstehen drei zusätzliche Zellen im Bereich der Überschneidung.

Um die Grundlagen der optimalen Reporterstellung zu erlernen, empfehlen wir, sich mit den Beispielen (welche im Set FastReport enthalten sind) vertraut zu machen.


Berichte

Mit Berichten können Berichte generiert, also Daten unter anderem auf Papier gebracht werden. Das heisst, Daten aus der Datenbank werden mit einer Layout-Vorlage, welche die Anordnung der Daten und das Design festlegt, z.B. auf einer A4-Seite dargestellt. Dieses Dokument (Bericht) kann in einem Vorschaufenster angezeigt, ausgedruckt oder als Datei gespeichert werden.


Verwaltung der Vorlagen

Die Verwaltung der Vorlagen wird in der Backstage-Ansicht unter Konfiguration => Vorlagen aufgerufen.


Vorlagen

In der Vorlagenverwaltung können sämtliche Bericht-, Email- und SMS-Vorlagen bearbeitet werden.


Bericht-Vorlagen

Im Reiter Bericht-Vorlagen befinden sich alle Druck-Vorlagen. Jedem Bereich können beliebig viele verschiedene Vorlagen hinzugefügt werden. Bestehende Vorlagen können kopiert und bearbeitet werden.

Links werden die einzelnen Bereiche aufgelistet. Rechts werden alle Vorlagen des ausgewählten Bereiches angezeigt und verwaltet.

siehe auch:

Angaben auf einer Vorlage

Vorlage hinzufügen

Vorlage kopieren


Angaben auf einer Vorlage

Folgende Angaben sind auf einer Bericht-Vorlage enthalten:

Datenfeld | Beschreibung | benötigt
Titel: | Titel der Vorlage. Dieser Titel erscheint beim Ausführen des Berichtes im entsprechenden Modul. | JA
Layout Speicherort in Datei: | Mit dem Layout-Speicherort kann angegeben werden, ob das Layout der Vorlage in einer Datei oder in der Datenbank gespeichert wird. | JA
Layout-Datei: | Datei, welche das Layout enthält, wenn bei Layout-Speicherort "Datei" ausgewählt wurde. | (JA)


Vorlage hinzufügen

Klicken Sie auf Vorlage erstellen um eine neue Vorlage hinzuzufügen.

siehe auch:

Layout erstellen

Layout bearbeiten


Vorlage duplizieren

Klicken Sie auf Vorlage duplizieren, um eine Kopie der markierten Vorlage zu erstellen.

siehe auch:

Layout erstellen

Layout bearbeiten


Layout erstellen

Auf einer Vorlage ist immer ein Layout definiert. Das Layout bestimmt Inhalt und Aussehen der Vorlage. Es werden verschiedene Arten von Layouts unterstützt.

Um ein neues Layout zu erstellen (z.B. nachdem Sie eine neue Vorlage erstellt haben), klicken Sie auf Layout erstellen und wählen Sie danach die gewünschte Layoutart.

Klicken Sie auf Übernehmen, um das Layout zu erstellen. Das Layout wird im entsprechenden Vorlagendesigner geöffnet und kann dort bearbeitet werden.

Referenzen zur Erstellung von Layouts:

Berichte im RTF-Layout

Berichte im Excel-Layout

Berichte im Designer-Layout


Layout bearbeiten

Klicken Sie auf Layout bearbeiten, um das Layout einer Vorlage zu bearbeiten, oder führen Sie einen Doppelklick auf die Vorlage aus.


Layout in Datei oder Datenbank speichern

Es kann angegeben werden, ob das Layout einer Vorlage in einer Datei oder in der Datenbank gespeichert werden soll.

Layout in Datenbank speichern:

Vorteile:

- Das Layout wird zentral gespeichert. Das heisst, alle Benutzer verwenden dieselben Layouts (bei Netzwerkversionen).

- Es werden keine Layout-Dateien benötigt.

·Wählen Sie bei Layout Speicher-Ort die Option Datenbank, um eine verknüpfte Layout-Datei in die Datenbank zu speichern (importieren).

Es erscheint ein Dialog, den Sie wie folgt beantworten können:

·Klicken Sie auf Ja, um die Layout-Datei in der Datenbank zu speichern.

·Klicken Sie auf Nein, um die Layout-Datei nicht in der Datenbank zu speichern. Es wird eine neues leeres Layout in der Datenbank erstellt.

Layout in Datei speichern:

Vorteile:

1. Die Layout-Datei kann für mehrere Vorlagen verwendet werden.
2. Die Layout-Datei kann per Email versendet werden.

·Wählen Sie bei Layout Speicher-Ort die Option Datei, um ein bestehendes Layout als Layout-Datei zu speichern (exportieren) und anschliessend mit der Vorlage zu verknüpfen.

Es erscheint ein Dialog, den Sie wie folgt beantworten können:

·Klicken Sie auf Ja, um das Layout in eine Datei zu speichern.

·Klicken Sie auf Nein, um das Layout nicht in eine Datei zu speichern. Achtung! Das Layout wird in diesem Fall gelöscht.


Berichte im Excel-Layout

In der Referenz für XLS-Berichte wird Format, Aufbau und Syntax zum Erstellen eines Layouts für XLS-Berichte beschrieben.

Sehr wichtig:

XLS-Berichte werden mittels Visual Basic-Scrips erstellt. Deshalb müssen Sie in Excel die Option "Zugriff auf Visual Basic-Projekt vertrauen" aktivieren.

Wenn "Zugriff auf Visual Basic-Projekt vertrauen" deaktiviert ist, erscheint beim Ausführen eines XLS-Berichtes folgender Fehler:

Siehe auch:

Excel Option Zugriff auf VB-Projekt aktivieren


Excel Option "Zugriff auf VB-Projekt" aktivieren

Excel-Berichte können nur erstellt werden, wenn im Excel die Option "Zugriff auf Visual Basic-Projekt vertrauen" aktiviert ist.

siehe auch:

Excel XP/2003

Excel 2007

Excel 2016+


Excel XP/2003

Excel-Berichte können nur erstellt werden, wenn im Excel XP/2003 die Option "Zugriff auf Visual Basic-Projekt vertrauen" aktiviert ist.

Option in Exel XP/2003 aktivieren:

·Starten Sie MS Excel

·Klicken Sie im Menu "Extras" auf "Makro" -> "Sicherheit"

·Es erscheint folgendes Fenster.

·Wählen Sie "Vertrauenswürdige Quellen" an.

·Aktivieren Sie "Zugriff auf Visual Basic-Projekt vertrauen".

·Klicken anschliessend auf OK.


Excel 2007

Excel-Berichte können nur erstellt werden, wenn im Excel 2007 die Option "Zugriff auf Visual Basic-Projekt vertrauen" aktiviert ist.

Option in Exel 2007 aktivieren:

·Starten Sie MS Excel

·Öffnen Sie die Excel-Optionen

·Navigieren Sie auf den Punkt Vertrauensstellungscenter

·Klicken Sie auf Einstellungen für das Vertrauensstellungscenter...

·Navigieren Sie auf den Punkt Einstellungen für Makros

·Markieren Sie bei Entwicklermakroeinstellungen die Option Zugriff auf das VBA-Projektobjecktmodell vertrauen


Excel 2016+

Excel-Berichte können nur erstellt werden, wenn im Excel die Option "Zugriff auf Visual Basic-Projekt vertrauen" aktiviert ist.

Option in Exel 2016+ aktivieren:

·Starten Sie MS Excel

·Öffnen Sie die Optionen

·Navigieren Sie auf den Punkt Trust Center

·Öffnen Sie Einstellungen für das Trust Center

·Klicken Sie links auf Makroeinstellungen und setzen Sie den Hacken bei Zugriff auf das VBA-Projektobjektmodell vertrauen

·Mit Klick auf OK speichern und anschliessend Excel schliessen


XLS Layout-Datei

Die Designdefinition der Berichte wird in einer XLS Datei beschrieben, einer sogenannten Layout-Datei.

Es ist eine Datei im XLS Format, die mit Microsoft Excel erstellt und bearbeitet werden kann.

In einer XLS Layout-Datei kann mit einer speziellen Syntax definiert werden, wie die Daten auf einem Bericht dargestellt werden.


Aufbau

(Der Aufbau der Syntax für XLS Layout-Dateien ist leider noch nicht verfügbar)

Wie man eine Vorlage und das zugehörige Layout erstellt wird in Berichte beschrieben.

siehe auch:

Vorlagen


Berichte im RTF/Word-Layout

In der Referenz für RTF-Berichte wird Format, Aufbau und Syntax zum erstellen einer Vorlage für RTF-Berichte beschrieben.

siehe auch:

Berichte


RTF Layout-Datei

Die Designdefinition der Berichte wird in einer RTF Datei beschrieben, einer sogenannten Layout-Datei.

Es ist eine Datei im RTF Format, die mit jedem gängigen RTF Editor (z.B. Microsoft Word) erstellt und bearbeitet werden kann.

In einer RTF Layout-Datei kann mit einer speziellen Syntax definiert werden, wie die Daten in einem Bericht dargestellt werden.


Aufbau

Wie man eine Vorlage und das zugehörige Layout erstellt wird in Berichte beschrieben.

siehe auch:

Vorlagen


Scans

In einem Scan werden alle Datensätze einer Abfrage durchlaufen und die Daten der Abfrage ausgegeben.

Scans können verschachtelt werden. Auf diese Weise können Master-Detail Reports realisiert werden.


Einfacher Scan

In einem einfachen Scan wird der Abschnitt zwischen den Linien Scan und EndScan für jeden Datensatz in der Abfrage repetiert.

Code

\Scan(Abfrage) [, while(FUNCTION(...))] [,page] [,noeof] [,function1,...,functionN]\

\EndScan [,function1,...,functionN]\

Beispiel

\scan(a)\

Hallo Welt

\EndScan\

Hier wird für jeden Datensatz in der Abfrage a Hallo Welt auf dem Report plaziert. Wenn die Abfrage also 10 Datensätze beinhalltet, wird 10-mal Hallo Welt auf dem Report platziert.


Erweiterter Scan

In einem erweiterten Scan wird der Abschnitt zwischen den Linien ScanEntry und ScanFooter für jeden Datensatz in der Abfrage repetiert.

Beim Eintreten in den Scan wird einmalig der Abschnitt zwischen Scan und ScanEntry platziert.

Nachdem alle Datensätze durchlaufen sind wird einmalig der Abschnitt zwischen Scanfooter und EndScan platziert.

Diese Funkionalität kann z.B. bei Tabellen angewendet werden:

Zwischen Scan und ScanEntry wird der Tabellenkopf platziert.

Zwischen ScanEntry und ScanFooter werden die Daten der Tabelle platziert.

Zwischen Scanfooter und EndScan wird die Zusammenfassung platziert.

ScanEntry und ScanFooter müssen nicht zwingend verwendet werden. Es ist möglich beide, oder nur eines der beiden zu verwenden.

Erweiterter Scan

\Scan(Abfrage) [, while(FUNCTION(...))] [,page] [,noeof] [,function1,...,functionN]\

\Scanentry [,function1,...,functionN]\

\Scanfooter [,function1,...,functionN]\

\Endscan [,function1,...,functionN]\

Beispiel

\scan(a)\

Titel

\ScanEntry\

Hallo Welt

\ScanFooter\

Zusammenfassung

\EndScan\

Hier wird für jeden Datensatz in der Abfrage a Hallo Welt auf dem Report platziert. Wenn die Abfrage also 10 Datensätze beinhalltet, wird 10-mal Hallo Welt auf dem Report platziert. Vor das erste Hallo Welt wird Titel platziert und nach dem letzten wird Zusammenfassung platziert.


Scanfunktionen

In jedem Scanelement können beliebig viele Funktionen ausgeführt werden.

Die Funktionen werden durch Kommas voneinander getrennt.

Diese Funktionen können z.B.verwendet werden, um Beträge zusammenzuzählen. Das Resultat kann dann, z.B. in einem ScanFooter, als Total ausgegeben werden.

Die Verfügbaren Funktionen finden sind im Kapitel Funktionen beschrieben.

Beispiel

\Scan(a), FUNCTION(PARAMETER1, PARAMETER2)\


Spezielle Scan Funktionen

Es gibt spezielle Funktionen die nur in einem Scanelement verwendet werden können.

Scanelementfunktionen

while | Der Scan läuft vom Ersten bis zum Letzten Datensatz der Abfrage solange die Funktion in while true ist. Liefert die Funktion in while false zurück, wird der Scan abgebrochen und verlassen.
page | Fügt bei jedem Durchlauf eine neue Seite ein, ausgenommen beim Ersten.
noeof | Der Scanblock wird nur platziert wenn die Abfrage Daten enthält. Wird meistens bei Master-Detail Reports für den Detail-Scan verwendet.


Variablen

Auf einem Report können Variablen verwendet werden, um temporäre Berechungen durchzuführen oder um gewisse Sachen zwischenzuspeichern.

Eine Reportvariable kann auf einfache Weise über \VARIABELNAME\ auf dem Report platziert werden.

Die meisten Funktionen verwenden Variablen um Werte zu speichern. Viele der Funktionen erzeugen bei Bedarf eine neue Variable wenn diese noch nicht existiert.

Beispiel

\CTN('1', a_var)\

Wenn beim Ausführen dieser Funktion die Variable a_var noch nicht existiert, wird die Variable neu angelegt und das Ergebnis in diese gespeichert.


Konstanten

Einer Funktion können nicht nur Variablen und Datenbankfelder einer Abfrage übergeben werden, sondern es können auch konstante Werte übergeben werden.

Ein konstanter Wert muss immer in '' oder ~~ Zeichen eingeschlossen werden.

Beispiel

\CTN('1', a_var)\

\CTN(~1~, a_var)\

Hier wird der Funktion CTN als erster Parameter der konstante Wert 1 übergeben.


Bedingungen

Bedingungen können mit IF-ELSE-ENDIF realisiert werden.

Syntax:

\If(<boolean value>)\

.............................................

\else\

.............................................

\endif\

Hinnweis: \else\ ist optional.


Funktionen

Mit den Funktionen können Berechnungen durchgeführt werden, und Ausgaben formatiert werden.

Jede Funktion benötigt gewisse Parameter. Bei manchen Funktionen gibt es optionale Parameter die nur bei Bedarf übergeben werden müssen.

Die Parameter können Reportvariablen, Konstanten und andere Funktionen sein.

Der Rückgabewert einer Funktion kann auf einfache Weise über \FUNCTION(a:feld, a:feld2)\ auf dem Report platziert werden.

Wenn die Funktionen keinen Rückgabewert liefert wird eine leerer String platziert.

Allgemeiner Syntax

FUNKTION(a:feldname, b:feldname)

FUNKTION('konstante', a:feldname)

FUNKTION(report_variable, 'konstante')

FUNKTION(FUNKTION2(a:feldname, b:feldname), FUNKTION(report_variable, 'konstante'))


Funktionen mit Rückgabewert

Funktionen mit einem Rückgabewert werden normalerweise benötigt um Daten formatiert auf dem Report zu platzieren.


FIMG

Importiert eine Grafikdatei und gibt sie im korrekten RTF Format zurück, damit Sie im Report platziert werden kann.

Syntax

FIMG(FileName)

Importiert die Grafikdatei FileName und gibt sie im korrekten RTF Format zurück.

Beispiel

\FIMG('.\custom\logo.bmp')\

Importiert die Grafikdatei .\custom\logo.bmp und platziert sie auf dem Report.

Hinnweis:

Diese Funktion ist bei Reports die mit dem ML2-Server-Module erzeugt werden nicht verfügbar.


FORMATF

Platziert eine Kommazahl formatiert auf dem Report.

Syntax

FORMATF(Wert, Format)

Formatiert den Wert in Wert nach den Vorgaben in Format und gibt das Ergebnis zurück.

Format funktionen

Bezeichner | Beschreibung
0 | Platzhalter für eine Ziffer. Enthält der zu formatierende Wert an der Position eine Ziffer, an der im Format-String '0' steht, wird diese in den Ausgabe-String kopiert. Andernfalls wird das Zeichen '0' an dieser Position im Ausgabe-String gespeichert.
# | Platzhalter für eine Ziffer. Enthält der zu formatierende Wert an der Position eine Ziffer, an der im Format-String '#' steht, wird diese in den Ausgabe-String kopiert. Andernfalls wird an dieser Position kein Zeichen im Ausgabe-String gespeichert.
. | Dezimaltrennzeichen. Das erste '.'-Zeichen im Format-String bestimmt die Position des Dezimaltrennzeichens im formatierten Wert. Alle weiteren dieser Zeichen werden ignoriert. Das tatsächlich im Ausgabe-String verwendete Zeichen wird mit der globalen Variable DecimalSeparator festgelegt. Die Variable erhält als Standardwert den entsprechenden Eintrag in der Registerkarte Zahlen im Modul Ländereinstellungen der Windows-Systemsteuerung.
, | Tausendertrennzeichen. Enthält der Format-String ein oder mehrere ','-Zeichen, werden in den Ausgabe-String links des Dezimaltrennzeichens nach jeder Gruppe von drei Ziffern Ausendertrennzeichen eingefügt. Die Position und Anzahl der Trennzeichen im Format-String wirkt sich nicht auf die Ausgabe aus. Sie geben nur an, dass Trennzeichen eingefügt werden sollen. Das tatsächlich im Ausgabe-String verwendete Zeichen wird mit der globalen Variable ThousandSeparator festgelegt. Die Variable erhält als Standardwert den entsprechenden Eintrag in der Registerkarte Zahlen des Moduls Ländereinstellungen der Windows-Systemsteuerung.
E+ | Wissenschaftliche Schreibweise. Sind die Zeichen 'E+', 'E-', 'e+' oder 'e-' im Format-String enthalten, wird die Zahl in der wissenschaftlichen Schreibweise formatiert. Bis zu vier '0'-Zeichen können direkt nach 'E+', 'E-', 'e+' oder 'e-' angegeben werden, um die minimale Anzahl der Stellen im Exponenten festzulegen. Bei den Formaten 'E+' und 'e+' wird für positive Exponenten ein Pluszeichen und für negative Exponenten ein Minuszeichen in den String eingefügt. Bei den Formaten 'E-' und 'e-' wird lediglich für negative Exponenten ein Vorzeichen ausgegeben.
'xx'/"xx" | In halbe oder ganze Anführungszeichen eingeschlossene Zeichen wirken sich nicht auf die Formatierung aus und werden wie eingegeben angezeigt.
; | Trennt Abschnitte für positive, negative und Nullwerte im Format-String.

Die Zeichen zwischen dem äussersten linken '0' vor dem Dezimaltrennzeichen und dem äussersten rechten '0' nach dem Dezimaltrennzeichen werden immer im Ausgabe-String angezeigt.

Die zu formatierende Zahl wird immer auf so viele Dezimalstellen gerundet, wie Ziffernplatzhalter ('0' oder '#') rechts des Dezimaltrennzeichens vorhanden sind. Enhält der Format-String kein Dezimaltrennzeichen, wird der Wert auf die nächste ganze Zahl gerundet.

Hat die zu formatierende Zahl mehr Vorkommastellen, als Ziffernplatzhalter links des '.' im Format-String vorhanden sind, werden die zusätzlichen Stellen vor dem ersten Platzhalter ausgegeben.

Damit für positive, negative und Nullwerte unterschiedliche Formate festgelegt werden können, kann der Format-String zwischen einem und drei durch Semikolons getrennte Abschnitte enthalten.

Ein Abschnitt: Der Format-String wird für alle Werte verwendet.

Zwei Abschnitte: Der erste Abschnitt wird für positive und Nullwerte, der zweite Abschnitt für negative Werte verwendet.

Drei Abschnitte: Der erste Abschnitt wird für positive, der zweite für negative, und der dritte Abschnitt für Nullwerte verwendet.

Wenn der Abschnitt für negative oder Nullwerte keine Angaben enthält, wird statt dessen der Abschnitt für positive Werte verwendet.

Ist der Abschnitt für positive Werte oder der gesamte Format-String leer, wird die Zahl im allgemeinen Gleitkommaformat mit 15 siginifikanten Stellen formatiert. Das allgemeine Gleitkommaformat wird auch verwendet, wenn mehr als 18 Vorkommastellen vorhanden sind und im Format-String nicht die wissenschaftliche Schreibweise angegeben wird.


STRREPLACE

Ersetzt alle Teilstrings in einem String durch einen anderen.

Syntax

STRREPLACE(Source, OldStr, NewStr)

Ersetzt alle Vorkommen von OldStr in Source durch NewStr und gibt das Ergebnis zurück.


RESTOREVAL

Stellt einen Wert der mit STOREVAL gespeichert wurde, wieder her.

Syntax

RESTOREVAL(Bezeichner [, Destination])

Wenn der Paramter Destination nicht angegeben wird, gibt die Funktion den gespeicherten Wert von Bezeichner zurück.

Wird der Parameter Destination angegeben, hat die Funktion keinen Rückgabewert sondern speichert den gespeicherten Wert von Bezeichner in Destination.


PRNEQINT

Hat die gleiche Funktionalität wie PRNEQ, arbeitet aber mit Zahlenvariablen und gibt bei Ungleichheit den Wert 0 zurück.


PRNNEQINT

Hat die gleiche Funktionalität wie PRNNEQ, arbeitet aber mit Zahlenvariablen und gibt bei Gleichheit den Wert 0 zurück.


PRNNEQ

Gibt nur einen Rückgabewert zurück wenn zwei Werte ungleich sind.

Syntax

PRNNEQ(Wert1, Wert2, Source)

Gibt als Rückgabewert Source zurück wenn Wert1 ungleich Wert2 ist.


PRNEQ

Gibt nur einen Rückgabewert zurück wenn zwei Werte übereinstimmen.

Syntax

PRNEQ(Wert1, Wert2, Source)

Gibt als Rückgabewert Source zurück wenn Wert1 gleich Wert2 ist.


DIV

Dividiert zwei Werte und gibt das Ergebnis zurück. Optional kann das Ergebnis in einer Variable gespeichert werden.

Syntax

DIV(Wert1, Wert2 [, Destination])

Dividiert Wert1 durch Wert2 und gibt das Ergebnis zurück. Wenn der optionale Parameter Destination angegeben wurde, wird das Ergebnis zusätzlich in Destination gespeichert.


MUL

Hat die gleiche Funktionalität wie DIV, mit dem Unterschied das mit MUL die Werte multipliziert werden.


FORMATDATE

Gibt ein Datum- oder Zeitwertwert formatiert zurück.

Syntax

FORMATDATE(Source [, Format])

Gibt den in Source übergebenen Datum- oder Zeitwert nach den Vorgaben in Format formatiert zurück.

Format funktionen

Bezeichner | Anzeige
d | Zeigt den Tag als Zahl ohne führende Null an (1-31).
dd | Zeigt den Tag als Zahl mit führender Null an (01-31).
ddd | Zeigt den Wochentag als Abkürzung (Son-Sam) an.
dddd | Zeigt den ausgeschriebenen Wochentag (Sonntag-Samastag) an.
e | Zeigt das Jahr des aktuellen Zeitalters als eine Zahl ohne führende Null an (nur bei japanischen, koreanischen und taiwanesischen Ländereinstellungen).
ee | Zeigt das Jahr des aktuellen Zeitalters als eine Zahl mit führender Null an (nur bei japanischen, koreanischen und taiwanesischen Ländereinstellungen).
g | Zeigt das aktuelle Zeitalter als Abkürzung an (nur bei japanischen und taiwanesischen Ländereinstellungen).
gg | Zeigt das ausgeschriebene Zeitalter an (nur bei japanischen und taiwanesischen Ländereinstellungen).
m | Zeigt den Monat als Zahl ohne führende Null an (1-12). Wenn der Bezeichner m unmittelbar hinter dem Bezeichner h oder hh steht, wird anstelle des Monats die Minute angezeigt.
mm | Zeigt den Monat als Zahl mit führender Null an (01-12). Wenn der Bezeichner mm unmittelbar hinter dem Bezeichner h oder hh steht, wird anstelle des Monats die Minute angezeigt.
mmm | Zeigt den Monatsnamen als Abkürzung (Jan-Dez) an.
mmmm | Zeigt den ausgeschriebenen Monatsnamen (Januar-Dezember) an.
yy | Zeigt das Jahr als zweistellige Zahl an (00-99).
yyyy | Zeigt das Jahr als vierstellige Zahl an (0000-9999).
h | Zeigt die Stunde ohne führende Null an (0-23).
hh | Zeigt die Stunde mit führender Null an (00-23).
n | Zeigt die Minute ohne führende Null an (0-59).
nn | Zeigt die Minute mit führender Null an (00-59).
s | Zeigt die Sekunde ohne führende Null an (0-59).
ss | Zeigt die Sekunde mit führender Null an (00-59).
z | Zeigt die Millisekunde ohne führende Null an (0-999).
zzz | Zeigt die Millisekunde mit führender Null an (000-999).
t | Zeigt die Uhrzeit wie in den Ländereinstellungen des Betriebssystemes definierte an.
tt | Zeigt die Uhrzeit wie in den Ländereinstellungen des Betriebssystemes definierte an.
am/pm | Verwendet die 12-Stunden-Zeitanzeige für den vorhergehenden Bezeichner h oder hh und zeigt alle Stunden vor Mittag mit dem String 'am' und alle Stunden nach Mittag mit dem String 'pm' an. Für den Bezeichner am/pm können Kleinbuchstaben, Großbuchstaben und jede Kombinnation davon angegeben werden.
a/p | Verwendet die 12-Stunden-Zeitanzeige für den vorhergehenden Bezeichner h oder hh und zeigt alle Stunden vor Mittag mit dem Zeichen 'a' und alle Stunden nach Mittag mit dem Zeichen 'p' an. Für den Bezeichner a/p können Kleinbuchstaben, Großbuchstaben und jede Kombinnation davon angegeben werden.
/ | Zeigt als Datumstrennzeichen das in den Ländereinstellungen des Betriebssystemes definierte Zeichen an.
: | Zeigt als Uhrzeittrennzeichen das in den Ländereinstellungen des Betriebssystemes definierte Zeichen an.
'xx'/"xx" | Zeichen, die in einfache oder doppelte Anführungszeichen eingeschlossen sind, werden ohne spezielle Formatierung übernommen.


PERCENT

Rechnet den prozentualen Anteil eines Wertes aus und gibt das Ergebnis zurück. Optional kann das Ergebnis in einer Variable gespeichert werden.

Syntax

PERCENT(Source, Percent [, Destination])

Rechnet den prozentualen Anteil Percent von Source aus und gibt das Ergebins zurück. Wenn der optionale Parameter Destination angegeben wurde, wird das Ergebnis zusätzlich in Destination gespeichert.

Beispiel

\PERCENT('1000', '10')\

Platziert den Wert 100 auf dem Report.


INC

Addiert zwei Werte und gibt das Ergebnis zurück. Optional kann das Ergebnis in einer Variable gespeichert werden.

Syntax

INC(Wert1, Wert2 [, Destination])

Addiert Wert1 zu Wert2 und gibt das Ergebnis zurück. Wenn der optionale Parameter Destination angegeben wurde, wird das Ergebnis zusätzlich in Destination gespeichert.


DEC

Hat die gleiche Funktionalität wie INC, mit dem Unterschied das mit DEC die Werte subtrahiert werden.


PRNNEG

Gibt nur einen Rückgabewert zurück wenn der Wert kleiner als 0 ist.

Syntax

PRNNEG(Source [, Format])

Gibt als Rückgabewert Source zurück wenn Source kleiner als 0 ist.

Wenn der optionale Parameter Format angegeben wurde, wird das Ergebnis nach den Vorgaben in Format formatiert.

siehe auch:

Format funktionen


PRNPOS

Hat die gleiche Funktionalität wie PRNNEG, mit dem Unterschied das mit PRNPOS nur ein Wert zurückgegeben wird wenn der Wert grösser als 0 ist.


FLNK

Gibt einen Wert als Hyperlink zurück.

Syntax

FLNK(Wert)

Gibt den in Wert angegebenen Hyperlink zurück.

Beispiel

\FLNK('http://www.delight.ch')\

Platziert den Link www.delight.ch auf dem Report.


EQ

Vergleicht zwei Werte und gibt Wahr oder Falsch zurück.

Syntax

EQ(Wert1, Wert2)

Beispiel

\if(EQ(a:feld1, '1'))\

Feld1 hat den Wert 1

\else\

Feld1 hat einen Wert ungleich 1

\endif\


NEQ

Hat die gleiche Funktionalität wie EQ, mit dem Unterschied das mit NEQ auf ungleicht (<>) abgefragt wird.


MONTH

Gibt den übergebenen Monat als String zurück.

Syntax

MONTH(AMonth [, Format])

Gibt den (als Nummer in AMonth übergeben) Monat als String mit dem in Format angegebenen String zurück.

Beispiel

\MONTH(3)\

Platziert den String März auf dem Report.


TRANSLATE

Gibt den Übersetzten Text des übergebenen Übersetzungsschlüssels zurück.

Syntax

TRANSLATE(AKey)

Beispiel

\TRANSLATE('IDS_Name')\

Platziert den String der unter IDS_Name in der Übersetzung angegeben wurde auf dem Report.


FRTF

Fügt RTF-Code direkt in die Ausgabedatei ein.

Syntax

FRTF(RTFCode)


Funktionen ohne Rückgabewert

Funktionen ohne Rückgabewert werden normalerweise in einem Scanelement verwendet.


SETV

Mit SETV kann einer Report Variable explizit ein Wert zugewiesen werden.

Syntax

SETV(VariableXY, '0')

Setzt die Report Variable VariableXY auf den Wert 0.


VAR

Mit VAR können Report Variablen explizit erstellt werden.

Syntax

VAR(Var1[, Var2, .., VarN])

Es können beliebig viele Variablen erzeugt werden, die einzelnen Variablen werden durch Kommas getrennt. Wenn die Variable schon existiert, hat die Funktion keinen Einfluss auf die Variable.


STOREVAL

Mit STOREVAL können Werte unter einem Bezeichner zwischengespeichert werden.

Syntax

STOREVAL(Bezeichner, Wert)

Speichert den in Wert übergebenen Wert unter dem Bezeichner Bezeichner. Der Wert kann später mit RESTOREVAL wieder hergestellt werden.


SETVAR

Mit SETVAR kann explizit eine Reportvariable erzeugt werden.

Syntax

SETVAR(a:feldname)

Erzeugt eine neue Reportvariable mit dem Namen feldname und weist ihr den aktuellen Wert von a:feldname zu.

Wenn bereits eine Variable mit dem selben Namen existiert, wird diese auf den neuen Wert gesetzt.


CTS

Die Funktion CTS inkrementiert eine Variable wenn ein String nicht leer ist. Ein String der nur aus Leerzeichen besteht wird als leer interpretiert.

Diese Funktion sollte nur in einem Scanelement verwendet werden.

Syntax

CTS(a:feld, report_variable [, NORESET])

Wenn der Wert in a:feld einen nicht leeren String enthält, wird die Variable report_variable inkrementiert.

Wird der optionale Parameter NORESET angegegeben, wird die Variable report_variable beim ersten Eintritt in den Scan nicht mit 0 initialisiert.

Beispiel

\scan(a)\

\a:number\ - \a:svalue\

\endscan, ctn(a:feldname, c_value)\

Anzahl nicht leerer Strings in Abfrage a: \c_value\

\scan(b)\

\b:number\ - \b:svalue\

\endscan, ctn(b:feldname, c_value, noreset)\

Anzahl nicht leerer Strings in Abfrage a und b: \c_value\


CTN

Hat die selbe Funktion wie CTS mit dem Unterschied, dass die Variable bei Werten ungleich 0 inkrementiert wird.

Diese Funktion sollte nur in einem Scanelement verwendet werden.


SUM

Die Funktion SUM summiert Werte und speichert das Ergebnis in eine Variable.

Diese Funktion sollte nur in einem Scanelement verwendet werden.

Syntax

SUM(a:amount, amount_sum [ , NORESET])

Der Wert in a:amount wird auf die Variable amount_sum summiert.

Wird der optionale Parameter NORESET angegegeben, wird die Variable amount_sum beim ersten Eintritt in den Scan nicht mit 0 initialisiert.


Beispiel 1

Sample1


Beispiel 2

Sample2


CRM - Adressverwaltung

In der Adressverwaltung können alle Adressen (Kunden, Lieferanten, Partner, usw.) zentral verwaltet werden.

Jede Adresse kann zu einer oder mehreren Zuordnungen hinzugefügt werden. Über diese Zuordnungen können die Adressen kategorisiert und geordnet werden. Jede Adresse besitzt ein eigenes Journal, in dem die gesamte Korrespondenz protokolliert und abgelegt wird.

Es können detaillierte Adressdaten erfasst, ein Foto oder Firmenlogo, Dokumente, Notizen und Bilder hinterlegt und ein ausführliches Journal auf jeder Adresse geführt werden. Im Journal wird sämtliche Korrespondenz samt Dokumenten, Emails, SMS, Telefonaten usw. einer Adresse abgelegt.

Mit der grafischen Terminverwaltung können gleichzeitig mehrere Terminkalender von Personen, Räumen und Geräten verwaltet werden. Auf Wunsch können automatisch Terminbestätigungen per Email oder SMS verschickt werden. In der Aufgabenliste werden alle Pendenzen aufgeführt.

Um stets die Übersicht zu wahren, kann jede Adresse in verschiedene Zuordnungen (Gruppen) eingeteilt werden. Es können sehr einfach beliebig viele eigene Adressfelder hinzugefügt und in verschiedene Kategorien eingeteilt werden. Dank der übersichtlichen Darstellung sehen Sie bei jeder Adresse immer nur die relevanten Felder. Nicht benötigte Felder werden automatisch ausgeblendet.

Die integrierte Geburtstagsliste zeigt, welche Kunden, Lieferanten, Mitarbeiter oder Geschäftspartner in den nächsten Tagen ihren Jahrestag feiern.

Mit der Anruferkennung kann die Adresse eingehender Telefonate automatisch angezeigt werden. Telefonnummern können per Mausklick gewählt werden.

Es können beliebig viele Berichte und Vorlagen wie z.B. Briefe, Serienbriefe, Adresslisten, Etiketten, Couverts, Namensschilder, Anwesenheitslisten, detaillierte Adressblätter usw. erstellt und hinterlegt werden.

Sämtliche Stammdaten, Vorlagen, Felder, Makros und Einstellungen können sehr flexibel auf Ihre Bedürfnisse angepasst werden.


Adressen

Im Bereich Adressen können die einzelnen Adressen verwaltet und erfasst werden.

Hier können alle Aktionen durchgeführt werden, die mit einer einzelnen Adresse zu tun haben.

Im linken Bereich des Fensters befindet sich die Adressliste sowie der Selektions- und Filterbereich.

Im grösseren rechten Bereich befinden sich alle Informationen und Angaben zur Adresse, die in der Adressliste ausgewählt ist.

Der rechte Bereich ist in folgende Unterbereiche aufgeteilt:

Details | Details zur ausgewählten Adresse. Es sind nur Felder, die für die Zuordnungen der Adresse eingestellt wurden sichtbar.
Journal | Protokoll über sämtliche Korrespondenz der ausgewählten Adresse.
Termine | Termine der ausgewählten Adresse.
Verknüpfungen | Verknüpfungen auf externe Programme und Informationen im Zusammenhang mit der ausgewählten Adresse.
Zuordnungen | Zuordnungen, denen die ausgewählte Adresse zugeordnet ist.
Kampagnen [nur Professional-Version] | Kampagnen, in denen die ausgewählte Adresse Mitglied ist.
Foto/Logo | Foto oder Logo zur ausgewählten Adresse.
Notizen | Notizen zur ausgewählten Adresse.


Adressliste

Die Adressliste beinhaltet alle erfassten Adressen.

Über Filter und Selektion können die Adressen nach ihren Zuordnungen und weiteren Kriterien gefiltert werden.

siehe auch:

Adresse erfassen

Filter für Adressliste

Allgemeine Dokumentation:

Tabellen


Filter und Selektion

Im Filter- und Selektionsbereich kann die Adressliste nach verschiedenen Kriterien gefiltert werden. Durch Klicken/Markieren auf den gewünschten Eintrag werden in der Adressliste nur noch Adressen angezeigt, die auf den markierten Eintrag zutreffen. Durch Mehrfachauswahl können mehrere Einträge gleichzeitig ausgewählt/markiert werden.

Ein Beispiel: Um in der Adressliste nur Adressen einer bestimmten Zuordnung zu sehen, kann in der Baumansicht die gewünschte Zuordnung markiert werden. Werden mehrere Zuordnungen gleichzeitig markiert, werden in der Adressliste entsprechend alle Adressen angezeigt.

Über den obersten Eintrag in der Baumansicht (<Alle Adressen>) werden in der Adressliste alle im Programm vorhandenen Adressen angezeigt (sofern keine anderen Filter gesetzt sind).

Anzeigemodus | Beschreibung/verfügbare Kriterien
<Alle Adressen> | Zeigt alle im Programm erfassten Adressen an.
Zuordnungen | Adressen mit einer bestimmten Zuordnung.
Geburtstagslisten | Alle Adressen aus einer bestimmten Zuordnung, die bald Geburtstag haben. Über [image] kann die Anzahl der Tage eingestellt werden.
Kundenbetreuer | Adressen, die einem bestimmten Kundenbetreuer (Mitarbeiter) zugewiesen sind.
Kampagnen | Adressen aus einer Kampagne und einem bestimmten Status in dieser Kampagne. Über Rechtsklick kann der gewünschte Status ausgewählt werden.
Länder | Adressen eines bestimmten Landes.
Kantone/Bundesländer | Adressen aus einem bestimmten Kanton (CH) oder Bundesland (DE/AT).
Regionen | Adressen aus einer bestimmten Region.
Branchen | Adressen aus einer bestimmten Branche.
Nationalitäten | Adressen mit einer bestimmten Nationalität.
Vertriebspartner nach Produkt | Vertriebspartner/Vermittler, die Kunden mit Verträgen eines bestimmten Produktes haben. (nur bei delight insurance verfügbar).
Kunden nach Produkt | Kunden, die Verträge ein bestimmten Produktes haben. (nur bei delight insurance verfügbar).
Kunden bei Gesellschaften | Kunden, die bei einer bestimmten Gesellschaft Verträge haben. (nur bei delight insurance verfügbar).
Kunden bei Vertriebspartner | Kunden, die Verträge haben, die ein bestimmter Vertriebspartner/Vermittler abgeschlossen hat. (nur bei delight insurance verfügbar).
Versicherte Personen bei Gesellschaften | Personen, die bei einer bestimmten Gesellschaft versichert sind. (nur bei delight insurance verfügbar).

Zusätzlich können Sie die Adressliste über die Spaltenüberschrift, über den Experten Filter sowie über den Schnellfilter nach weiteren Suchbegriffen filtern.


Schnellfilter

Über den Schnellfilter können Sie sehr schnell nach Adressen suchen.

Geben Sie hier den gewünschten Suchbegriff ein. Sobald Sie für kurze Zeit keine Eingabe mehr machen, wird die Adressliste automatisch nach dem eingegebenen Begriff gefiltert. Über das kleine Bild (links im Eingabefeld) kann der gewünschte Such-Modus ausgewählt werden.

Über die Schaltfläche [image] oder die Tastenkombination Ctrl+F in der Adressliste kann auf den detaillierten Schnellfilter gewechselt werden.

In der Schnellfilter-Ansicht können Kriterien, nach denen die Adressliste gefiltert werden soll, definiert werden.

Wenn man z.B. in der Adressliste nur Adressen mit der Postleitzahl 9000 sehen möchte, kann man im Eingabefeld PLZ: die Zahl 9000 eintragen. Um das Fenster zu schliessen und die eingetragenen Filterkriterien zu aktivieren drücken Sie [Enter].

Es kann nach mehreren Kriterien gleichzeitig gefiltert werden. Das heisst, es kann z.B. nach Land und Name gleichzeitig gefiltert werden. In diesem Fall würden nur Adressen die dem Land UND dem Namen entsprechen, angezeigt werden.

Wenn in einem Textfeld gefiltert wird, werden alle Adressen angezeigt, die den angegebenen Text in diesem Feld beinhalten.

Wenn z.B. im Feld Name: nach dem Text "pe" gefiltert wird, werden alle Adressen angezeigt, in deren Namen "pe" vorkommt.

siehe auch:

Experten Filter

Filter über Spaltenüberschrift

Allgemeine Dokumentation:

Schnellfilter


Filter über Spaltenüberschrift

Über die Spaltenüberschrift können Sie sehr schnell und einfach die gewünschten Datensätze filtern.

Weitere Informationen, wie man über die Spaltenüberschrift filtert, finden Sie in der allgemeinen Dokumentation unter Filter über Spaltenüberschrift.

siehe auch:

Experten Filter

Schnellfilter

Allgemeine Dokumentation:

Filter über Spaltenüberschrift


Experten Filter

Über das erweiterte Suchen kann die Adressliste detailliert gefiltert werden.

Weitere Informationen, wie man die erweiterte Suche verwendet, finden Sie in der Allgemeinen Dokumentation unter Erweiterte Suche.

siehe auch:

Schnellfilter

Filter über Spaltenüberschrift


Adresse erfassen

Über die Schaltfläche Hinzufügen in der Adressliste kann eine neue Adresse erfasst werden.

Wenn die Adressliste unter Filter und Selektion auf eine Zuordnung gefiltert ist, wird die neue Adresse automatisch mit dieser Zuordnung erfasst.

Welche Felder im Fenster zum Erfassen der neuen Adresse verfügbar sind, hängt von der unter Filter und Selektion ausgewählten Zuordnung ab. Ist keine Zuordnung ausgewählt, werden die Standard-Felder angezeigt.

Durch Klicken auf die Schaltfläche Speichern wird die neue Adresse gespeichert.

Hinweis:

Ist die Telefonbuch-CD-Erweiterung installiert, kann eine Adresse direkt aus dieser importiert werden (z.B. TwixTel).

Klicken Sie dazu auf das entsprechende Symbol.

Das Hinzufügen einer Adresse ist nicht in jedem Anzeigemodus erlaubt. Ist die Schaltfläche Hinzufügen nicht aktiv, muss zuerst unter Filter und Selektion in einen anderen Anzeigemodus gewechselt werden.

Allgemeine Dokumentation:

Datensatz hinzufügen

Tabellen


Adresse löschen

Über die Schaltfläche Löschen in der Adressliste kann die ausgewählte Adresse gelöscht werden.

Hinweis:

Das Löschen einer Adresse ist nicht in jedem Anzeigemodus erlaubt. Ist die Schaltfläche Löschen nicht aktiv, muss zuerst unter Filter für Adressliste in einen anderen Anzeigemodus gewechselt werden.

Allgemeine Dokumentation:

Datensatz löschen

Tabellen


Details

Im Bereich Details sind die Detailangaben der Adresse ersichtlich.

Es sind nur Felder sichtbar, die für die Zuordnungen der Adresse eingestellt wurden. Falls die sichtbare Adresse keiner Zuordnung hinzugefügt ist, werden die Standard-Felder angezeigt. Durch Klicken auf die Daten eines Feldes kann das Feld bearbeitet werden.

Oben links ist der Status der markierten Adresse sichtbar, durch Klicken kann dieser jederzeit geändert werden.

Rechts im Feld Bemerkungen können kurze Anmerkungen zur Adresse erfasst werden. Längere Bemerkungen können in den Notizen eingetragen werden. In Kontaktpersonen können der Adresse Kontaktpersonen zugeordnet werden. In Steht in Verbindung mit Adressen ist ersichtlich, auf welchen anderen Adressen die aktuelle Adresse als Kontaktperson eingetragen ist.

Im Bereich Klassifikation kann die Adresse anhand von verschiedenen Kriterien klassifiziert werden. Eine Klassifikation könnte z.B. sein: "Im Vorstand als Geschäftsführer".

Weitere Informationen finden Sie in der allgemeinen Dokumentation unter Detailanzeige eines Datensatzes.

siehe auch:

Einstellungen Zuordnungen


Kontaktpersonen

Im Bereich Kontaktpersonen können neue oder bereits bestehende Adressen als Kontaktperson erfasst und verknüpft werden.

Über die Schaltfläche Hinzufügen kann eine neue Kontaktperson erfasst werden.

Eine bereits im Programm erfasste Adresse kann über Bestehende Adresse verknüpfen als Kontaktperson hinzugefügt werden.

Über den Menüpunkt Neue Adresse kann eine neue Adresse erfasst und als Kontaktperson gespeichert werden.

Mit Doppelklick auf eine Adresse wird diese geöffnet.

Im Bereich Steht in Verbindung mit Adressen wird angezeigt, auf welchen anderen Adressen die aktuelle Adresse als Kontaktperson eingetragen ist.

siehe auch:

Kontaktperson verknüpfen

Kontaktperson erfassen


Kontaktperson verknüpfen

Über Kontaktperson verknüpfen kann eine bestehende Adresse als Kontaktperson auf eine andere Adresse verknüpft werden.

Eine Adresse kann auf beliebig viele verschiedene Adressen verknüpft werden.

1. Wählen Sie die Adresse, die als Kontaktperson hinzugefügt werden soll.

2. Wählen Sie unter Verknüpfen als mit welcher Beziehung diese Adresse verknüpft werden soll.

(Im oben gezeigten Bild wird "Frau Susi Schnell" als "Ehefrau" verknüpft)


Kontaktperson erfassen

Über Neue Adresse kann eine neue Adresse erfasst und als Kontaktperson auf eine andere Adresse verknüpft werden.

Die neu erfasste Adresse kann später zusätzlich (über Kontaktperson verknüpfen) auf beliebig viele andere Adressen verknüpft werden.

1. Wählen Sie unter Typ mit welcher Beziehung die neue Adresse verknüpft werden soll.

2. Geben Sie Anrede, Name, Vorname und Geburtsdatum für die neue Adresse ein. Alle anderen Adressdaten werden automatisch von der aktuellen Adresse kopiert.


Verknüpfung ändern

Kontaktpersonen und Beziehungen ändern sich. Mitarbeiter erhalten einen Titel oder werden ehemalige Mitarbeiter, Paare trennen sich, Kinder ziehen aus. Die Verknüpfung kann geändert oder entfernt werden.


Kontaktpersonen Bezeichnung

Unter Konfiguration - Adressverwaltung - Kontaktpersonen können die Bezeichnungen selber konfiguriert werden.


Zuordnungen

Im Bereich Zuordnungen kann die Adresse beliebig vielen Zuordnungen hinzugefügt werden.

Über die Zuordnungen kann die Adresse logisch in einer Baumstruktur kategorisiert und eingeordnet werden.

Die Adressliste kann über Filter und Selektion nach diesen Zuordnungen gefiltert werden.

Über die Zuordnungen wird bestimmt, welche Felder der Adresse in den Details sichtbar sind.

siehe auch:

Einstellungen Zuordnungen


Foto/Logo

Im Bereich Foto/Logo kann ein Passfoto oder ein Firmenlogo auf der Adresse hinterlegt werden.

Über die Schaltfläche Hinzufügen kann ein neues Foto/Logo aus einer Grafikdatei importiert werden.

Falls Sie einen Scanner oder eine Digital-Kamera an ihrem PC angeschlossen haben, können Sie das Bild direkt über Einscannen vom entsprechenden Gerät importieren.

Mit Löschen kann das Bild entfernt werden.

Hinweis:

Die Funktion Einscannen ist ab der Professional-Version verfügbar.


Klassifikation

Im Bereich Klassifikation kann die Adresse anhand verschiedener Kriterien klassifiziert werden.

Über die Schaltfläche Hinzufügen kann eine neue Klassifikation zur Adresse hinzugefügt werden.


Journal

Im Unterbereich Journal wird sämtliche Korrespondenz der Adresse in einem Journal geführt. Alle Informationen wie Briefe, Emails, Termine, Aufgaben, Erinnerung usw. werden automatisch im Journal archiviert.

Es werden nicht nur Informationen abgelegt wie zum Beispiel, dass ein Brief geschrieben wurde, sondern auch die Briefe und Emails selbst als Dokument im Journal. Wenn z.B. ein Serienbrief gedruckt wird, wird der persönliche Brief für jede Adresse separat im Journal hinterlegt.

Im oberen Bereich werden alle Journal-Einträge (Aktionen) zur aktuellen Adresse angezeigt. Über die Reiter Tabelle und Baum kann zwischen der Baum- und Tabellenansicht gewechselt werden.

Im unteren Bereich werden die Details zum ausgewählten Journal-Eintrag dargestellt.

siehe auch:

Tabellen-Ansicht

Baum-Ansicht

Journal-Eintrag

Aktion abschliessen

Tracking abschliessen

Folge-Aktion erstellen

Benachrichtigungen

Journal-Bericht

Allgemeine Dokumentation:

Datensatz hinzufügen

Tabellen


Tabellen-Ansicht

In der Tabellenansicht werden alle Journal-Einträge in einer Tabelle dargestellt.

Die Auswahl "Tabelle- oder Baum-Ansicht" befindet sich rechts oben.

Allgemeine Dokumentation:

Tabellen


Baum-Ansicht

In der Baumansicht werden alle Journal-Einträge in einer Baumansicht dargestellt.

Eine Folge-Aktion wird jeweils unter der Aktion angezeigt, die ihr vorausgegangen ist. Die einzelnen Einträge können mit der Maus per Drag&Drop neu strukturiert werden.


Journal-Eintrag

Auf jedem Journal-Eintrag (Aktion) können detaillierte Informationen hinterlegt werden. Relevante Dateien (z.B. Briefe) werden in den Ressourcen des jeweiligen Eintrages hinterlegt. Jede Aktion kann als Folgeaktion auf eine bestehende Aktion eingetragen werden (Baum-Ansicht).

Die Daten des Eintrages sind in folgende Bereiche unterteilt:

Details | Allgemeine Angaben, Einstellungen zur Aufgabe, Folge-Aktion bei Erfolg/Misserfolg usw.
Notizen | Notizen zum Eintrag.
Termin | Termin, der mit dem Eintrag verknüpft ist.
Reaktion | Angaben zum Erfolg/Misserfolg der Aktion, die der Eintrag beschreibt.
Ressourcen | Dokumente, die mit dem Eintrag verknüpft sind.
Verlauf | Baumansicht mit Einträgen, die mit diesem Eintrag zusammenhängen.
Tracking | Informationen zum Tracking-Status des Eintrages.

siehe auch:

Aktion abschliessen

Tracking abschliessen

Folge-Aktion erstellen

Benachrichtigungen

Journal-Bericht


Angehängte Dateien

Unter Angehängte Dateien sind alle mit dem Eintrag verknüpften Dokumente aufgeführt. Die Dokumente selbst sind in der Dokumenten-Verwaltung abgelegt.

Jede Aktion, die ein Dokument generiert (z.B. Briefe, Emails, SMS usw.) speichert das entsprechende Dokument in den Angehängten Dateien.


Details

In den Details werden allgemeine Informationen zur Aktion sowie Angaben zur Aufgabe, zur Folgeaktion und zur Kampagne hinterlegt.

Allgemein

Titel der Aktion und Mitarbeiter, der für sie zuständig ist.

Erinnerungsliste

Angabe, ob der Eintrag in der Erinnerungsliste gezeigt werden soll. Wenn ja, Anzeige welcher Mitarbeiter dafür zuständig ist. Durch Befüllen von "Erledigt am" wird der Eintrag aus der Erinnerungsliste entfernt.

Informationen über den Erfolg oder Misserfolg der Aktion werden im Bereich Abschluss erfasst. Einträge, die beendet wurden, werden ebenfalls nicht mehr in der Erinnerungsliste angezeigt.

Geplante Folge-Aktion

Geplante Folge-Aktion bei Erfolg oder Misserfolg.

Kampagnen

Angaben zur Kampagne.


Notizen

In den Notizen werden Notizen und Bilder auf dem Eintrag hinterlegt.


Allgemein

Unter Allgemein wird der Titel und der für die Aktion zuständige Mitarbeiter erfasst.

Die Angabe Aktionstyp bezeichnet die Aktion, die beim Erstellen des Eintrages ausgeführt wurde. Über Zuständig wird der für die Aktion zuständige Mitarbeiter ausgewählt.

Hinweis:

Der für die Aktion zuständige Mitarbeiter muss nicht unbedingt mit dem für die Aufgabe zuständigen Mitarbeiter übereinstimmen.

siehe auch:

Weitere Optionen


Aufgaben

Unter Erinnerungsliste kann eingestellt werden, ob der Eintrag als Aufgabe oder Erinnerung in der Erinnerungsliste angezeigt werden soll.

Die Angabe in Zeigen als definiert, ob es sich bei diesem Eintrag um eine Aufgabe oder eine Erinnerung handelt. Wird keine Angabe gemacht, erscheint der Eintrag nicht in der Erinnerungsliste. Datum definiert den Zeitpunkt zur Anzeige in der Erinnerungsliste. Über Aufgabe für wird festgelegt, welcher Mitarbeiter für die Aufgabe/Erinnerung Zuständig ist.

Zeigen als | Beschreibung
<keine> | Eintrag wird nie in der Erinnerungsliste angezeigt.
Bis Fälligkeit zu erledigen | Zeigt den Eintrag in der Erinnerungsliste n Tage vor dem Datum. Wird für Einträge verwendet, die bis zum angegebenen Datum erledigt sein müssen.
Ab Fälligkeit zu erledigen | Zeigt den Eintrag ab dem Datum in der Erinnerungsliste. Wird für Einträge verwendet, die nicht bis zu einem bestimmten Zeitpunkt erledigt werden müssen. Ein Beispiel ist die Vereinbarung mit einem Kunden, "in ca. 1/2 Jahr nochmals zurückrufen".

Hinweis:

Der für die Aktion zuständige Mitarbeiter muss nicht unbedingt mit dem für die Aufgabe zuständigen Mitarbeiter übereinstimmen.

siehe auch:

Aufgabe

Erinnerung

Aufgabenliste


Verlauf

Unter Geplante Folgeaktion wird erfasst, welche Folge-Aktion bei Erfolg oder Misserfolg der Aktion ausgeführt werden muss.

Diese Angaben können beim Erstellen einer Aktion definiert werden. Beim Abschliessen der Aktion wird dann automatisch (je nach Reaktion) die entsprechende Folge-Aktion vorgeschlagen.


Reaktionen / Einträge

Im Verlauf unter Reaktionen und relevante Einträge werden alle Einträge aufgeführt, die mit dem aktuellen Eintrag zusammenhängen.

Mit einem Klick auf [image] kann der entsprechende Eintrag aktiviert werden.


Kampagne

Unter Kampagne wird definiert, ob die Aktion Teil einer Kampagne ist.

Über Status bei Erfolg und Status bei Misserfolg kann definiert werden, welchen Status die Adresse in der Kampagne bekommen soll, wenn die Aktion abgeschlossen wird. Erfolg und Misserfolg beziehen sich hier auf die Angaben unter Reaktion.

Hinweis:

Kampagnen sind ab der Professional-Version verfügbar.


Beobachter

TEXT!!!


Tracking

Bei Tracking werden alle auf den Eintrag registrierten Tracking-Einträge angezeigt.

In Status wird angezeigt, ob eine Tracking-Benachrichtigung eingetreten und bestätigt wurde. In Ausgeführt am wird angezeigt, wann der Tracking-Eintrag bestätigt wurde.

siehe auch:

Tracking abschliessen


Ergebnis

TEXT !!!


Termin

Wenn der Eintrag mit einem Termin aus der Terminverwaltung verknüpft ist, wird hier der entsprechende Termin angezeigt. Verknüpft bedeutet, dass die Person zu diesem Termin eingeladen ist.

Hinweis:

Ein Termin kann beim Hinzufügen einer Aktion oder über die Funktion Einladen verknüpft werden.


Abschluss

Bei Reaktion wird erfasst, ob die Aktion mit Erfolg oder Misserfolg beendet wurde. Zusätzlich kann eine Begründung zur Reaktion in Form von Text und Bild hinterlegt werden.

Hinweis:

Die Reaktion wird beim Abschliessen der Aktion gesetzt.


Zeiterfassung

Text !!!!


Aktion abschliessen

Mit Aktion abschliessen kann eine laufende Aktion abgeschlossen werden.

Klicken Sie auf Aktion abschliessen, um die Aktion zu beenden.

Wählen Sie die gewünschte Abschlussreaktion, um den Eintrag direkt abzuschliessen.

siehe auch:

Journal-Eintrag hinzufügen


Mit Folgeaktion abschliessen

Mit Folgeaktion abschliessen kann direkt eine weitere Aktion erstellt werden.

Wählen Sie unter Reaktion, mit welcher Begründung die Aktion beendet werden soll.

Wenn bei Geplante Folge-Aktion eine entsprechende Folgeaktion definiert wurde, wird diese automatisch bei Nächste Aktion eingetragen. Ist die Reaktion positiv, wird die Aktion aus der Angabe Bei Erfolg verwendet (ist sie negativ, wird Bei Misserfolg verwendet).

Wenn die Aktion einer Kampagne zugeordnet ist, wird zusätzlich der neue Kampagnen-Status anhand der Status-Angaben unter Kampagne gesetzt.

Beide Angaben können bei Bedarf noch geändert werden.

Klicken Sie auf Speichern, um die Aktion zu beenden. Wenn bei Nächste Aktion eine Folge-Aktion eingetragen wurde, wird die neue Aktion gemäss den Angaben erstellt und das Fenster Neue Aktion erstellen wird geöffnet.

siehe auch:

Journal-Eintrag hinzufügen


Tracking abschliessen

Mit Tracking abschliessen wird die Tracking-Benachrichtigung auf dem Eintrag entfernt.

Die Tracking-Benachrichtigung wird aktiviert, wenn ein Tracking-Eintrag auf der Aktion bestätigt wird. Die Tracking-Benachrichtigung bewirkt, dass ein Eintrag in der Erinnerungsliste erscheint. Durch das Entfernen der Benachrichtigung wird der Eintrag aus der Erinnerungsliste entfernt.

Hinweis:

Das Erscheinen in der Erinnerungsliste bei einer Tracking-Benachrichtigung erfolgt unabhängig von den Einstellungen unter Erinnerungsliste. Beendete Einträge werden auch mit einer Tracking-Benachrichtigung nicht mehr in der Erinnerungsliste angezeigt.


Folge-Aktion erstellen

Mit Folgeaktion erstellen kann eine neue Aktion erstellt werden, die explizit auf eine bestehende Aktion folgt (Baum-Ansicht).

Wenn die aktuelle Aktion noch nicht abgeschlossen wurde, sollten Sie stattdessen Aktion abschliessen verwenden.

Klicken Sie auf Folgeaktion erstellen, um eine neue Aktion zu erstellen.

Wählen Sie die gewünschte Journal-Aktion aus der Liste, um eine entsprechende Aktion zu erstellen.

Hinweis:

Weitere Informationen wie eine Aktion erstellt werden kann, finden Sie unter Journal-Eintrag hinzufügen.


Benachrichtigungen

Über Benachrichtigungen können Benachrichtigungen für den Eintrag manuell ausgeführt werden.

Es stehen Benachrichtigungen vom Typ Journal-Eintrag zur Verfügung und sofern mit dem Eintrag ein Termin verknüpft ist, auch Benachrichtigungen vom Typ Terminbestätigung.

Klicken Sie auf Benachrichtigungen und wählen Sie die gewünschte Vorlage, um die Benachrichtigung manuell auszuführen.

Hinweis:

Es wird immer eine Vorschau der Benachrichtigung angezeigt.


Journal-Bericht

Mit Journal-Bericht können sämtliche Daten des Eintrages auf einem Bericht gedruckt werden.


Journal-Eintrag hinzufügen

Über Einzel- oder Serienaktion kann eine neue Aktion erstellt werden.

Klicken Sie auf Neu, um einen neuen Eintrag zu erstellen.

Wählen Sie Reaktion - Folgeaktion, wenn die neue Aktion von der markierten Aktion abhängen bzw. darauf folgen soll. (z.B. Antwort auf eine Email)

Wählen Sie die gewünschte Journal-Aktion aus der Liste, um eine entsprechende Aktion zu erstellen.

Über Journal-Aktionen konfigurieren gelangen Sie direkt in die Einstellungen, um eigene Journal-Aktionen zu erstellen.

Hinweis:

Für Journal-Aktionen ohne Aktionsfunktion wird das Fenster Neue Aktion erstellen nicht angezeigt. Stattdessen wird der neue Eintrag direkt in der Tabellen- oder Baumansicht hinzugefügt. Danach wird automatisch der Notizen-Bereich des neuen Eintrags geöffnet.

siehe auch:

Neue Aktion erstellen

Folge-Aktion erstellen

Aktion abschliessen


Neue Aktion erstellen

Das Fenster Neue Aktion erstellen wird beim Erstellen einer neuen Aktion angezeigt. Da je nach Aktionsfunktion unterschiedliche Eingaben erforderlich sind, kann die Darstellung des Fensters unterschiedlich ausfallen, je nach Aktion die Sie erstellen.

Die verschiedenen Darstellungen in einer Übersicht:

Darstellung | Beschreibung
Brief-Vorlagen | Beim Schreiben eines Einzel- oder eines Serienbriefes.
Dialog | Beim Erstellen einer allgemeinen Erinnerung oder Aufgabe sowie bei benutzerdefinierten Journal-Aktionen ohne bestimmten Typ.
Telefonanruf | Beim Erfassen eines Telefongespräches.
SMS | Beim Schreiben einer SMS-Nachricht.
Email | Beim Schreiben einer Email-Nachricht.
Termin | Beim Erfassen und/oder Verknüpfen eines Termins.
Formulardesigner | Beim Erfassen eines Eintrags mit einem individuell hinterlegten Eingabeformular.


Brief-Vorlagen

Aktion vom Typ Brief-Vorlagen erstellen, steht für Einzel- und Serien-Aktionen zur Verfügung.

Beim Schreiben eines Briefes oder Serienbriefes können Sie anhand einer Berichtvorlage Briefe erstellen. Je nach gewählter Bericht-Vorlage können Sie Betreff und Brieftext gleich im unten gezeigten Fenster eingeben. Es gibt Bericht-Vorlagen wie z.B. der Begleitbrief, die hier keine Eingabe erfordern. Diese können direkt in der Vorschau entsprechend bearbeitet werden.

Mit dem hier eingegebenen Text und der gewählten Bericht-Vorlage wird der entsprechende Brief erstellt. Makros können sowohl im Betreff als auch im Brieftext verwendet werden. Über Vorschau kann der Brief vor dem Drucken geprüft werden.

Wenn Sie mit dem Resultat zufrieden sind, können Sie bei Drucken auf den gewünschten Drucker auswählen.

Mit Brief(e) erstellen wird der Brief gedruckt und im Journal gespeichert. Der Brief selbst wird auf dem Journal-Eintrag unter Angehängte Dateien abgelegt.

Falls Sie eine Benachrichtigung ausgewählt haben, wird diese anschliessend ausgeführt.

Alle weiteren Funktionen in diesem Fenster werden im Kapitel Weitere Optionen beschrieben.

siehe auch:

Termin verknüpfen

Makros verwenden

Weitere Optionen


Vorschau

In der Vorschau eines Briefes kann der Brief vor dem Drucken geprüft werden.

Wenn Sie einen Serienbrief schreiben, können Sie über die Pfeile jeden Brief einzeln prüfen und gegebenenfalls bearbeiten.

Über Bearbeiten können Sie den Brief vor dem Drucken bearbeiten. Dies macht z.B. Sinn bei Serienbriefen, wo einzelne Briefe etwas abgeändert werden sollen. Wenn Sie nach dem Bearbeiten den Brief-Text ändern, gehen die Änderungen wieder verloren. Das Ändern des Brief-Textes bewirkt, dass der Brief neu erstellt wird.

Einige Bericht-Vorlagen (wie z.B. der Begleitbrief) unterstützen das direkte Bearbeiten in der Vorschau. Beim Begleitbrief können Sie z.B. mit der Maus die gewünschten Auswahlfelder (Checkboxen) sowie Betreff und Grusszeile durch einen Mausklick direkt bearbeiten.

Klicken Sie auf Journal-Eintrag, um den Brief-Text zu überarbeiten oder einen anderen Drucker auszuwählen.

Mit Brief(e) erstellen wird der Brief gedruckt und im Journal gespeichert.


Beispiel Begleitbrief

Dies ist die Vorschau der Bericht-Vorlage Begleitbrief. Diese Bericht-Vorlage erlaubt das direkte Bearbeiten in der Vorschau. Die Markierungen in den Auswahlfeldern (Checkboxen) können per Mausklick gesetzt werden.


Bemerkung

Aktion vom Typ Bemerkung erstellen, steht für Einzel- und Serien-Aktionen zur Verfügung.

Beim Erstellen von Aktionen ohne bestimmten Typ wird das normale Aktions-Fenster angezeigt.

Klicken Sie auf Speichern, um den Eintrag im Journal zu speichern.

Falls Sie eine Benachrichtigung ausgewählt haben, wird diese anschliessend ausgeführt.

Alle Funktionen in diesem Fenster werden im Kapitel Weitere Optionen beschrieben.

siehe auch:

Termin verknüpfen

Weitere Optionen


Telefonanruf

Die Aktion vom Typ Telefonanruf erstellen steht nur für Einzel-Aktionen zur Verfügung.

Beim Erfassen eines Telefongespräches kann direkt die gewünschte Nummer mit Ihrem Telefon angewählt werden. Damit die Wählfunktion funktioniert, muss ihr Telefonapparat mit dem Computer verbunden und der entsprechende Treiber konfiguriert sein. Wenn die Skype-Integration aktiviert ist, kann die Telefonnummer auch mit Skype gewählt werden.

Wählen Sie unter Telefonnummer die gewünschte Nummer und bei Wählen über den gewünschten Telefonapparat. Mit einem Klick auf Ausführen wird die Wahlhilfe gestartet.

Passen Sie bei Bedarf die Telefonnummer an und klicken Sie auf Wählen, um den Wählvorgang zu starten.

Klicken Sie auf Speichern, um die Gesprächsnotizen im Journal zu speichern.

Falls Sie eine Benachrichtigung ausgewählt haben wird diese anschliessend ausgeführt.

Alle weiteren Funktionen in diesem Fenster werden im Kapitel Weitere Optionen beschrieben.

siehe auch:

Termin verknüpfen

Weitere Optionen


SMS

Die Aktion vom Typ SMS erstellen steht für Einzel- und Serien-Aktionen zur Verfügung.

Der Versand von SMS-Nachrichten benötigt ein SMS-Konto bei aspsms.com. Nachrichten, die mehr als 160 Zeichen beinhalten, werden automatisch auf mehrere SMS-Nachrichten à 160 Zeichen aufgeteilt.

Wählen Sie bei Empfänger Nummer die gewünschte Mobil-Nummer und bei Versand über den SMS-Provider, über den die Nachricht versendet werden soll.

Geben Sie die Nachricht im SMS-Text-Feld ein. Makros können sowohl im Absender als auch im SMS-Text verwendet werden. Über Vorschau kann die Nachricht vor dem Versand geprüft werden.

Mit SMS versenden wird die Nachricht versendet und im Journal gespeichert. Die Nachricht selbst wird auf dem Journal-Eintrag unter Ressourcen abgelegt.

Falls Sie eine Benachrichtigung ausgewählt haben wird diese anschliessend ausgeführt.

Alle weiteren Funktionen in diesem Fenster werden im Kapitel Weitere Optionen beschrieben.

Hinweis:

Wenn Sie als Absender eine Telefon-Nummer verwenden möchten, müssen Sie diese zuerst bei aspsms.com freischalten.

siehe auch:

Termin verknüpfen

Makros verwenden

Weitere Optionen


Vorschau

In der Vorschau einer SMS-Nachricht kann die Nachricht vor dem Versenden geprüft werden.

Wenn Sie eine Serien-SMS schreiben, können Sie über die Pfeile jede Nachricht einzeln prüfen und gegebenenfalls bearbeiten.

Über Bearbeiten können Sie die Nachricht vor dem Versand bearbeiten. Dies macht z.B. Sinn bei Serien-SMS, wo einzelne Nachrichten etwas abgeändert werden sollen. Wenn Sie nach dem Bearbeiten den SMS-Text ändern, gehen die Änderungen wieder verloren. Das Ändern des SMS-Textes bewirkt, dass die Nachricht neu erstellt wird.

Mit SMS versenden wird die Nachricht versendet und im Journal gespeichert.


Email

Die Aktion vom Typ Email erstellen steht für Einzel- und Serien-Aktionen zur Verfügung.

Für den Versand einer Email-Nachricht muss ein Email-Konto konfiguriert sein.

Wählen Sie bei Format der Nachricht das gewünschte Email-Format. Bei Plaintext Nachrichten können keine Schriftarten, Farben, Bilder usw. verwendet werden. Verwenden Sie dazu Formatierte Nachricht.

Wählen Sie bei Empfänger-Adresse die gewünschte Email-Adresse und bei Absender-Konto die Absender-Adresse. Geben Sie die Nachricht im Email-Text-Feld ein. Makros können sowohl im Betreff als auch im Email-Text verwendet werden.

Im rechten Bereich können Dateien angehängt werden. Klicken Sie dazu auf Datei anhängen.

Beim Schreiben einer Serien-Email kann die Nachricht über Vorschau vor dem Versand geprüft werden.

Mit Email(s) versenden wird die Nachricht versendet und im Journal gespeichert. Die Nachricht selbst wird auf dem Journal-Eintrag unter Angehängte Dateien abgelegt.

Falls Sie eine Benachrichtigung ausgewählt haben, wird diese anschliessend ausgeführt.

Alle weiteren Funktionen in diesem Fenster werden im Kapitel Weitere Optionen beschrieben.

siehe auch:

Termin verknüpfen

Makros verwenden

Tracking-Funktionen verwenden

Weitere Optionen


Anrede/Grussform

Dynamische Inhalte stehen bei den E-Mails zur direkten Verfügung. Somit kann für den individuellen E-Mail-Empfänger die Anrede und die Grussform angepasst und Werbeblöcke hinzugefügt werden.

Selbstverständlich können die dynamischen Inhalte selber konfiguriert werden unter: Konfiguration - Textblöcke. Inhaltsblock Kategorien und/oder Inhaltsblöcke hinzufügen. Unter Inhaltsblock "Inhalt bearbeiten", kann der Text sowie die Makros eingefügt werden.


Vorschau

In der Vorschau einer Email-Nachricht kann die Nachricht vor dem Versenden geprüft werden.

Wenn Sie eine Serien-Email schreiben, können Sie über die Pfeile jede Nachricht einzeln prüfen und gegebenenfalls bearbeiten. Damit kann auch pro Empfänger individuell die Anrede / Grussform / Werbeblock usw. mit den "Dynamischen Inhalten" angepasst werden.

Über Bearbeiten können Sie die Nachricht vor dem Versand bearbeiten. Dies macht z.B. Sinn bei Serien-Emails, wo einzelne Nachrichten etwas abgeändert werden sollen. Wenn Sie nach dem Bearbeiten den Email-Text ändern, gehen die Änderungen wieder verloren. Das Ändern des Email-Textes bewirkt, dass die Nachricht neu erstellt wird.

Mit Emails(s) versenden wird die Nachricht versendet und im Journal gespeichert.


Termin

Die Aktion vom Typ Termin erstellen steht für Einzel- und Serien-Aktionen zur Verfügung.

Mit dieser Aktion kann eine Person (zu der diese Aktion erstellt wird) zu einem Termin aus dem Terminkalender eingeladen werden. Es kann ein bereits bestehender Termin ausgewählt oder ein neuer Termin erfasst werden. Auf Wunsch kann automatisch eine Terminbestätigung per Email (oder SMS) an die entsprechende Person versendet werden.

Markieren Sie den gewünschten Termin oder erstellen Sie einen neuen Termin. Der ausgewählte Termin wird rechts angezeigt. Links, im unteren Bereich bei Benachrichtigung, kann die gewünschte Terminbestätigung ausgewählt werden. Ist die Option Vorschau markiert, wird die Terminbestätigung vor dem Versand in einer Vorschau angezeigt.

Mit Rechtsklick auf den Kalender können Sie einen neuen Termin erstellen.

Klicken Sie auf Speichern, um die Einladung im Journal zu speichern. Falls Sie eine Benachrichtigung (Terminbestätigung) ausgewählt haben, wird diese anschliessend ausgeführt.


Formulardesigner

Die Aktion vom Typ Formulardesigner erstellen steht für Einzel- und Serien-Aktionen zur Verfügung.

Bei Aktionen von diesem Typ ist ein individuelles Eingabeformular hinterlegt. Auf dem Eingabeformular (rechts) können beliebige Elemente (Eingabefelder, Buttons, Tabellen usw.) platziert sein.


Termin verknüpfen

Jede Aktion kann mit einem Termin aus der Terminverwaltung verknüpft werden. Die Verknüpfung mit einem Termin bedeutet, dass die Person zu diesem Termin eingeladen ist.

So ist es z.B. möglich, alle Personen mit dem Schreiben eines Serien-Briefes gleichzeitig auf einen Termin einzuladen oder die Gesprächsnotiz eines Telefonates direkt mit dem Termin zu verbinden.

Wechseln Sie auf Journaleintrag anpassen und danach in den Reiter Termin, um eine Verknüpfung zu erstellen.

Markieren Sie den gewünschten Termin oder erstellen Sie einen neuen Termin. Der ausgewählte Termin wird rechts angezeigt.

Mit Rechtsklick auf den Kalender können Sie einen neuen Termin erstellen.

Wenn Sie eine Terminbestätigung versenden möchten, können Sie die entsprechende Benachrichtigung auswählen.


Makros verwenden

Makros sind Platzhalter, die beim Erstellen einer Nachricht durch entsprechende Texte ersetzt werden. Die Name der Makros werden im Text in [] geschrieben.

Klicken Sie auf Makros, um ein Makro in den Text einzufügen.

Beispiel:

[Geschaeftliche Anrede] wird durch "Sehr geehrter Herr Muster" ersetzt.


Weitere Optionen

Weitere Optionen zum Eintrag finden sich über die Funktion Serien-Vorlage bearbeiten oder Journaleintrag anpassen.

Im Reiter Journal können verschiedene Einstellungen vorgenommen werden.

Eine Reaktion kann hinterlegt werden.

Sowie ein Kampagne Status.

Allgemein | Titel der Aktion und Mitarbeiter, der für Sie zuständig ist.
Erinnerungsliste | Angabe, ob der Eintrag in der Erinnerungsliste gezeigt werden soll und wenn ja, welcher Mitarbeiter dafür zuständig ist.
Geplante Folge-Aktion | Geplante Folge-Aktion bei Erfolg oder Misserfolg.
Kampagnen | Angaben zu Kampagnen.
Benachrichtigung | Benachrichtigung, die nach dem Hinzufügen ausgeführt werden soll.
Optionen | Weitere Einstellungen zum Eintrag.

Hinweis:

Unter Umständen sind nicht immer alle Bereiche sichtbar. So werden z.B. die Bereiche Aufgabe oder Benachrichtigung ausgeblendet, wo sie nicht verwendet werden können.


Allgemein

Hier kann ein Titel und der für die Aktion zuständige Mitarbeiter erfasst werden.

Bei gewissen Aktionen wie z.B. Brief-Vorlagen, Email oder SMS wird der Titel automatisch aus dem Betreff übernommen.

Der Aktionstyp kann an dieser Stelle nicht mehr geändert werden.

Hinweis:

Der für die Aktion zuständige Mitarbeiter muss nicht unbedingt mit dem für die Aufgabe zuständigen Mitarbeiter übereinstimmen.


Erinnerungsliste

Hier kann definiert werden, ob und wie der Eintrag in der Aufgabenliste angezeigt werden soll.

Die Angabe in Zeigen als definiert, ob es sich bei diesem Eintrag um eine Aufgabe oder eine Erinnerung handelt. Wird keine Angabe gemacht, erscheint der Eintrag nicht in der Aufgabenliste. Datum definiert den Zeitpunkt zur Anzeige in der Aufgabenliste. Über Aufgabe für wird festgelegt, welcher Mitarbeiter für die Aufgabe/Erinnerung zuständig ist. Der hier ausgewählte Mitarbeiter wird in der Aufgabenliste als zuständige Person ausgewiesen.

Zeigen als | Beschreibung
<keine> | Eintrag wird nie in der Erinnerungsliste angezeigt.
Bis Fälligkeit zu erledigen | Zeigt den Eintrag in der Erinnerungsliste n Tage vor dem Datum. Wird für Einträge verwendet, die bis zum angegebenen Datum erledigt sein müssen.
Ab Fälligkeit zu erledigen | Zeigt den Eintrag ab dem Datum in der Erinnerungsliste. Wird für Einträge verwendet, die nicht bis zu einem bestimmten Zeitpunkt erledigt werden müssen. Ein Beispiel ist die Vereinbarung mit einem Kunden, "in ca. 1/2 Jahr nochmals zurückrufen".

Hinweis:

Die Einstellungen zur Aufgaben sind nur dann sichtbar, wenn die Aktion unter Optionen nicht abgeschlossen wird.


Geplante Folgeaktion

Hier kann definiert werden, welche Aktion bei Erfolg oder Misserfolg der Aktion als nächstes ausgeführt werden soll.

Diese Angaben werden beim Abschliessen der Aktion entsprechend übernommen und ausgeführt.


Kampagne

Hier kann eingetragen werden, ob der Eintrag einer bestimmten Kampagne zugeordnet werden soll.

Über Status bei Erfolg und Status bei Misserfolg kann definiert werden, welchen Status die Adresse in der Kampagne bekommen soll, wenn die Aktion abgeschlossen wird. Erfolg und Misserfolg beziehen sich hier auf die Angaben unter Reaktion.

Hinweis:

Wenn Sie nicht sicher sind, ob die Person bereits Mitglied in der Kampagne ist, können Sie unter Optionen Automatisch in Kampagne aufnehmen markieren.

Kampagnen sind ab der Professional-Version verfügbar.


Benachrichtigungen

Hier kann eine Benachrichtigung definiert werden, die nach dem Erstellen des Eintrages ausgeführt werden soll. Dieser Bereich ist nur sichtbar, wenn entsprechende Benachrichtigungsvorlagen verfügbar sind.

Ist die Option Vorschau markiert, wird die Benachrichtigung vor dem Versand in einer Vorschau angezeigt.


Optionen

Hier können weitere Angaben zum Eintrag konfiguriert werden.

Mit Aktion abschliessen wird die Aktion nach dem Hinzufügen direkt mit der unten angegebenen Reaktion abgeschlossen. Wird diese Option markiert, wird der Bereich Erinnerungsliste ausgeblendet.

Wenn Sie in diesem Bereich eine Kampagne ausgewählt haben, kann mit Status der Kampagne setzen ein neuer Status für diese Person in der Kampagne gesetzt werden. Mit der Option Automatisch in Kampagne aufnehmen wird die Person automatisch in die Kampagne aufgenommen, sofern die Person noch nicht Mitglied der ausgewählten Kampagne ist. Die Option Status der Kampagne setzen ist nur verfügbar, wenn im Bereich Kampagne kein Status gesetzt wurde.


Termine

Im Unterbereich Termine werden alle Termine der ausgewählten Adresse angezeigt.

Über Termin planen kann ein neuer Termin erstellt oder zu einem bereits bestehenden Termin aus der Terminverwaltung eingeladen werden. Mit Termin planen wird eine neue Aktion vom Typ Termin erstellt und im Journal eingetragen.


Verknüpfungen

Im Unterbereich Verknüpfungen werden für die aktuelle Adresse relevante Daten aus anderen Programmen angezeigt. So können z.B. alle Emails aus dem Email-Programm Outlook angezeigt werden, die in Beziehung zur aktuellen Adresse stehen. Alle anderen Emails, die nichts mit der Adresse zu tun haben, werden nicht angezeigt.

Externe Emails | Emails von externen Email-Konten, die an die Adresse gesendet und von ihr empfangen wurden.
Abgelegte Dokumente | Dateien in der Dokumentenverwaltung dieser Adresse.


Externe Emails

In Externe Emails können beliebig viele externe Email-Konten nach Emails mit den ausgewählten Adressen durchsucht werden. Mit dem Öffnen eines Ordners wird das entsprechende Email-Konto nach Emails in der aktuellen Adresse durchsucht.

Mit einem Doppelklick kann die Email geöffnet werden.

Hinweis:

Die Email-Verknüpfungen funktionieren nicht mit allen Protokollen. Entsprechend werden hier nur Email-Konten angezeigt, die Emails empfangen können.


Abgelegte Dokumente

In Dateien der Dokumentenverwaltung werden alle Dokumente angezeigt, die in der Dokumentenverwaltung der Adresse abgelegt sind.

Mit einem Doppelklick kann das gewünschte Dokument geöffnet werden.

Mit einem Rechtsklick können weitere Funktionen ausgeführt werden.

Klicken Sie auf Anzeigen, um das Dokument zu öffnen. Über Datei importieren können Sie neue Dateien hinzufügen.

Wichtig:

Beachten Sie dazu bitte auch das Kapitel Funktionsweise in der Dokumentenverwaltung.

Hinweis:

Wenn Sie ein Dokument öffnen und Änderungen daran vornehmen, werden diese Änderungen nicht gespeichert. Wenn Sie die Änderungen speichern möchten, müssen Sie das Dokument zuerst über Speichern unter abspeichern, dann ändern und über Ersetzen neu importieren.

Dateien können auch per Drag&Drop mit dem Windows-Explorer ausgetauscht werden.


Kampagne

Im Unterbereich Kampagnen sind alle Kampagnen aufgeführt, in denen die aktuelle Adresse Mitglied ist.

Grau hinterlegte Einträge zeigen, dass die Kampagne für diese Person beendet wurde.

Klicken Sie auf Hinzufügen, um die Adresse als Mitglied in eine Kampagne aufzunehmen.

Klicken Sie auf Bearbeiten, um den Status dieser Adresse in der Kampagne zu ändern.

Hinweis:

Kampagnen sind ab der Professional-Version verfügbar.

siehe auch:

Optionen beim Hinzufügen eines Journal-Eintrages

Allgemeine Dokumentation:

Datensatz hinzufügen

Tabellen


Notizen

Im Bereich Notizen können beliebig viele Notizen zu einer Adresse erfasst werden.

Kurze Notizen können in den Text Notizen erfasst werden. Grössere Notizen mit Bildern und Formatierung werden in Erweiterte Notizen erfasst.

siehe auch:

Text Notizen

Erweiterte Notizen


Text Notizen

In den Text-Notizen können Sie kurze Notizen ohne Bilder und Formatierungen erfassen.


Erweiterte Notizen

In den erweiterten Notizen können Sie detaillierte Notizen mit Bildern, Tabellen usw. erstellen.

Die einzelnen Notizen müssen in Ordner abgelegt werden. Auf die einzelnen Ordner kann ebenfalls eine detaillierte Beschreibung hinterlegt werden.


Adresslisten

Im Bereich Adresslisten können Auszüge aus der Adressliste erstellt und weiterverarbeitet werden.

Hier können alle Aktionen, die mit mehreren Adressen zu tun haben, vorgenommen werden.

Im oberen Bereich des Fensters befindet sich die Adressliste sowie der Selektions- und Filterbereich.

Rechts oben sehen Sie die Zuordnungen der markierten Adresse. Die Zuordnungen können auch für mehrere Adressen gleichzeitig bearbeitet werden. Markieren Sie dazu die gewünschten Adressen in der Adressliste. Das Bearbeiten mehrerer Adressen gleichzeitig ist ebenfalls möglich.

Allgemeine Dokumentation:

Datensatz hinzufügen

Tabellen


Journal

Hier können Serien-Aktionen für alle Adressen in der Adressliste gestartet werden. Mit Serien-Aktionen können z.B. Serien-Briefe, Serien-Emails, Serien-SMS usw. erstellt werden.

Klicken Sie auf Serien-Aktion, um eine Serien-Aktion für alle Adressen der Adressliste zu starten. Das Erstellen einer Serien-Aktion unterscheidet sich nicht vom Erstellen einer einzelnen Aktion. Weitere Informationen zum Erstellen einer Aktion finden Sie im Kapitel Neue Aktion erstellen.

Hinweis:

Wenn Sie mehrere Adressen selektiert haben, werden nur die selektierten Adressen für die Serien-Aktion verwendet.


Berichte

Hier können Berichte erstellt werden wie z.B. Adresslisten, Serienbriefe, Etiketten usw. für alle Adressen der Adressliste.

Um eine bestimmte Auswahl an Adressen für den Bericht zu verwenden, können Sie über Filter für Adressliste die Adressliste filtern.

Wenn mehrere Vorlagen zur Auswahl stehen, wird eine Auswahl angezeigt.

Klicken Sie auf die gewünschte Vorlage für den Bericht. Über Vorlagenverwaltung öffnen können Sie die Vorlagenverwaltung zur Bearbeitung der Vorlagen öffnen.

Hinweis:

Wenn Sie mehrere Adressen selektiert haben, werden nur die selektierten Adressen auf dem Bericht gedruckt.


Import/Export

Hier können alle in der Adressliste sichtbaren Adressen importiert und exportiert werden.

Mit der Schaltfläche VCard für alle Adressen können alle Adressen in die Formate VCard oder LDIF exportiert werden.

Mit der Schaltfläche Adressliste im Bereich Export können alle Adressen, wie sie in der Adressliste angezeigt werden, mit dem Datenexport-Modul exportiert werden.

Mit der Schaltfläche Adressliste im Bereich Import können Adressen aus externen Datenquellen (Dateien, Datenbanken usw.) mit dem Datenimport-Modul in die aktive Zuordnung importiert werden.

Hinweis:

Wenn Sie mehrere Adressen selektiert haben, werden nur die selektierten Adressen exportiert (gilt nicht beim VCard-Export).

Der Datenexport steht ab der Professional-Version zur Verfügung.

siehe auch:

Einstellungen VCard

Datenexport-Modul

Datenimport-Modul

MLXML-Business Integration


VCard Export

Klicken Sie auf die Schaltfläche VCard für alle Adressen, um das Fenster für den Export zu öffnen.

Es gibt zwei verschiedene Möglichkeiten die VCards zu exportieren:

Export in eine Datei

Alle VCards werden in eine Datei gespeichert.

Geben Sie einen Dateinamen an, in dem die VCards gespeichert werden sollen.

Export in eine einzelne Datei

Jede VCard wird in eine einzelne Datei gespeichert.

Markieren Sie alle Felder, die für den Dateinamen verwendet werden sollen.

Durch Klicken auf die Schaltfläche Exportieren wird der VCard Export gestartet.

Hinweis:

MS OutlookTM unterstützt nur VCard Version 2.1 in einzelnen Dateien.


Aufgabenliste

Erinnerungsliste

Im Bereich Erinnerungsliste werden alle anstehenden Aufgaben und Erinnerungen aufgeführt.

Im oberen Bereich befindet sich die Liste mit allen Aufgaben und Erinnerungen. Im unteren Bereich werden die Details des selektierten Eintrages dargestellt. Welche Details im unteren Bereich dargestellt werden, hängt von der Art der Aufgabe ab. Bei Aufgaben aus dem Journal wird der Journal-Eintrag dargestellt; handelt es sich um eine Police (delight insurance), werden die Details der Police angezeigt.

Die Erinnerungsliste unterscheidet zwischen Aufgaben und Erinnerungen.

siehe auch:

Liste

Aufgaben

Erinnerungen

Alarmfenster


Liste

In der Erinnerungsliste werden alle Aufgaben und Erinnerungen angezeigt. Überfällige Einträge werden rot, heute fällige Einträge werden gelb unterlegt.

Spalte | Beschreibung
Typ | Zeigt, ob es sich um eine Erinnerung oder Aufgabe handelt.
Sparte | Zeigt die Art des Eintrages an. Diese kann je nach Eintragsart unterschiedlich sein. Zum Beispiel wird bei Einträgen aus dem Journal die Journal-Aktion angezeigt. Bei Policen (delight insurance) wird das Produkt angezeigt.
Beschreibung | Titel des Eintrages. Bei Policen aus delight insurance ist dies die Policennummer.
Fälligkeit | Bei Aufgaben: Anzahl Tage, die noch bleiben bis die Aufgabe erledigt sein muss. Bei Erinnerungen: Anzahl Tage, die seit dem Eintreten der Erinnerung vergangen sind.
Datum | Bei Aufgaben: Datum, bis wann die Aufgabe erledigt sein muss. Bei Erinnerungen: Datum, an dem die Erinnerung eingetreten ist.
Person | Person, die dieser Eintrag betrifft, also zum Beispiel der Kunde.
Zuständig | Für den Eintrag zuständiger Mitarbeiter. Bei Policen aus delight insurance ist dies der Vermittler der Police.
Aufgabe aus | Zeigt die Quelle des Eintrages. Diese Spalte ist nur sichtbar, sofern auch verschiedene Quellen geladen wurden. Dies sind z.B. in delight insurance die verschiedenen Produkte.

Die Glocke vor einem Eintrag zeigt an, dass ein Erinnerungsfenster aktiv ist.

siehe auch:

Anzeigen


Funktionen

Über das Funktionsmenü eines Eintrages können verschiedene Funktionen ausgeführt werden.

Klicken Sie auf Öffnen, um die Details des Eintrages anzuzeigen. Mit Abschliessen kann der Eintrag als erledigt verbucht und aus der Aufgabenliste entfernt werden.

Über Erinnerungsfenster öffnen kann das Erinnerungsfenster angezeigt werden. Über Zuständige Person benachrichtigen kann eine Benachrichtigung ausgeführt werden.


Anzeigen

Die Aufgabenliste kann auf verschiedene Anzeigen eingestellt werden.

Klicken Sie auf die gewünschte Anzeige, um sie zu aktivieren.

Nur eigene Aufgaben | Zeigt nur Einträge, für die der angemeldete Benutzer zuständig ist. (Nur in der Netzwerk-Version verfügbar)
Unzugewiesene und eigene Aufgaben | Zeigt nur Einträge, für die der angemeldete Benutzer zuständig ist, sowie alle Einträge, für die niemand zuständig ist. (Nur in der Netzwerk-Version verfügbar)
Alle Aufgaben | Zeigt alle Einträge, unabhängig davon, wer dafür zuständig ist. (Nur in der Netzwerk-Version verfügbar)
Beendete Aufgaben | Zeigt zusätzlich alle Einträge, die bereits abgeschlossen wurden.
Aufgaben in ferner Zukunft | Zeigt zusätzlich alle Einträge, die erst in ferner Zukunft pendent werden.


Benachrichtigungen ausführen

Für die Einträge in der Erinnerungsliste können Benachrichtigungen ausgeführt werden. Durch Markieren mehrerer Einträge können mehrere Benachrichtigungen gleichzeitig an mehrere Empfänger versendet werden.

Markieren Sie alle gewünschten Einträge in der Erinnerungsliste, an die eine Benachrichtigung versendet werden soll, und klicken Sie auf Benachrichtigungen, um das Versand-Fenster zu öffnen.

Im Versand-Fenster werden die Einträge nach ihrer Quelle (Spalte Aufgabe aus der Erinnerungsliste) gruppiert. Wählen Sie nun bei jedem Eintrag die gewünschte Benachrichtigungsvorlage oder wählen Sie <keine>, wenn keine Benachrichtigung versendet werden soll.

Markieren Sie Vorschau für erste Benachrichtigung, um eine Vorschau für die erste Benachrichtigung vor dem Versand anzuzeigen. Die Vorschau wird jeweils für die erste Benachrichtigung einer Quelle angezeigt. Der Versand kann in der Vorschau abgebrochen werden.

Klicken Sie auf Versenden, um den Versand für alle Benachrichtigungen zu starten.


Aufgaben

Eine Aufgabe wird n Tage (Vorlaufzeit) vor dem entsprechenden Datum in der Erinnerungsliste angezeigt. Eine Aufgabe muss bis zu einem bestimmten Datum (inkl. Zeitangabe) erledigt werden. Ist die Aufgabe nach diesem Datum nicht beendet, wird sie in der Erinnerungsliste rot hinterlegt. Am letzten Tag werden die Aufgaben gelb hinterlegt.

Hinweis:

Die Vorlaufzeit zur Anzeige der Aufgaben kann in den Einstellungen konfiguriert werden.

siehe auch:

Liste


Erinnerungen

Eine Erinnerung muss nicht bis zu einem bestimmten Datum erledigt werden. Sie erscheint erst ab dem entsprechenden Datum (inkl. Zeitangabe) in der Erinnerungsliste.

siehe auch:

Liste


Alarmfenster

Das Alarmfenster für eine Aufgabe oder Erinnerung wird angezeigt, sobald diese das erste Mal in der Erinnerungsliste erscheint.

Klicken Sie auf Öffnen, um die Details des Eintrages anzuzeigen. Mit Abschliessen kann der Eintrag als erledigt verbucht und aus der Erinnerungsliste entfernt werden.

Unter Erneut erinnern können Sie festlegen, wann dieses Alarmfenster (für diesen Eintrag) das nächste Mal erscheinen soll.

Über Alarmfenster anzeigen am kann das Pausieren des Fensters per Mausklick gewählt werden.

Klicken Sie auf Löschen, um das Erinnerungsfenster für diesen Eintrag zu deaktivieren.


Kampagnen

Im Bereich Kampagnen können die Mitgliederlisten der Kampagnen sowie die Kampagnen selbst verwaltet werden. Jede Kampagne besitzt eine Liste mit Mitgliedern. Jedes Mitglied besitzt einen bestimmten Status in der jeweiligen Kampagne. Unter Filter für die Adressliste kann nach einer Kampagne und Adressen mit einem bestimmten Status in der Kampagne gefiltert werden.

Im oberen Bereich befindet sich die Liste mit allen Kampagnen, im unteren Bereich die Zielbeschreibung und Mitglieder der ausgewählten Kampagne.

Mit der Kampagnenart können die Kampagnen in verschiedene Typen unterteilt werden. Die Kampagnenart kann beim Hinzufügen von neuen Mitgliedern aus einer Kampagne zur Selektion von Mitgliedern aus mehreren Kampagnen verwendet werden.

Hinweis:

Kampagnen sind ab der Professional-Version verfügbar.

siehe auch:

Zielbeschreibung

Mitglieder

Kampagnen Journal-Eintrag

Kampagnen Adressdetails

Allgemeine Dokumentation:

Datensatz hinzufügen

Tabellen


Zielbeschreibung

In der Zielbeschreibung kann das Ziel der Kampagne in Form von Text hinterlegt werden.


Mitglieder

Unter Mitglieder befinden sich alle Mitglieder der Kampagne. Mitglieder mit einem inaktiven Status werden grau hinterlegt.

Im rechten Bereich werden die Details zum ausgewählten Mitglied (Liste links) angezeigt.

Adressdetails | Details zur Adresse des Mitgliedes.
Mitgliedschaft | Informationen zu Mitgliedschaft und Status in der Kampagne.
Abschluss-Notiz | Notizen zum Ende der Kampagne für die Person.
Abschluss-Aktion | Journal-Eintrag, der die Kampagne für die Person beendet hat. (Wird nur angezeigt, wenn die Kampagne durch einen Journal-Eintrag beendet wurde)

siehe auch:

Mitglied hinzufügen

Kampagne für Person beenden

Status ändern

Person in Kampagne reaktivieren


Mitglied hinzufügen

Über Hinzufügen kann ein neues Mitglied in die Kampagne aufgenommen werden.

Wählen Sie, wo die neuen Mitglieder gesucht werden sollen.

Einzelne Adresse | In der Adressliste nach einer einzelnen Adresse suchen.
Aus einer Kampagne | Adressen aus einer bereits bestehenden Kampagne und diese je nach Status als Mitglieder aufnehmen.
Aus einer Selektion | Alle Adressen anhand verschiedener Filter- und Selektionskriterien als Mitglieder aufnehmen.

Hinweis:

Wenn eine Person bereits Mitglied in der Kampagne ist, wird diese nicht erneut hinzugefügt. Neue Mitglieder werden mit dem Mitgliederstatus für neue Mitglieder hinzugefügt.


Einzelne Adresse

Beim Hinzufügen einer einzelnen Adresse kann das gewünschte Mitglied in der Adressliste gesucht und in die Kampagne aufgenommen werden.

Markieren Sie in der Adressliste links die gewünschte Adresse und klicken Sie auf Mitglieder aufnehmen, um die Adresse in die Kampagne aufzunehmen.

Hinweis:

Über den Schnellfilter [image] können Sie sehr einfach nach der gewünschten Adresse suchen.


Aus einer Kampagne

Beim Importieren von Adressen aus einer oder mehreren bestehenden Kampagnen können diese Adressen, abhängig von Mitglieder-Status und Kampagnenart, in die Kampagne aufgenommen werden.

Wählen Sie unter Kampagne die gewünschte Kampagne, aus der importiert werden soll. Wenn Sie aus mehreren Kampagnen gleichzeitig importieren möchten, können Sie unter Kampagnenart auswählen, aus welcher Art von Kampagne importiert werden soll.

Wählen Sie unter Personen mit Mitgliederstatus den gewünschten Status.

In der Adressliste unten werden alle Adressen angezeigt, die den gesetzten Kriterien entsprechen. Klicken Sie auf Mitglieder aufnehmen, um alle Adressen in die Kampagne aufzunehmen.


Aus einer Selektion

Beim Importieren von Adressen aus einer Selektion können alle Adressen anhand bestimmter Filter- und Selektionskriterien aufgenommen werden.

Wählen Sie die gewünschten Filter und Selektionen und klicken Sie auf Mitglieder aufnehmen, um alle Adressen in die Kampagne aufzunehmen.


Kampagne für Person beenden

Über Kampagne für Person beenden kann die Kampagne für das ausgewählte Mitglied abgeschlossen werden.

Wählen Sie den gewünschten Status des Mitglieds, mit dem die Kampagne beendet werden soll.

Hinweis:

Bei der Auswahl des Status wird sinngemäss nur der inaktive Status angezeigt.


Status ändern

Über Status ändern kann innerhalb der Kampagne der Mitgliederstatus für das ausgewählte Mitglied geändert werden.

Wählen Sie den neuen Status.

Hinweis:

Bei der Auswahl des Status wird sinngemäss nur der aktive Status angezeigt.


Person in Kampagne reaktivieren

Über Person in Kampagne reaktivieren kann die Kampagne für ein Mitglied wieder fortgesetzt werden.

Wählen Sie den gewünschten Status, mit dem das Mitglied in der Kampagne reaktiviert werden soll.

Hinweis:

Bei der Auswahl des Status wird sinngemäss nur der aktive Status angezeigt.


Protokoll

Im Bereich Protokoll steht ein Protokoll über alle Journal-Aktion zur Verfügung.

Auf der linken Seite können die Einträge nach Datum und diversen anderen Kriterien gefiltert werden.


Termine

Im Bereich Termine befinden sich die Terminkalender der Mitarbeiter, Räume und Ressourcen, auf die der angemeldete Benutzer Zugriff hat. Die Terminverwaltung kann mehrere Terminkalender nebeneinander darstellen und gleichzeitig verwalten. Jeder Benutzer/Mitarbeiter besitzt einen persönlichen Terminkalender, der wahlweise auch durch andere Mitarbeiter eingesehen werden kann. Zusätzlich können eigene Terminkalender für Räume (z.B. Sitzungszimmer) und Ressourcen (z.B. Beamer, Autos usw.) verwaltet werden.

Im oberen Bereich befindet sich das Menü, um zwischen verschiedenen Ansichten und Anzeigeeinstellungen zu wechseln. Rechts oben werden die Kalender und rechts unten die verfügbaren Ressourcen (verfügbare Terminkalender) angezeigt.

Die Anzeige der Terminkalender kann flexibel gestaltet und auf verschiedenen Ansichten eingestellt werden.


Terminkalender

Die Ansicht des Terminkalenders kann individuell durch jeden Mitarbeiter eingerichtet werden. So kann z.B. eingestellt werden, wie viele Terminkalender in welcher Reihenfolge angezeigt werden sollen.

(In dieser Ansicht werden drei Terminkalender nebeneinander in der Tagesansicht dargestellt)

Die Arbeitszeiten (oder bei Räumen die Öffnungszeiten) werden in den einzelnen Terminkalendern farblich aufgehellt dargestellt. Jeder Terminkalender kann individuelle Arbeitszeiten (oder Öffnungszeiten) haben.

Links unten können Sie durch die verfügbaren Terminkalender navigieren und die Anzahl der sichtbaren, nebeneinander dargestellten Terminkalender einstellen.

Klicken Sie auf [+] oder [-] um die Anzahl der sichtbaren Terminkalender einzustellen. Mit den Pfeilen können Sie ganz nach Rechts oder Links scrollen.

Mit einem Rechtsklick auf den Terminkalender kann das Terminkalender-Menü aufgerufen werden.

Hinweis:

In der Liste Verfügbare Ressourcen können einzelne Terminkalender ausgeblendet und die Reihenfolge der Terminkalender geändert werden.

Die Navigation ist nicht bei allen Ansichten verfügbar.

siehe auch:

Ansichten

Verfügbare Terminkalender

Kalender

Termin hinzufügen


Ansichten

Die Ansicht der Terminkalender kann auf verschiedene Darstellungen umgestellt werden.

Tagesansicht | Alle Termine eines bestimmten Tages.
Arbeitswoche | Alle Termine einer Arbeitswoche. Wochenendtage werden ausgeblendet.
Wochenansicht | Alle Termine einer Woche. (7 Tage).
Monatsansicht | Alle Termine eines Monates.
Zeitgitter | Ansicht in horizontaler Darstellung in Form einer Zeitlinie.
Jahresansicht | Alle Termine eines ganzen Jahres.


Tagesansicht

In der Tagesansicht werden alle Termine des ausgewählten Tages angezeigt.

Links befindet sich die Zeitliste. Mit einem Rechtsklick auf die Zeitliste kann der Zeitabstand entsprechend geändert werden.

siehe auch:

Verfügbare Ressourcen

Kalender


Arbeitswoche

In der Arbeitswochen-Ansicht werden alle Termine der aktuellen Arbeitswoche angezeigt. Die Wochenendtage werden, im Gegensatz zur Wochenansicht, nicht angezeigt. Diese Ansicht stellt immer die aktuelle Arbeitswoche dar.

Links befindet sich die Zeitleiste. Mit einem Rechtsklick auf die Zeitleiste kann der Zeitabstand entsprechend geändert werden.

siehe auch:

Verfügbare Ressourcen


Wochenansicht

In der Wochenansicht werden alle Termine der ausgewählten Woche angezeigt. In dieser Ansicht werden auch die Wochenendtage dargestellt.

siehe auch:

Verfügbare Ressourcen


Monatsansicht

In der Monatsansicht werden alle Termine des ausgewählten Monats angezeigt. In dieser Ansicht werden auch die Wochenendtage dargestellt.

siehe auch:

Verfügbare Ressourcen


Zeitgitter

In der Zeitgitter-Ansicht werden die Termine horizontal auf einer Zeitlinie dargestellt.

siehe auch:

Verfügbare Ressourcen


Jahresansicht

In der Jahresansicht werden alle Termine des ausgewählten Jahres angezeigt. In dieser Ansicht werden auch die Wochenendtage dargestellt.

siehe auch:

Verfügbare Ressourcen


Terminkalender Menü

Mit einem Rechtsklick auf den Terminkalender kann das Menü angezeigt werden.

Neuer Termin | Einen neuen Termin hinzufügen.
Neuer ganztägiger Termin | Einen neuen ganztägigen Termin hinzufügen.
Neue Terminserie | Eine neue Terminserie hinzufügen.
Heute | Termin von Heute anzeigen.
Gehe zu Datum | Ein bestimmtes Datum auswählen und anzeigen.
Ansicht der Ressourcen | Öffnet die verfügbaren Ressourcen in einem Fenster.


Termine

Die Terminverwaltung unterscheidet zwischen normalen und ganztägigen Terminen. Ganztägige Termine werden je nach Ansicht im oberen Bereich des Terminkalenders angezeigt.

(Messe Zürich ist in diesem Beispiel ein ganztägiger Termin für Hans Muster)

Termine können, je nach Art und Optionen des Termins, in verschiedenen Farben dargestellt werden.

Ist auf dem Termin ein Alarm gesetzt, wird dies durch das Symbol [image] angezeigt. Ist der Termin Teil einer Terminserie, wird dies durch das Symbol [image] angezeigt. Der senkrechte Balken auf der linken Seite zeigt die gebuchte Zeit des Termins.

Mit einem Rechtsklick auf den gewünschten Termin kann das Termin-Menü geöffnet werden.

Öffnen | Öffnet den Termin in einem Fenster. Durch einen Doppelklick auf den Termin kann dieser ebenfalls geöffnet werden.
Zeit zeigen als | Farbe für den senkrechten Zeitbalken (gebuchte Zeit) des Termins auswählen.
Typ | Farbe und Art des Termins auswählen.
Löschen | Termin löschen.

Hinweis:

In den Tages-Ansichten können die ganztägigen Termine ein- und ausgeblendet werden.

Ein neuer Termin kann mit einem Rechtsklick auf den Terminkalender (über das Terminkalender Menü) hinzugefügt werden.


Termin

Um einen ganztägigen Termin zu erfassen, muss die Option Ganztägiger Termin markiert werden. Ist die Option markiert, werden die Zeitangaben ausgeblendet.

Mit dem Alarm wird der Termin eine gewünschte Zeit vor der Fälligkeit im Erinnerungsfenster angezeigt. Markieren Sie die Option Alarm und wählen Sie die gewünschte Zeit.

Unter Ressource/n kann ausgewählt werden, auf welchen Terminkalendern der Termin eingetragen werden soll. Es stehen alle verfügbaren Ressourcen zur Auswahl.

Im Bereich Mitglieder können weitere Personen, die keinen eigenen Terminkalender in den verfügbaren Ressourcen besitzen, eingeladen werden. Dies sind normalerweise alle Adressen, die nicht als Mitarbeiter im Programm erfasst wurden.

siehe auch:

Mitglieder

Terminserie

Erinnerungsfenster


Teilnehmer

Im Bereich Teilnehmer können weitere Personen zu dem Termin eingeladen werden. Jede Person besitzt einen eigenen Status. Jede Einladung entspricht einem Journal-Eintrag vom Typ Termin.

Mit Einladen kann eine weitere Person eingeladen werden. Mit der Einladung auf den Termin wird automatisch ein Journal-Eintrag vom Typ Termin zu der entsprechenden Person erstellt. Das Einladen entspricht dem Erstellen eines Journal-Eintrages vom Typ Termin.

Falls eine Termin-Benachrichtigung konfiguriert ist, wird automatisch eine Terminbestätigung an die entsprechende Person verschickt. Ist die Option Vorschau Terminbestätigung markiert, wird die Terminbestätigung zuerst in einer Vorschau angezeigt.

Hinweis:

Mit Journal-Eintrag hinzufügen kann eine Person ebenfalls zu einem Termin eingeladen werden. Mit einer Serien-Aktion können mehrere Personen gleichzeitig eingeladen werden.


Terminserie

Mit der Terminserie kann eine Reihe von sich wiederholenden Terminen hinzugefügt werden.


Verfügbare Ressourcen

In den Ressourcen werden alle verfügbaren Terminkalender in einer Liste aufgeführt.

Die einzelnen Terminkalender können in der Ansicht der Terminkalender ein- und ausgeblendet werden. Entfernen Sie dazu die Markierung vor dem gewünschten Terminkalender. Die Reihenfolge der einzelnen Terminkalender kann mit der Maus per Drag&Drop geändert werden. Ziehen Sie dazu den Eintrag mit der Maus an die gewünschte Position. Die Reihenfolge wird in der Ansicht der Terminkalender entsprechend übernommen.

Die verfügbaren Terminkalender können unter Einstellungen Terminverwaltung konfiguriert werden.

siehe auch:

Kalenderansicht

Einstellungen Terminverwaltung


Kalender

Im Kalender kann ein einzelner Tag oder mehrere Tage gleichzeitig markiert werden. Die markierten Tage werden entsprechend im Terminkalender angezeigt.

Der aktuelle Tag wird durch einen Rahmen gekennzeichnet. Markierte Tage werden blau unterlegt dargestellt. Um mehrere Tage gleichzeitig im Terminkalender darzustellen, können Sie mit der Maus mehrere Tage markieren (klicken-ziehen-loslassen).

Anzahl und Position der Monats-Kalender kann in der Kalenderansicht eingestellt werden.


Kalenderansicht

Über die Kalenderansicht kann die Anzahl und Position der Monats-Kalender eingestellt werden.

Über die Kalenderansicht kann eingestellt werden, wieviele Kalender sichtbar sein sollen.

Die einzelnen Monats-Kalender können in Spalten und Zeilen organisiert werden.

Über die Position der Kalenderansicht können die Kalender (inkl. Liste Verfügbare Ressourcen) wahlweise am rechten oder linken Rand des Terminkalenders positioniert werden.

Mit Kalender anzeigen können die Monats-Kalender ein- und ausgeblendet werden. Über Ressourcen anzeigen kann die Liste Verfügbare Ressourcen ein- und ausgeblendet werden.


Erinnerungsfenster

Im Erinnerungsfenster für Termine werden alle Termine angezeigt, die Alarm ausgelöst haben.

Mit Alle ausschalten kann der Alarm für alle Termine ausgeschaltet werden. Mit Ausschalten kann der Alarm eines einzelnen Termins ausgeschaltet werden. Mit Ruhe kann der Alarm für einen entsprechenden Zeitraum ausgeschaltet werden.


Postfächer

Im Bereich Postfächer befinden sich die Postfächer mit den ein- und ausgehenden Nachrichten. Dies sind grundsätzlich E-Mails oder E-Dokumente.


Anruferkennung

Die Anruferkennung zeigt die Adresse mit den wichtigsten Details eingehender Telefongespräche in einem Fenster an.

Über das Symbol [image] kann der Adresse ein neuer Journal-Eintrag hinzugefügt werden. Mit Adressverwaltung öffnen kann die Adresse zur Bearbeitung geöffnet werden.

Hinweis:

Es müssen entsprechende Telefonapparate konfiguriert sein.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration aufgerufen.

Die umfangreichen Einstellungen sind in mehrere Bereiche unterteilt:

Einstellungen Adressverwaltung | Allgemeine Einstellung und Stammdaten zur Adressverwaltung.
Einstellungen CRM | Journal-, Kampagnen-, Benachrichtigungs- und Kommunikationseinstellungen.
Einstellungen Terminverwaltung | Verfügbare Terminkalender der Mitarbeiter, Räume, Ressourcen und Arbeitszeiten.
Einstellungen Verkaufsprozesse | Verkaufsprozesse und Status verwalten.
Einstellungen Detail-Datensatzbereiche | Detail-Datensatzbereiche für Adressen verwalten.
Einstellungen Versandvorlagen |


Adressverwaltung

Im Bereich Einstellungen können allgemeine Einstellungen und Stammdaten zur Adressverwaltung konfiguriert und auf Ihre Wünsche angepasst werden.

Die Einstellungen zur Adressverwaltung sind in der Backstage-Ansicht unter Konfiguration => Adressverwaltung erreichbar.

Verfügbare Einstellungen:

Zuordnungen | Konfiguration der sichtbaren Felder und Verwaltung der Zuordnungen.
Anreden | Anreden verwalten.
Ausweisformen | Ausweisformen verwalten.
Zivilstände | Zivilstände verwalten.
Branchen | Branchen verwalten.
Interessen | Verfügbare Werte des Feldes "Interessen" verwalten.
Eigenschaften | Verfügbare Werte des Feldes "Eigenschaften" verwalten.
Externe Feldeinstellungen | Zuordnungen der Adressfelder für den Import.
Outlook Import | Zuordnungen der Outlook-Felder zu den verfügbaren Adressfeldern.
Länder | Verwaltung der Ländertabelle.
Sprachen | Verwaltung der Sprachen.
Postleitzahlen/Regionen | Verwaltung des Postleitzahlenverzeichnisses.
Banken | Verwaltung der Bankentabelle.
Status | Status der Adressen verwalten.
Kontaktpersonen | Typen von Kontaktpersonen verwalten.
Eigene Adresse | Eigene Adresse definieren.
Makros | Makros für Adressen verwalten.
Schnellfilter | Felder für den Namen-Schnellfilter definieren.
Klassifizierung | Klassifizierungen für Adressen verwalten.
Tätigkeitsstatus | Den Tätigkeitsstatus verwalten.


Zuordnungen

Hier können Zuordnungen erstellt und bearbeitet werden. Es können beliebig viele Zuordnungen erfasst werden.

Die Zuordnungsart bestimmt, welche Art von Adressen eine Zuordnung enthält. Ist es z.B. an einer Stelle im Programm erforderlich, dass alle Mitarbeiter angezeigt werden, so werden alle Adressen aus den Zuordnungen mit der Zuordnungsart "Mitarbeiter" angezeigt.

siehe auch:

Zuordnung hinzufügen

Details

Adresse erfassen

Allgemeine Dokumentation:

Tabellen


Zuordnung hinzufügen

Durch Klicken auf die Schaltfläche Hinzufügen kann eine neue Zuordnung hinzugefügt werden.

Geben Sie einen Namen für die neue Zuordnung ein und klicken Sie auf die

Schaltfläche Speichern, um die Zuordnung zu erfassen.

Allgemeine Dokumentation:

Datensatz hinzufügen


Anreden

Hier können die verfügbaren Anreden für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste des Feldes Anrede zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Ausweisformen

Hier können die verfügbaren Ausweisformen für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste des Feldes Ausweis zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Zivilstände

Hier können die verfügbaren Zivilstände für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste des Feldes Zivilstand zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Branchen

Hier können die verfügbaren Branchen für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste des Feldes Branche zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Interessen

Hier können die verfügbaren Interessen für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste des Feldes Interessen zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Eigenschaften

Hier können die verfügbaren Eigenschaften für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste des Feldes Eigenschaften zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Externe Feldeinstellungen

Hier können die Einstellungen für den VCard Import und Export sowie für die Synchronisation mit externen Adressquellen definiert werden.

Feldzuordnungen:

Hier wird definiert, wie die Felder der Datenbank beim Importieren und Exportieren zu den Feldern der VCard zugeordnet werden.

In der linken Spalte sind alle verfügbaren Felder der Adressen ersichtlich. In der rechten Spalte sind alle Felder, die bei einer VCard verfügbar sind, aufgeführt.

Wählen Sie in den Auswahlmenüs (rechts) ein VCard-Feld, um es einem Adressfeld zuzuordnen.

Schlüsselfelder:

Die hier markierten Felder werden beim Importieren von Adressdaten verwendet. Mit diesen Feldern wird geprüft, ob eine Adresse bereits existiert.


Outlook Import

Hier können die Einstellungen für den Outlook Import definiert werden.

Feldzuordnungen:

Hier wird definiert, wie die Felder der Datenbank beim Importieren den Feldern von Outlook zugeordnet werden.

In der linken Spalte sind alle verfügbaren Felder der Adressen ersichtlich. In der rechten Spalte sind alle Felder, die bei Outlook verfügbar sind, aufgeführt.

Wählen Sie in den Auswahlmenüs (rechts) ein Outlook-Feld, um es einem Adressfeld zuzuordnen.


Länder

Hier können die verfügbaren Länder für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste der Felder Land oder Nationalität zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Sprachen

Hier können die verfügbaren Sprachen für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste der Feldes Korrespondenzsprache zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Postleitzahlen/Regionen

Hier können die verfügbaren Postleitzahlen für die Adressen definiert werden.

Diese wird z.B. beim Erfassen einer Adresse verwendet, um nach Eingabe der Postleitzahl automatisch den Ort auszufüllen.

Jede Postleitzahl kann einer Region zugeordnet werden.

Allgemeine Dokumentation:

Tabellen


Regionen

Hier können die Regionen für die Postleitzahlen definiert werden.

Die Regionen können den Postleitzahlen zugeordnet werden.

Optional kann jeder Region ein Kanton/Bundesland zugeordnet werden.

Allgemeine Dokumentation:

Tabellen


Kantone/Bundesländer

Hier können die Kantone/Bundesländer für die Postleitzahlen definiert werden.

Die Kantone/Bundesländer können den Postleitzahlen zugeordnet werden.

Allgemeine Dokumentation:

Tabellen


Banken

Hier können die verfügbaren Banken für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste des Feldes Bank zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Status

Hier kann der verfügbare Status für die Adressen definiert werden.

Diese stehen z.B. unter Details in der Auswahlliste des Feldes Status zur Verfügung.

Allgemeine Dokumentation:

Tabellen


Kontaktpersonen

Hier können die verfügbaren Typen von Kontaktpersonen definiert werden.


Eigene Adresse

Hier kann die eigene Adresse definiert werden.

Die eigene Adresse wird z.B. für die Kopfzeilen in Berichtvorlagen verwendet.

Die eigene Adresse ist entweder Ihre Firmenadresse oder Ihre private Adresse, je nach Einsatzzweck des Programms.

Über Erweiterte Einstellungen kann die Verknüpfung auf eine andere bereits im Programm erfasste Adresse geändert werden.


Makros

Hier können die Adressmakros definiert werden.

Makros werden z.B. für die persönliche Anrede auf Berichtvorlagen verwendet.


Schnellfilter

Hier kann definiert werden, welche Adressfelder der Schnellfilter zur Suche nach Name und Vorname in die Suche einbeziehen soll.


Klassifizierung

Hier können die Klassifizierungen für die Adressen verwaltet werden. Jeder Klassifizierungsart können mehrere "Funktionen" zugeordnet werden.


Tätigkeitsstatus

Hier kann der Tätigkeitsstatus für Adressen verwaltet werden.


CRM

Im Bereich Einstellungen CRM können Journal-, Kampagnen-, Benachrichtigungs- und Telefoneinstellungen konfiguriert und auf Ihre Wünsche angepasst werden.

Die Einstellungen zur Adressverwaltung sind in der Backstage-Ansicht unter Konfiguration => CRM erreichbar.

Verfügbare Einstellungen:

Journal | Konfiguration der Journal-Aktionen.
Kampagnen | Konfiguration der Kampagnen-Arten und Mitgliederstatus. (Ab der Professional-Version verfügbar).
Erinnerungsliste | Konfiguration der Vorlaufzeit für Aufgaben der Erinnerungsliste.
Benachrichtigungen | Konfiguration der verfügbaren Benachrichtigungen.
Telefon | Konfiguration der Telefone für Anruferkennung und Wahlhilfe.
MLXML Import | Konfiguration der verschiedenen MLXML-Import-Quellen.


Journal

Im Unterbereich Journal können die verfügbaren Journal-Aktionen und Vorgaben konfiguriert werden. Die Journal-Aktionen stehen beim Hinzufügen eines Journal-Eintrages zur Verfügung. Es können beliebig viele Journal-Aktionen erstellt werden.

Beschreibung | Name der Journal-Aktion, der beim Hinzufügen eines Journal-Eintrages angezeigt wird.
Aktionsfunktion | Aktionsfunktion, die beim Erstellen des Journal-Eintrags ausgeführt werden soll.
Automatisch abschliessen | Definiert, ob beim Erstellen eines Journal-Eintrages die Option Aktion abschliessen automatisch markiert und der Eintrag abgeschlossen werden soll.
Automatisch Erinnern | Definiert, ob beim Erstellen eines Journal-Eintrages das Datum unter Erinnerungsliste automatisch auf einen bestimmten Wert gesetzt werden soll. (Ist Automatisch abschliessen gesetzt, hat diese Option keine Relevanz).
Abschluss-Reaktion | Definiert, ob beim Erstellen eines Journal-Eintrages die Reaktion automatisch auf einen bestimmten Wert gesetzt werden soll. (Ist nur relevant, wenn Automatisch abschliessen gesetzt ist).
Aufgabe | Definiert, ob beim Erstellen eines Journal-Eintrages die Option Zeigen als in der Erinnerungsliste automatisch auf einen bestimmten Wert gesetzt werden soll. (Ist Automatisch abschliessen gesetzt, hat diese Option keine Relevanz).
Sichtbar | Definiert, ob die Aktions-Funktion beim Hinzufügen eines Journal-Eintrages zur Verfügung stehen soll.
Benachrichtigung | Definiert, ob beim Erstellen eines Journal-Eintrages die Benachrichtigungs-Vorlage unter Benachrichtigungen automatisch auf einen bestimmte Vorlage gesetzt werden soll.
Ersteller ist zuständig | Ist diese Option aktiviert, wird der Benutzer automatisch als zuständiger Mitarbeiter, auf alle Eintrag die er erstellt, übernommen.

siehe auch:

Aktionsfunktionen

Abschlussarten

Aufgabenarten

Aufgabenstatus

Aufgabenvorgaben

Aufgabenverteilung

Allgemeine Dokumentation:

Tabellen


Aktionsfunktionen

Jeder Journal-Aktion kann optional eine Funktion zugeordnet werden. Je nach Funktion werden beim Erstellen einer Aktion unterschiedliche Funktionen ausgeführt. Für Journal-Aktionen ohne Aktionsfunktion wird das Fenster Neue Aktion erstellen nicht angezeigt.

Brief-Vorlagen | Funktion für Briefe oder Serienbriefe anhand einer Bericht-Vorlage. Siehe Darstellung Brief-Vorlagen.
Dialog | Aktion ohne spezielle Funktion in einem Fenster erstellen. Siehe Darstellung Dialog.
Telefonanruf | Funktion für Telefonanrufe. Stellt die Wahlhilfe für Telefonnummern zur Verfügung. Es müssen Telefone konfiguriert sein. Siehe Darstellung Telefonanruf.
SMS | Funktion für den SMS-Versand. Es muss ein SMS-Provider konfiguriert sein. Siehe Darstellung SMS.
Email | Funktion für den Email-Versand. Es müssen entsprechende Emailkonten konfiguriert sein. Siehe Darstellung Email.
Termin | Funktion zur Verknüpfung eines Termins. Siehe Darstellung Termin.
Formulardesigner | Aktion ohne spezifische Funktion in einem Fenster erstellen. Die Eingabemaske kann über den Formulardesigner individuell gestaltet werden. Auf dem Eingabeformular können beliebige Elemente (Eingabefelder, Buttons, Tabellen usw.) platziert werden. Über Skripte können zusätzliche Funktionen programmiert werden. Formulare können über Rechtsklick => Einstellungen => Dialog-Formular-Designer verwaltet werden. Die Programmierung und Gestaltung der Formulare ist nicht Teil dieses Handbuches. Siehe Darstellung Formulardesigner.
Formulardesigner (ohne Notizfeld) | Identisch zum Formulardesigner, aber in der Ansicht wird das Notizfeld nicht angezeigt. Damit steht mehr Platz für das individuelle Eingabeformular zur Verfügung.

Es können, je nach installierten Module, noch weitere Funktionen zur Verfügung stehen.


Abschlussarten

Im Unterbereich Abschlussarten werden die verschiedenen Reaktionen konfiguriert, die beim Abschliessen einer Journal-Aktion gesetzt werden können.

Beschreibung | Titel der Reaktion.
Erfolg | Definiert, ob die Reaktion als Erfolg oder Misserfolg eingestuft werden soll.


Schnellfilter

Im Unterbereich Schnellfilter können die Suchfelder für den Journal-Schnellfilter definiert werden.

Anmerkung:

Der Journal-Schnellfilter steht zur Suche von Adressen zur Verfügung.


Aufgabenarten

Im Unterbereich Aufgabenarten werden die verfügbaren Arten für Aufgaben definiert, welche bei einer Aufgabe oder Erinnerung gesetzt werden können.

Jeder Aufgabenart müssen (rechts) die verfügbaren Aufgabenstatus hinzugefügt werden.


Aufgabenstatus

Im Unterbereich Aufgabenstatus werden die verfügbaren Status für Aufgaben definiert.

Die Option Erledigt bezeichnet Status, die beim setzen eine Aufgabe als erledigt markieren.


Aufgabenvorgaben

Im Unterbereich Aufgabenvorgaben werden die sogenannten Aufgaben- und Erinnerungs- Shortcuts definiert, welche jeder Journal-Aktion per Klick hinzugefügt werden können.


Aufgabenverteilung

Im Unterbereich Aufgabenverteilung kann die dynamische Aufgaben- und Erinnerungs- Zuweisung an einen Benutzer-Pool, nach diversen Kriterien, festgelegt werden. Zuweisungsmodus kann auf jeder Aufgabe separat ausgewählt werden.


Kampagnen

Im Unterbereich Kampagnen können Kampagnenarten und Mitgliederstatus konfiguriert werden.

Mit der Kampagnenart können die Kampagnen in verschiedene Bereiche unterteilt werden. Es sind beliebig viele verschiedene Arten möglich.

siehe auch:

Mitgliederstatus


Mitgliederstatus

Im Unterbereich Mitgliederstatus wird der Status konfiguriert, den Mitglieder in einer Kampagne haben können.

Beschreibung | Titel des Mitgliederstatus.
Status in Kampagne | Definiert den effektiven Status. aktiv: Kampagne für das Mitglied läuft. erfolgreich: Kampagne wurde erfolgreich beendet für das Mitglied. nicht erfolgreich: Kampagne wurde für das Mitglied ohne Erfolg beendet.


Erinnerungsliste

Im Unterbereich Erinnerungsliste können Einstellungen zur Vorlaufzeit für das Anzeigen von Aufgaben und Erinnerungen konfiguriert werden. Die Vorlaufzeit kann für jede Sparte individuell konfiguriert werden.

Modus

Beschreibung

Alle Aufgaben und Erinnerungen aus allen Quellen anzeigen

In diesem Modus werden alle Aufgaben und Erinnerungen aus allen Sparten in der Erinnerungsliste angezeigt.

Die Vorlaufzeit wird über Anzahl Tage davor für alle Aufgaben, unabhängig aus welcher Sparte, definiert.

Erweiterte Einstellungen

In diesem Modus können für jede Sparte separate Vorlaufzeiten eingestellt werden. Zusätzlich kann jede Sparte einem Mitarbeiter zugewiesen werden. Jedem Mitarbeiter kann pro Sparte eine individuelle Vorlaufzeit zugewiesen werden.

Meldungsart | Beschreibung
Nur in der Erinnerungsliste anzeigen | Zeigt die Aufgaben und Erinnerungen mit der definierten Vorlaufzeit in der Erinnerungsliste.
In der Erinnerungsliste und im separaten Erinnerungsfenster anzeigen | Zeigt die Aufgaben und Erinnerungen mit der definierten Vorlaufzeit in der Erinnerungsliste und öffnet sie zusätzlich in einem separaten Erinnerungsfenster.

Hinweis:

Sparte bezeichnet die Art des Eintrages in der Erinnerungsliste. Diese kann je nach Eintragsart unterschiedlich sein. Bei Einträgen z.B. aus dem Journal wird die Journal-Aktion angezeigt. Bei Policen (delight insurance) bezeichnet Sparte das entsprechende Produkt.

siehe auch:

Erweiterte Einstellungen


Erweiterte Einstellungen

In den erweiterten Einstellungen für Aufgaben kann die Vorlaufzeit und Meldungsart separat für jede Sparte definiert werden. Die Einstellungen können bei Bedarf für jeden Mitarbeiter separat konfiguriert werden.

Hinweis:

Wenn der Modus erweiterte Einstellungen verwendet wird, werden die Aufgaben und Erinnerungen einer Sparte nur angezeigt, wenn diese hier konfiguriert wurden. Alle Sparten, die nicht konfiguriert sind, werden in der Erinnerungsliste nicht angezeigt.

Allgemeine Dokumentation:

Tabellen


Telefon

Im Unterbereich Telefon können die verschiedenen Telefon-Treiber und Anbieter konfiguriert werden.

Wenn ein TAPI-Treiber für das gewünschte Telefon installiert ist, kann dieser bei Gerät/Leitung ausgewählt werden.

Mit URLCall kann ein Telefon oder eine Telefonanlage mit Netzwerk-Anschluss und HTTP-Unterstützung integriert werden. Das entsprechende Telefon muss die Nummern-Wahl per HTTP-Aufruf unterstützen.

Siehe auch

Beispiel snom VoIP Telefon.

3CX Phone Integration


Beispiel snom VoIP Telefon

Die URLCall Variante kann z.B. für VoIP-Telefone der Firma snom AG verwendet werden. Für die Anruferkennung wird ein snom-Apparat mit der Unterstützung für ActionURL benötigt.

Konfigurationsbeispiel für snom360 Apparat

Konfiguration in delight crm

Konfiguration der ActionURL auf dem Web-Interface des Apparats für die Anruferkennung:

Eingehender Anruf: http://192.168.0.52:8810/?number=$remote&type=in&src=phonecall

Ausgehender Anruf: http://192.168.0.52:8810/?number=$remote&type=out&src=phonecall

Wobei 192.168.0.52 IP-Adresse oder DNS-Name des Rechners ist, auf dem delight crm ausgeführt wird. Port 8810 entspricht der crm-Konfiguration Server-Port.

Wichtiger Hinweis:

In den neueren Firmware-Versionen von Snom muss die Option "Versteckte Merkmale" deaktiviert werden, ansonsten kann delight crm keine Telefonnummern wählen.


3CX Phone Integration

3CX Telefonapparate können über den 3CX-TAPI-Treiber oder alternativ direkt über das Programm 3CX-Phone-Client integriert werden.


3CX-Phone-Client Integration ohne TAPI

1. Aktivieren Sie, wie beim Beispiel von snom, die URL-Call Option im CRM. Stellen Sie sicher, dass der Server-Port gesetzt ist und die lokale Firewall den Port nicht blockiert.

2. Öffnen Sie nun Ihr "3CX Phone for Windows" Programm

3. Öffnen Sie Einstellungen => Erweitert => Verhalten

4. Aktivieren Sie die Option Anwendung bei eingehendem Anruf starten.

5. Klicken Sie auf Durchsuchen und suchen Sie die Datei "DLBEXEProcessBridge.exe" aus dem Installations-Verzeichnis des CRM's. Üblicherweise finden Sie dies unter c:\Programme (x86)\delight software gmbh\delight XY\

6. Fügen Sie in Zu sendende Parameter diesen Link ein:

http://127.0.0.1:8810/?number=%CallerNumber%&type=in&src=phonecall

7. Klicken Sie OK.


MLXML Import

Im Unterbereich MLXML-Import können Einstellungen zum MLXML-Import von Adressen und anderen CRM-Daten konfiguriert werden.

Datenart | MLXML-Part, für den der Konfigurationseintrag gilt.
Konfigurationsname | MLXML-Source-Bezeichner, für den der Konfigurationseintrag gilt.
Aktionstyp | Journal-Aktion, die beim Importieren einer Adresse erstellt werden soll. Nur bei der Datenart Adressen relevant.
Zuständig | Mitarbeiter, der als Zuständige Person auf dem Journal-Eintrag eingetragen werden soll. Ist die Journal-Aktion so konfiguriert, dass eine Aufgabe oder Erinnerung erstellt werden muss, wird der Mitarbeiter auch in Aufgabe für den Journal-Eintrag eingetragen. Nur bei der Datenart Adressen relevant.
Journal-Titel | Titel des Journal-Eintrages, der erstellt wird. Nur bei der Datenart Adressen relevant.
Schlüsselfeld | Feld, das für die Überprüfung, ob die Adresse bereits existiert, verwendet werden soll. Ist die Adresse bereits vorhanden, wird die bestehende Adresse aktualisiert. Nur bei der Datenart Adressen relevant.
Zuordnung | Zuordnung für die neue Adresse. Ist keine Zuordnung definiert, wird die Adresse in die Standard-Zuordnung importiert. Nur bei der Datenart Adressen relevant.


Terminverwaltung

Im Bereich Einstellungen Terminverwaltung können die verfügbaren Terminkalender jeweils für Mitarbeiter, Räume, Geräte und Arbeitszeiten konfiguriert werden.

Die Einstellungen zur Adressverwaltung sind in der Backstage-Ansicht unter Konfiguration => Terminverwaltung erreichbar.

Verfügbare Einstellungen:

Allgemeine Arbeitszeiten | Konfiguration der allgemeinen Arbeitszeiten.
Räume | Räume und Öffnungszeiten.
Geräte | Geräte und Verfügbarkeit.
Mitarbeiter | Mitarbeiter und Arbeitszeiten sowie Zugriffsrechte auf Terminkalender je Mitarbeiter.
Makros | Makros zur automatischen Befüllung des Termins.
Zeigen als Auswahl | Zusätzliche Farben für Termine.


Allgemeine Arbeitszeiten

Im Unterbereich Allgemeine Arbeitszeiten werden die allgemein gültigen Arbeitszeiten definiert. Diese werden automatisch für alle Terminkalender übernommen, können aber bei Bedarf auf den einzelnen Terminkalendern (Räume, Geräte, Mitarbeiter) separat geändert werden.

siehe auch:

Räume

Geräte

Mitarbeiter

Allgemeine Dokumentation:

Tabellen


Räume

Im Unterbereich Räume können Sitzungszimmer und weitere allgemein verfügbare Räume erfasst werden. Jeder erfasste Raum besitzt einen eigenen Terminkalender.

Im Bereich rechts können die Öffnungszeiten des ausgewählten Raumes (Liste links) bearbeitet werden. Ist die Option Allgemeine Arbeitszeiten verwenden markiert, werden die Öffnungszeiten aus der Einstellung Allgemeine Arbeitszeiten übernommen.

siehe auch:

Allgemeine Arbeitszeiten

Allgemeine Dokumentation:

Tabellen


Geräte

Im Unterbereich Geräte können Beamer, Autos und weitere allgemein verfügbare Ressourcen erfasst werden. Jedes erfasste Gerät besitzt einen eigenen Terminkalender.

Im Bereich rechts können die Zeiten, während dessen das ausgewählten Gerät (Liste links) verfügbar ist, bearbeitet werden. Ist die Option Allgemeine Arbeitszeiten verwenden markiert, werden die Zeiten aus der Einstellung Allgemeine Arbeitszeiten übernommen.

siehe auch:

Allgemeine Arbeitszeiten

Allgemeine Dokumentation:

Tabellen


Mitarbeiter

Im Unterbereich Mitarbeiter können die Arbeitszeiten der Mitarbeiter sowie die Zugriffsrechte auf einzelne Terminkalender je Mitarbeiter konfiguriert werden. Alle Adressen, die auf einer Zuordnung mit der Zuordnungsart Mitarbeiter sind, besitzen automatisch einen eigenen Terminkalender. Dies sind üblicherweise Adressen mit der Zuordnung Mitarbeiter.

In der Liste links werden alle Mitarbeiter aufgeführt. Unter Zugriff auf Terminkalender kann definiert werden, auf welche Terminkalender der markierte Mitarbeiter (Liste links) Zugriff erhalten soll. Im Bereich Ressourcen werden Räume und Geräte, im Bereich Personen alle Mitarbeiter aufgeführt. Der Zugriff auf den eigenen Terminkalender des jeweiligen Mitarbeiters kann nicht entfernt werden. Der eigene Terminkalender ist mit dem Symbol [image] gekennzeichnet.

Alle markierten Terminkalender stehen dem jeweiligen Mitarbeiter in den verfügbaren Ressourcen der Terminverwaltung zur Verfügung.

Unter Arbeitszeiten können die Arbeitszeiten des jeweiligen Mitarbeiters konfiguriert werden.

Hinweis:

Falls ein Mitarbeiter in der Liste fehlt, müssen Sie mit Adresse erfassen die Adresse des Mitarbeiters in der Zuordnung Mitarbeiter erfassen. Wenn Sie die Adresse bereits erfasst haben, müssen Sie diese der Zuordnung Mitarbeiter hinzufügen.

siehe auch:

Allgemeine Arbeitszeiten

Räume

Geräte


Makros

Im Bereich Makros können Makros zur automatischen Befüllung des Termintextes definiert werden.


Zeigen als Auswahl

Im Bereich Zeigen als Auswahl können zusätzliche Farben für die Termine definiert werden.


Terminspeicher

Im Bereich Terminspeicher sind alle erfassten Termine in chronologischer Reihenfolge hinterlegt. Neue sortierung durch Klick in den betreffenden Titel.


Verkaufsprozesse

Im Bereich Verkaufsprozesse können die verschiedenen Verkaufsprozesse und ihr Status konfiguriert werden.

Anmerkung:

Verkaufsprozesse werden hauptsächlich in der Auftragsverwaltung verwendet, finden jedoch auch im Journal auf den Verkaufschancen Verwendung.


Detail-Datensatzbereiche

Im Bereich Detail-Datensatzbereiche können die Detail-Datentabellen für Adressen verwaltet werden. Es können unbegrenzt viele Detailtabellen für Adressen erstellt werden. Eine Detailtabelle kann beliebige benutzerdefinierte Felder enthalten. Auf jeder Detailtabelle können pro Adresse zusätzliche Datensätze erfasst werden. Beispiele wären Umsatzsummen aus einem Fremdsystem, Lizenzen, Produkte usw.

Anmerkung:

Diese Funktion steht ab der Professional Version der CRM-Adressverwaltung zur Verfügung.


Felder definieren

Die Felder eines Detail-Datensatzbereichs werden in der Backstage-Ansicht unter Konfiguration => Datenbankfelder definiert.

Allgemeine Dokumentation:

Datenbankfelder


Versandvorlagen

Im Bereich Versandvorlagen können die verfügbaren Versandmöglichkeiten konfiguriert werden.


Versandvorgaben

Im Bereich Versandvorgaben kann der globale Standard für die Versandmöglichkeiten konfiguriert werden.

Hinweis:

Ist die List leer, beinhaltet Ihre Software aktuell keine Versandmöglichkeiten.


Benachrichtigungen

Unter Konfiguration - Benachrichtigungen, werden die Benachrichtigungsvorlagen konfiguriert.

Benachrichtigungstyp | Art der Benachrichtigung (siehe unten).
Aktionstyp | Journal-Aktion, die beim Versenden der Benachrichtigung erstellt werden soll. Zur Auswahl stehen alle Journal-Aktionen mit der Aktionsfunktion Email oder SMS.
Beschreibung | Kurze Beschreibung oder Titel der Vorlage.

Benachrichtigungstypen | Beschreibung
Terminbestätigung | Vorlagen für den Versand von Terminbestätigungen.
Journal-Eintrag | Vorlagen für den Versand von Benachrichtigungen bei Journal-Einträgen.

siehe auch:

Journal Benachrichtigungen ausführen

Neue Journal-Aktion erstellen

Aufgabenliste Benachrichtigungen ausführen


Dubletten-Prüfung

Die Dubletten-Prüfung befindet sich im Hauptmenü unter Tools => Dubletten-Prüfung.

Mit der Dubletten-Prüfung kann anhand verschiedener Kriterien nach doppelt vorhandenen Adressen gesucht werden.

Werden doppelt vorhandene Adressen gefunden, können diese zusammengeführt und bereinigt werden.

siehe auch:

Optionen


Optionen

In den Optionen können verschiedene Kriterien zur Suche nach Dubletten vorgenommen werden.


Dubletten bereinigen

Hier werden alle Dubletten aufgelistet, die anhand der Kriterien gefunden wurden.

Achtung: Es müssen nicht unbedingt alles Dubletten sein, die hier angezeigt werden!

Hier werden alle Adressen, die anhand der eingestellten Kriterien für identisch befunden wurden, angezeigt. Mit einem Klick auf Zurück können die Kriterien geändert und es kann erneut nach Dubletten gesucht werden.

(Hier wurden drei Dubletten mit jeweils zwei Adressen gefunden)

Mit Rechts-Klick auf eine Adresse kann das Menü zur Bearbeitung der Dubletten aufgerufen werden.

Zum Bereinigen der doppelten Adressen muss eine Adresse als Referenz und die anderen zur Löschung markiert werden.

Die Referenz-Adresse wird beibehalten und mit den Daten der anderen (zur Löschung markierten) Adressen ergänzt.

Im oben gezeigten Bild ist "Firma Rex Musterweg" als Referenz markiert und die durchgestrichene Adresse ist zur Löschung markiert. Bei der Adresse "delight software" wurde die Referenz noch nicht definiert.

Über Änderungen automatisch bestimmen wird automatisch auf allen Dubletten die erste Adresse als Referenz und alle anderen Adressen zur Löschung markiert.

Achtung:

Bitte prüfen Sie unbedingt die automatisch bestimmten Änderungen vor dem Speichern und stellen Sie sicher, dass es sich bei allen Dubletten wirklich um doppelt vorhandene Adressen handelt!

Mit Klick auf Abschliessen werden die vorgenommenen Änderungen gespeichert.


Geburtstagsliste

Die Geburtstagsliste befindet sich im Hauptmenü unter Tools => Geburtstagsliste.

Es werden alle Adressen, die in den nächsten Tagen Geburtstag haben, angezeigt. Über einen Doppelklick auf die gewünschte Adresse kann diese in der Adressverwaltung geöffnet werden.

Über die Schaltfläche Glückwünsche versenden können Sie Glückwünsche per Email oder Post an Personen aus der Geburtstagsliste versenden.

Über die Schaltfläche Tage ändern können Sie einstellen, wie viele Tage vor dem Geburtstag eine Adresse in dieser Liste erscheinen soll.

Über die Schaltfläche Markierung bearbeiten können Sie Einträge als erledigt markieren und demarkieren. Einträge, die als erledigt markiert wurden, erscheinen erst im nächsten Jahr wieder in der Geburtstagsliste. Wenn Sie Einträge mit dem Status erledigt trotzdem anzeigen möchten, können Sie die Option Erledigte ausblenden ausschalten/demarkieren. Einträge mit dem Status erledigt werden grün angezeigt in der Liste.

Ist die Option Beim Programmstart automatisch suchen markiert, werden bei jedem Programmstart automatisch Geburtstage gesucht und angezeigt.

Hinweis:

Die Geburtstagsliste kann optional auf der Startseite eingeblendet werden.


Datenbank & Netzwerk Installation

Das Programm speichert alle seine Daten in einer sogenannten Datenbank. Nach der Installation verwendet das Programm standardmässig eine eigene, integrierte Datenbank. Vorteil dieser integrierten Datenbank ist es, dass die Installation zusätzlicher Datenbank-Software nicht erforderlich ist. Nach der Installation des Programms kann ohne Installation von zusätzlicher Software direkt damit gearbeitet werden.

Das Programm kann, je nach Anforderung, mit verschiedenen Datenbanken betrieben werden. Müssen sehr viele Daten verwaltet werden oder viele Benutzer damit arbeiten, sollte das Programm auf die Verwendung einer externe Datenbank umgestellt werden. Weitere Information dazu finden Sie im Kapitel Netzwerk Installation.

delight software gmbh bietet dazu ein kostenloses Programm, dass die Umstellung auf eine externe Datenbank mit wenigen Klicks ermöglicht. Die Umstellung auf eine andere Datenbank ist jederzeit möglich und kann auch zu einem späteren Zeitpunkt erfolgen. Bei der Umstellung werden sämtliche bereits erfassten Daten automatisch übernommen.

Hinweis:

Ob die aktuelle Datenbank mit optimaler Geschwindigkeit arbeitet, können Sie mit dem Geschwindigkeitstest im Menü unter Hilfe => Datenbanktest überprüfen (nur Netzwerk-Version).

siehe auch:

Netzwerk Installation

Datenbanken

Installationsanleitungen


Datenbanken

Das Programm unterstützt verschiedene Datenbanken.

Bei der Einzelbenutzer-Version muss die Datenbank auf dem selben Computer wie das Programm installiert sein. Bei der Netzwerk-Version ist die externe Datenbank optimaler weise auf einem zentralen Server installiert.

Unterstütze Datenbanken:

Datenbank | Version | Einzelbenutzer-Version | Netzwerk-Version
MySQL MariaDB | MySQL 5.7.7 + MariaDB 10.3 + | Nur auf dem gleichen Computer wie das Programm (localhost) | Zentraler Server im Netzwerk oder auf dem gleichen Computer wie das Programm.
MSSQL und MSSQL Express | 2012 + | Nur auf dem gleichen Computer wie das Programm (localhost) | Zentraler Server im Netzwerk oder auf dem gleichen Computer wie das Programm.
Integrierte-Datenbank (DBISAM) | 4.x | Auf dem gleichen Computer wie das Programm. | Zentraler Server im Netzwerk oder auf dem gleichen Computer wie das Programm.


MySQL und MariaDB

MySQL ist ein Datenbank-Server der sehr gute Geschwindigkeit beim Zugriff auf die Daten bietet. Der Hersteller bietet eine kostenlose Version, ohne Einschränkungen und mit vollen Funktionsumfang, zum Download an.

MariaDB ist ein Fork/Split-Off (zu deutsch ein Abkömmling) der MySQL-Datenbank. MariaDB ist komplett kompatibel zu MySQL hat aber ein paar sehr interessante Zusatzfunktionen. Insbesondere was die Geschwindigkeit betrifft, hat MariaDB in unseren Test deutlich besser abgeschnitten.

Bei MariaDB und MySQL sind keine zusätzlichen Komponenten auf den Clients notwendig. Alle delight Programm verwenden einen integrierten, nativen Direktzugriff auf diese Datenbanken.


MariaDB

Hersteller: MariaDB Foundation

Download: http://mariadb.org/

Unterstütze Versionen: Version 10.1 oder neuer

Grundsätzlich sollten Sie zum Zeitpunkt der Installation die jeweils aktuellste, stabile Version installieren (current stable GA).

Anmerkungen zur Konfiguration:

·Strict-Mode bei MariaDB sollte nicht verwendet werden.

·Wert max_allowed_packet sollte auf höheren Wert (zB. 64M) gesetzt werden.

·Die Option innodb_flush_log_at_trx_commit sollte auf 2 gesetzt werden.

·Die Option innodb_file_per_table sollte auf 1 gesetzt werden.

·Es wird die Storage-Engine InnoDB verwendet.

·Der MariaDB-User benötigt DROP, ALTER und CREATE Berechtigungen damit der Online-Update korrekt funktioniert. Ist dies nicht erwünscht, sollte der Online-Update deaktiviert werden.

Auszug aus der my.ini mit den empfohlenen Werten:

[mysqld]

sql_mode="NO_ENGINE_SUBSTITUTION"

default_storage_engine=innodb

# http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html

# 2=flush every second instead of every query

innodb_flush_log_at_trx_commit=2

max_allowed_packet=64M

innodb_file_per_table=1

# fixes some import errors on newer DB version

innodb_strict_mode=0

# improve performance on schema access for innodb tables

innodb_stats_on_metadata=0

# speed up connections handling if no client host-dns name validation is required (e. g. host is % or localhost on all users)

skip-name-resolve


MySQL

Hersteller: MySQL AB (Oracle)

Download: www.mysql.com/downloads

Unterstütze Versionen: Version 5.6 oder neuer

Grundsätzlich sollten Sie zum Zeitpunkt der Installation die jeweils aktuellste, stabile Version installieren (current stable GA).

Anmerkungen zur Konfiguration:

·Strict-Mode bei MySQL sollte nicht verwendet werden.

·Wert max_allowed_packet sollte auf höheren Wert (zB. 64M) gesetzt werden.

·Die Option innodb_flush_log_at_trx_commit sollte auf 2 gesetzt werden.

·Die Option innodb_file_per_table sollte auf 1 gesetzt werden.

·Es wird die Storage-Engine InnoDB verwendet.

·Der MySQL-User benötigt DROP, ALTER und CREATE Berechtigungen damit der Online-Update korrekt funktioniert. Ist dies nicht erwünscht, sollte der Online-Update deaktiviert werden.

Auszug aus der my.ini mit den empfohlenen Werten:

[mysqld]

sql_mode="NO_ENGINE_SUBSTITUTION"

default_storage_engine=innodb

# http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html

# 2=flush every second instead of every query

innodb_flush_log_at_trx_commit=2

max_allowed_packet=64M

innodb_file_per_table=1

# fixes some import errors on newer DB version

innodb_strict_mode=0

# improve performance on schema access for innodb tables

innodb_stats_on_metadata=0

# speed up connections handling if no client host-dns name validation is required (e. g. host is % or localhost on all users)

skip-name-resolve

siehe auch:

Installation MySQL 5.0


MSSQL und MSSQL-Express

MSSQL ist ein Datenbank-Server der sehr gute Geschwindigkeit beim Zugriff auf die Daten bietet. Der Hersteller bietet eine kostenlose Version, mit Einschränkungen in der Datenbankgrösse und der Anzahl Benutzer, unter dem Namen MSSQL-Express zum Download an.

Hersteller: Microsoft

Unterstütze Versionen: Version 2012 oder neuer wird empfohlen! In Version 2012 hat Microsoft sogenannte Paging-Funktionen eingebaut, unsere Software kann diese verwenden was sich positiv auf die Geschwindigkeit auswirkt (vor allem bei grösseren Datenbeständen im Netzwerk).

Für MSSQL-Server muss der sogenannte "Native Client" aus dem Microsoft SQL-Server Feature-Pack installiert werden.

Dieser muss auf jedem Computer/Client installiert sein. Das Installationspaket aus dem Feature-Pack heist "sqlncli.msi" und kann bei Microsoft bezogen werden.

Download Native Client:

SQL-Server 2008: http://www.microsoft.com/en-us/download/details.aspx?id=27596

SQL-Server 2012: http://www.microsoft.com/de-ch/download/details.aspx?id=35580

siehe auch:

Installation MSSQL-Express


Integrierte Datenbank (DBISAM)

Die integrierte Datenbank ist kein Datenbank-Server im eigentlichen Sinne. Die Daten werden als normale Dateien auf der Festplatte gespeichert. Dies kann unter Umständen zu Geschwindigkeits-Problemen mit dem installierten Anti-Virus-Programm führen (je nach dem wie leistungsfähig der Computer ist und wie effizient der Viren-Scanner arbeitet). Der Einsatz im Netzwerk ist nur bedingt zu empfehlen.

Für sehr kleine Netzwerk-Installationen und Datenmengen kann das komplette Programm auf ein Netzwerk-Laufwerk installiert (oder nach der Installation kopiert) werden. Die einzelnen Benutzer können das Programm danach direkt ab dem Netzwerk-Laufwerk starten. Gestartet wird das Programm über die Datei ML2Client.exe. Beachten Sie bitte, dass alle Benutzer Schreib- und Lese rechte auf dem Netzwerk-Laufwerk haben müssen.

Bitte beachten Sie dazu auch das Kapitel Integrierte Datenbank und Antiviren-Programme.

siehe auch:

Empfehlungen

Integrierte Datenbank und Antiviren-Programme


Integrierte Datenbank und Antiviren-Programme

Sollte Ihr Programm nach der Installation gefühlt sehr langsam sein, liegt dies vermutlich an der Konfiguration Ihres Antivirus-Programms.

Einige Antivirus-Programme überprüfen jede Datei, bei jedem Zugriff, auf Viren. Dieses Verhalten kann den Zugriff auf die Daten in der lokalen Datenbank stark verlangsamen. Fügen Sie deshalb unten aufgeführte Datei-Endungen in die Ausschluss-List (Exclude-Liste) ihres Virenscanners hinzu.

Dateiendungen:

*.dat

*.idx

*.blb

*.tmpdat

*.tmpidx

*.tmpblb

Anmerkung:

Tests haben gezeigt, dass gewisse Antivirus-Programm sehr ineffizient arbeiten und Dateien trotz Ausschlussliste prüfen. Sollte dies der Fall sein, sollten Sie die Umstellung auf eine externe Datenbank in Betracht ziehen.

Hinweis:

Wie Sie Datei-Endungen in die Ausschlussliste Ihres Antivirus-Programms aufnehmen, lesen Sie bitte im Handbuch oder der Online-Hilfe ihrer Antivirus-Software nach.


Empfehlungen

Für die Netzwerk-Version und die Einzelbenutzer-Version gibt es unterschiedliche Empfehlungen.


Empfehlungen für die Einzelbenutzer-Version

Sollte die integrierte Datenbank nicht genügen (z.B. Geschwindigkeits-Probleme mit dem installieren Anti-Virus Programm oder bei sehr vielen Daten) ist die kostenlose MariaDB-Datenbank eine sehr gute Alternative zur Integrierten-Datenbank. MariaDB lässt sich einfach installieren, bietet sehr schnelle Datenzugriff und ist nach der Installation ohne umständliches Konfigurieren direkt einsatzbereit.


Empfehlungen für die Netzwerk-Version

Die Integrierte-Datenbank ist nur bedingt netzwerkfähig. Für sehr kleine Installationen bis ca. 5 Benutzer reicht die Leistung in den meisten Fällen aus. Für grössere Installationen (mehr Benutzer, mehr Daten) sollte auf eine externe Datenbank umgestellt werden. Eine externe Datenbank bietet in jedem Fall (auch bei kleinen Installationen) eine bessere Leistung als die Integrierte-Datenbank.

Für die Netzwerk-Version sollte die Datenbank optimalerweise auf einem zentralen Server installiert werden. Falls nicht bereits eine unterstütze Datenbank im Einsatz ist, empfiehlt sich hier die kostenlose MariaDB-Datenbank. MariaDB biete sehr gute Leistung ohne das Anzahl Benutzer oder Datenbankgrösse lizenztechnisch limitiert sind. In unseren Tests schnitt MariaDB in Punkto Geschwindigkeit besser ab als MySQL. Aber auch MySQL und MSSQL liefern bei optimaler Installation&Konfiguration sehr gute und empfehlenswert Werte.

Wenn planen, Berechtigungen auf Datensatz-Ebene zu vergeben, sollte MariaDB der MySQL- und MSSQL-Datenbank vorgezogen werden.


Netzwerk Installation

Für die Installation mehrerer Benutzer ist eine Netzwerk-Version der delight Anwendung erforderlich.

Bei der Netzwerk-Version wird eine zentrale delight Installation auf einem zentralen Server installiert. In dieser zentralen delight Installation auf dem zentralen Server läuft der delight MultiUser-Server als Windows Service sowie der Datenbank-Server, wobei der Datenbank-Server auch auf einer anderen Server-Instanz laufen kann/darf. Auf den einzelnen Clients (Computer / RDS-Instanzen an denen die Benutzer arbeiten) wird ebenfalls eine delight Installation installiert. Diese Client-Installation des delight Programms kommuniziert über das Netzwerk (TCP/IP) mit dem zentralen Datenbank-Server sowie dem zentralen MultiUser-Server.

Üblicher Aufbau der Netzwerk-Installation:

Zentraler Server

·Datenbank-Server (siehe Datenbanken)

·delight Programm mit MultiUser-Server Windows-Service (siehe Installationsanleitung MultiUser-Server)

Clients für Anwender

·delight Programm


Installationsanleitungen

Die Installations-Anleitungen beschreiben Installation und Umstellung des Programms auf eine Netzwerk-Installation für mehrere Benutzer.

Hinweis:

Die jeweilige Installations-Anleitung erklärt ausschliesslich die grundlegenden Installations-Schritte zur Installation. Aspekte wie Sicherheit, Optimierung des Server an die verwendete Hardware/Umgebung usw. werden nicht behandelt. Die Behandlung dieser Themen würde den Umfang dieser Installations-Anleitungen bei weitem sprengen.

Netzwerk Installation mit Datenbank-Server und MultiUser-Server

1.Melden Sie sich mit Administratorrechten auf dem zentralen Server, welcher die Server-Installation von delight beinhalten soll, an.

2.Installieren Sie das delight Programm.

3.Installieren Sie den gewünschten Datenbank-Server (siehe auch Empfehlungen für die Wahl der richtigen Datenbank)
> MySQL-Server Version
> MSSQL-Express-Version

4.Nach der Installation des Datenbank-Servers wird das delight Programm auf die neue Datenbank umgestellt werden. Mit dieser Umstellung werden alle bereits erfassten Daten übernommen.
> Datenbank-Umstellung

5.Falls nicht bereits mit Schritt 4 erledigt, muss das Verzeichnis für die Ablage der Dokumente konfiguriert werden.
> Pfad für Dokumentenablage konfigurieren

6.Falls nicht bereits mit Schritt 4 erledigt, sollte der zentrale MultiUser-Server Windows-Dienst konfiguriert und installiert werden. Die Installation dieses Dienstes ist optional wird aber sehr dringend empfohlen, da ansonsten einige Funktionen des delight Programms nicht zur Verfügung stehen.
> MultiUser-Server Dienst Installation

7.Nun sollte das delight Programm auf dem Server einmal als Administrator gestartet werden (ML2Client.exe im Installationsverzeichnis starten). Damit wird die neu eingerichtete Datenbank geprüft und allfällige Schemaupdates ausgeführt. Ist das delight Programm komplett gestartet (Anmeldung als Benutzer durchgeführt), kann es wieder beendet werden.

8.Nun ist die Installation soweit abgeschlossen und die Installation kann auf die einzelnen Clientcomputer/Instanzen verteilt werden. Sofern das Verzeichnis für die Dokumentenablage nicht im Installationsverzeichnis abgelegt ist, kann nun einfach das komplette Installationsverzeichnis auf die Clients kopiert werden. Alternativ kann das Installationsverzeichnis auch Freigegeben und das Programm direkt ab dem UNC-Pfad gestartet werden.
Gestartet wird das Programm über die Datei ML2Client.exe. Diese Datei kann zB. auf den Desktop des Benutzer verknüpft werden.


Manuell Installation auf Windows Server

Manuell MariaDB-Installation auf Windows Server.

Die aktuelle Installationsroutine kann allenfalls etwas von den hier verwendeten Screenshots abweichen.

1.Downloaden Sie das aktuelle MSI-Installations-Paket ab https://downloads.mariadb.org/

2.Starten Sie das herunter geladene MSI-Paket und klicken Sie auf Next.

3.Lesen ;-) und akzeptieren Sie die Lizenzbedingungen. Kicken Sie auf Next.

4.Klicken Sie auf Next (keine Angaben erforderlich)

5.Geben Sie das Administrator-Passwort für die Datenbank ein.

Wichtig: Sie können dieses Passwort frei bestimmen. Merken Sie sich das Passwort für später
und legen Sie es in Ihren sicheren Unterlagen ab. Sie werden es später noch benötigen!

Markieren Sie die Option Enable access from remote machines for root user.

Klicken sie auf Next.

6.Die vorgeschlagenen Einstellungen sind meistens ok, klicken Sie auf Next.

7.Klicken Sie auf Next.

8.Klicken Sie auf Install.

9.Klicken Sie auf Ja und warten Sie, bis die Installation durchgeführt wurde.

10.Klicken Sie auf Finish

11.Im Windows Start-Menü finden sich nun die neu installierten Einträge von MariaDB.

Öffnen Sie den Eintrag my.ini

12.Ändern Sie den sql_mode auf:
sql_mode="NO_ENGINE_SUBSTITUTION"

13. Fügen Sie folgende Optionen nach der Linie [mysqld] (aber vor der Linie [client]) ein:

innodb_flush_log_at_trx_commit=2
max_allowed_packet=64M
innodb_file_per_table=1
max_connections=1024
innodb_stats_on_metadata=0

14.Speichern Sie die Datei über Menü => Datei => Speichern

15.Öffnen Sie die lokale Dienstverwaltung von Windows.
Windows-Taste-R oder Startmenü = Ausführen und dann "services.msc" eingeben.

16. Suchen Sie den MySQL Dienst, dies ist der übliche Name für den MariaDB-Dienst.

17.Führen Sie einen Rechtsklick auf den Dienst aus und wählen Sie Neu starten. Damit werden die neuen Einstellungen der my.ini aktiviert.

Die Installation und Konfiguration des Datenbank-Servers ist abgeschlossen. Sie können nun das Programm auf die soeben installierte Datenbank umstellen.
Lesen Sie dazu bitte die Installations-Anleitung Datenbank-Umstellung.

Anmerkung:

Im Start-Menü von Windows finden Sie nun ebenfalls das neu installierte Programm HeidiSQL.


Installation auf Azure Database for MariaDB-Server

Installation Azure Database for MariaDB-Server.

Grundvoraussetzung für die Installation ist ein aktives Microsoft Azure Konto sowie Kenntnisse in der Erstellung und Verwaltung von Ressourcen auf Azure.

1.Melden Sie sich bei Azure an.

2.Erstellen Sie eine MariaDB Instanz

3.Erstellen Sie die Ressource mit den gewünschten Leistungsmerkmalen.

4.Öffnen Sie die Serverparameter

5.Entfernen Sie in "sql_mode" die Option "STRICT_TRANS_TABLES"

6.Setzen Sie die Option "innodb_strict_mode" auf "OFF"

7.Setzen Sie "max_connections" wenn möglich auf einen höheren Wert. Pro User sollten ca. 10 aktive Connections gerechnet werden. Wir empfehlen üblicherweise einen Wert von 1024. Bei Azure ist der Maximalwert aber an den ausgewählten Kostenplan gebunden

Weitere Infos dazu: https://docs.microsoft.com/en-us/azure/mariadb/concepts-server-parameters#max_connections

8.Die Installation der Datenbank ist damit abgeschlossen und bereit für den nächsten Schritt: Datenbank-Umstellung.

Wichtig: Bitte beachten Sie die Anmerkungen zur Konfiguration in delight.


Anmerkungen zur Azure MariaDB-Konfiguration in delight

Für die Konfiguration in delight müssen bei Azure MariaDB ein paar Punkte beachtet werden.

·Die Azure MariaDB kann, wie auch eine lokal installierte MariaDB, mit HeidiSQL verwaltet werden: https://www.heidisql.com

·Azure verlangt bei MariaDB ein für MariaDB unübliches Format beim Benutzernamen. Der Benutzername besteht im Fall von Azure aus benutzername@servername.

Bsp: Der korrekte Benutzernamen für die Verbindung mit Azure (Datenbank-Umstellung Schritt 5) lautet im Fall des Benutzers "mydelightuser" auf dem Server "delightmariadbtesting" => "mydelightuser@delightmariadbtesting"

·Das (nächste) allgemeine Kapitel Anmerkungen zur Konfiguration in delight gilt auch für Azure MariaDB.


Anmerkungen zur Konfiguration in delight

Wir empfehlen das Einrichten eines separaten MariaDB-Benutzers der "nur" Berechtigung auf die "delight Datenbank" hat. Der root (Admin-User der Datenbank) sollte nicht direkt mit delight verwendet werden.

Benutzer mit HeidiSQL einrichten:

1.HeidiSQL starten und mit der MariaDB-Datenbank verbinden.

2.Werkzeuge => Benutzerverwaltung öffnen

3.Neuen Benutzer erstellen

4.Benutzername eingeben

5.Zugriff "von überall" definieren

6.Passwort generieren oder eingeben

7.Neues Zugriffsobjekt erstellen

8.Name der delight Datenbank eingeben.

Das muss dem Datenbanknamen in Schritt 5 in Kapitel Datenbank-Umstellung entsprechen.

9.Alle Rechte auf der Datenbank erteilen.

10.Falls Sie eine FullApp-Cloud Variante oder eine SaaS-Datenbank (z. B. Azure, Google, AWS) einrichten, sollte die Option "Nur SSL" auf dem Benutzer aktiviert werden.

11.Abschliessend auf Speichern klicken. Benutzername, Passwort und Datenbankname benötigen Sie nun für die Datenbank-Umstellung von delight.


Installation MySQL

Anmerkung: Dieses Kapitel für MySQL wird nicht mehr gepflegt. Die aktuelle Installationsroutine kann allenfalls etwas abweichen.

Wir empfehlen grundsätzlich die Installation von MariaDB.

Installationsanleitung für MySQL Community Edition

1.Downloaden Sie den MySQL-Server (www.mysql.com/downloads)

2.Datei Setup.exe aus dem ZIP-Archiv entpacken und starten.

Klicken Sie auf Weiter um die Installation zu starten.

3.Installationsart auswählen.

Wählen Sie Typical und klicken Sie auf Weiter.

4.Eingaben prüfen.

Klicken Sie auf Install um die Installation zu starten.

5.Installation läuft.

(Warten Sie bis alle Dateien installiert wurden)

6.Erstellen Sie bei Bedarf einen Account auf MySQL.com.

Dieser Schritt ist freiwillig. Um Ihn zu überspringen klicken Sie Skip Sign-up und anschliessend Weiter.

7.Installation Abgeschlossen.

Stellen Sie sicher, dass Configure the MySQL Server now markiert ist. Klicken Sie anschliessend auf Finish.

8.Server konfigurieren.

Klicken Sie auf Weiter um die Konfiguration des Server zu starten.

9.Detaillierte Konfiguration.

Wählen Sie Detailed Configuration, klicken Sie auf Weiter.

10.Einsatzgebiet wählen.

Wählen Sie Server Machine, klicken Sie auf Weiter.

11.Funktion des Server.

Wählen Sie Multifunctional Database, klicken Sie auf Weiter.

12.Speicher-Ort für InnoDB-Tabellen.

Belassen Sie die Einstellungen wie vorgegeben. Das Programm speichert seine Daten
nicht im InnoDB-Format. Klicken Sie auf Weiter.

13.Anzahl Verbindungen wählen.

Wählen Sie im Zweifelsfall die Einstellung (OLTP).

Hinweis:
Programme verwenden mehrere gleichzeitige Verbindungen pro Benutzer zum Datenbank-Server.
Die effektiv Anzahl hängt von den verwendeten Programm-Teilen ab.

Klicken Sie auf Weiter.

14.Netzwerk-Verbindung und Modus.

Wichtig:
Die Einstellung Enable Strict Mode muss ausgeschaltet werden! Beim Installationsprogramm von MySQL 5.5 ist das deaktivieren des Strict-Mode besonders wichtig, ansonsten schlägt die Installation von MySQL später fehl. Die scheint ein Fehler im MySQL Instance Configuration Wizard zu sein, in Version 5.5 kommt dieser mit dem Strict-Mode nicht mehr zurecht und bricht mit einem Fehler ab.

Belassen Sie die Port Number wie vorgegeben. Klicken Sie auf Weiter.

15.Zeichensatz auswählen.

Belassen Sie alle Einstellungen wie vorgegeben und Klicken Sie auf Weiter.

16.Installation Service.

Belassen Sie alle Einstellungen wie vorgegeben und Klicken Sie auf Weiter.

17.Administrator-Passwort setzen.

Geben Sie ein neues Passwort für die Datenbank ein.

Wichtig:
Notieren Sie sich diese Passwort, Sie werden es später wieder benötigen!

Belassen Sie alle anderen Einstellungen wie vorgegeben und Klicken Sie auf Weiter.

18.Konfiguration ausführen.

Klicken Sie auf Execute.

19.Konfiguration Abgeschlossen.

Der erste Teil der Installation und Konfiguration ist beendet. Klicken Sie auf Finish um das Konfigurationsprogramm zu schliessen.

Hinweis: Wenn Sie hier eine Fehlermeldung erhalten, haben Sie vermutlich bei Schritt 14. den Strict-Mode nicht deaktiviert.

20.Downloaden und installieren Sie nun MySQL Workbench um die Datenbank zu konfigurieren (http://www.mysql.com/downloads/workbench)

21.Starten Sie das soeben installierte Programm MySQL Workbench.

Das Programm kann über das Start-Menü von Windows unter Programme => MySQL gestartet werden.

22.Doppelklicken Sie auf der rechten Seite im Bereich Server Administration auf die Instanz "Local MySQL" um die Server Administration zu starten. Falls ein Benutzername oder Passwort verlangt wird, geben Sie bei Benutzername "root" (ohne "") und bei Passwort das Passwort aus Schritt 17 ein.

23.Wechseln (klicken) Sie in das Menü Options File (links unter CONFIGURATION) und danach weiter auf den Reiter Networking (oben in der Mitte).
Setzen Sie den Hacken bei der Option max_allowed_packet und erhöhen Sie den Wert auf mindestens 64M.

Falls Sie MySQL 5.5 installiert haben, müssen Sie zusätzlich einen Hacken bei der Option skip-name-resolve (weiter unten) setzen. Ansonsten kann es bei MySQL 5.5 zu Verbindungsproblemen mit der Datenbank kommen (Bug in MySQL Version 5.5.9 GA)

Klicken Sie danach auf Apply um die Einstellung zu speichern.

24.Wechseln (klicken) Sie in das Menü Startup /Shutdown (links unter MANAGEMENT) um den Datenbankserver neu zu starten.
Klicken Sie auf die Schaltfläche Stop Server und warten Sie bis der Dienst beendet wurde. Klicken Sie anschliessen auf die Schaltfläche Start Server um den Dienst wieder zu starten.

Die Installation und Konfiguration des Datenbank-Servers ist abgeschlossen. Sie können nun das Programm auf die soeben installierte Datenbank umstellen.
Lesen Sie dazu bitte die Installations-Anleitung Datenbank-Umstellung.


Installation MSSQL-Express

Installationsanleitung für MSSQL Express

1. Downloaden Sie den MSSQL Express-Server (www.microsoft.com/downloads)

2. Starten Sie das Installations-Programm (SQLEXPR_GER.EXE)

3. Installationsvoraussetzungen

Klicken Sie auf Installieren und danach auf Weiter.

4. Start des eigentlichen Installations-Programms

Klicken Sie auf Weiter.

5. Systemprüfung

Klicken Sie auf Weiter wenn keine Fehler gefunden wurden. Andernfalls müssen Sie

zuerst die genannten Fehler beheben.

6. Registrierung

Klicken Sie auf Weiter.

7. Komponenten

Klicken Sie auf Weiter.

8. Authentifizierungsmodus

Klicken Sie auf Weiter.

9. Fehlerberichterstattung

Klicken Sie auf Weiter.

10. Installationsbereit

Klicken Sie auf Installieren.

11. Installation läuft

Klicken Sie auf Weiter und danach auf Fertigstellen wenn alle Produkte installiert wurden.

Die Installation und Konfiguration des Datenbank-Servers ist abgeschlossen. Sie können nun das Programm auf die soeben installierte Datenbank umstellen.

Lesen Sie dazu bitte die Installations-Anleitung Datenbank-Umstellung.


Datenbank-Umstellung

1.Installieren Sie den delight base Datenbank Administrator.

Download von https://www.delight.ch/aktuelle-downloads

Wichtig: Beachten Sie bitte, dass Sie die jeweils zur Produkt-Version kompatible delight base Version downloaden und verwenden müssen.

2.Starten Sie den delight base Datenbank Administrator. Klicken Sie auf Weiter

3.Wählen Sie das installierte Programm das auf die externe Datenbank umgestellt werden soll.

Ist das Programm nicht in der Liste aufgeführt, kann das Installationsverzeichnis über [image] gesucht werden.

Anmerkung: Wenn Sie das Programm nicht auswählen können, verwenden Sie nicht die korrekte, zur Programm-Version passende,
Version des delight base Datenbank Administrators.

Klicken Sie auf Weiter

4.Konfigurieren Sie unter Zieldatenbank den gewünschten Datenbanktyp (MySQL, MariaDB, SQL Server).

5.Konfigurieren Sie den Datenbank-Server (Host)

Netzwerk-Version:
Geben Sie bei Host den Hostnamen oder die IP-Adresse des Datenbank-Servers ein. Diesen Hostnamen müssen die Clients auflösen
können, um eine Verbindung mit dem Datenbank-Server herstellen zu können.

Einzelbenutzer-Version:
Die Datenbank muss auf dem gleichen Computer wie das Programm installiert sein. Die Eingabe Datenbank-Server ist nicht erforderlich.
Falls Sie MSSQL Express für die Einzelbenutzer-Version installieren, sollte Sie die Option Windows NT Anmeldung verwenden einschalten.
Wenn Sie MySQL oder MariaDB für die Einzelbenutzer-Version verwenden, wird automatisch "localhost" verwendet.

Geben Sie Benutzername und Passwort ein. Wenn Sie bei MSSQL die Option Windows NT Anmeldung verwenden einschalten, sind Benutzername
und Passwort nicht erforderlich. Wenn Sie MySQL oder MariaDB anhand der Installations-Anleitung installiert haben, gebe Sie bei Benutzername "root"
und bei Passwort das Passwort, dass Sie bei der Installation verwendet haben, ein.

Der Name der Datenbank im Eingabefeld Datenbankname muss in den meisten Fällen nicht geändert werden. Falls Sie mehrere delight Programm
auf dem selben Datenbank-Datenbank-Server installieren, müssen Sie darauf achten, dass jedes Programm einen eigenen Datenbanknamen bekommt.

6.Wählen Sie unter Optionen Datenbank die Einstellung Datenbank kopieren und Programm konfigurieren.
Die Einstellung Nur Programm konfigurieren sollten Sie nur dann verwenden, wenn Sie die Datenbank bereits erstellt und kopiert haben.

Stellen Sie sicher, dass die Option Datenbank erstellen markiert ist.

Die Option Protokolldaten ausschliessen sollte aktiviert sein. Damit werden die unter Umständen sehr grossen Protokolltabellen nicht kopiert. Das Kopieren dieser Tabellen kann u.U. sehr lange (mehrere Stunden) dauern.

7.Prüfen nun, ob die Verbindung zur neuen Datenbank funktioniert.
Klicken Sie dazu auf
Sollte die Verbindung nicht hergestellt werden können, müssen Sie den Datenbank-Server sowie Ihre Eingaben prüfen.

Klappt die Verbindung, klicken Sie bitte auf Weiter.

8.Optional können Sie an dieser Stelle gleich den Pfad für Dokumentenablage konfigurieren. Weitere Informationen dazu
im Kapitel Pfad für Dokumentenablage konfigurieren in Schritt 5. Sie können diesen Schritt auch überspringen und später durchführen.

9.Optional können Sie an dieser Stelle gleich den MultiUser-Server installieren und konfigurieren. Weitere Informationen dazu
im Kapitel MultiUser-Server Dienst Installation ab Schritt 6. Sie können diesen Schritt auch überspringen und später durchführen.

Klicken Sie auf Weiter.

10.Prüfen Sie nochmals alle Daten und klicken Sie anschliessend auf Weiter um den Kopiervorgang zu starten.

11.Die Daten werden kopiert, warten Sie bis alle Daten auf den Datenbank-Server kopiert wurden.

12.Die Datenbank wurde erstellt und die Daten kopiert. Klicken Sie auf Weiter.

13.Bis zu diesem Schritt wurde die Konfiguration noch nicht gespeichert. Falls beim Kopieren Fehler aufgetreten sind oder
Sie aus einem anderen Grund abbrechen möchten, können Sie das an dieser Stelle gefahrlos tun. Das Programm bleibt
dann auf der alten (aktuellen) Konfiguration.

Klicken Sie auf Weiter um die Konfiguration zu speichern.

14.Die Umstellung ist beendet. Ab jetzt läuft das Programm auf der neu konfigurierten Datenbank.


Pfad für Dokumentenablage konfigurieren

1.Melden Sie sich auf dem Server, auf welchem der zentrale MultiUser-Windows-Service installiert ist an.
Sie benötigen Administratoren-Rechte um die Konfiguration zu bearbeiten.

2.Installieren Sie den delight base Datenbank Administrator

Download von https://www.delight.ch/aktuelle-downloads

Wichtig: Beachten Sie bitte, dass Sie die jeweils zur Produkt-Version kompatible delight base Version downloaden und verwenden müssen.

3.Starten Sie den delight base Datenbank Administrator und wählen Sie die Anwendung, für welche das Verzeichnis konfiguriert
werden soll. Klicken Sie anschliessend auf Weiter.

4.Belassen Sie alle Einstellung wie sie sind und Klicken Sie direkt auf Weiter.

5.Wechseln Sie in den Reiter Dokumenten-Verwaltung

6.Aktivieren Sie den Ablageort delight base MultiUser-Server wenn der MultiUser-Server verwendet wird (empfohlen).

7.Konfigurieren Sie den Pfad für die Ablage der Dokumente.

Wenn Sie den MultiUser-Server verwenden, benötigt nur der MultiUser-Server (sprich der Windows-Benutzer unter welchem der Windows-Dienst läuft)
Schreib- und Lesezugriff auf diesen Pfad. Die Clients/Benutzer benötigen KEINEN Zugriff (auch keinen Lese-Zugriff) auf diesen Pfad.

Wenn der MultiUser-Server nicht verwendet wird, müssen alle Client/Benutzer Schreib- und Lesezugriff auf den Pfad haben.

Grundsätzlich sollte eine Verzeichnis ausserhalb des Installationsverzeichnisses gewählt werden!

Klicken Sie anschliessend auf Weiter.

8. Klicken Sie auf Weiter um die Konfiguration zu speichern.

9.Falls der MultiUser-Server bereits installiert und gestartet wurde, muss der Dienst neu gestartet werden.

Anmerkung:

Die bereits erstellen Dokumente aus dem alten Ablagepfad müssen Sie selbst, manuell vom alten Ort in den neuen Ablagepfad kopieren!


MultiUser-Server Dienst Installation

1.Melden Sie sich auf dem Server, auf welchem der zentrale MultiUser-Windows-Service installiert werden soll, an.
Sie benötigen Administratoren-Rechte um einen neuen Windows-Dienst zu installieren.

2.Installieren Sie den delight base Datenbank Administrator

Download von https://www.delight.ch/aktuelle-downloads

Wichtig: Beachten Sie bitte, dass Sie die jeweils zur Produkt-Version kompatible delight base Version downloaden und verwenden müssen.

3.Starten Sie den delight base Datenbank Administrator und wählen Sie die Anwendung, für welche der Windows-Dienst auf
dem Server, auf dem Sie jetzt arbeiten, installiert werden soll. Klicken Sie anschliessend auf Weiter.

4.Belassen Sie alle Einstellung wie sie sind und Klicken Sie direkt auf Weiter.

5.Wechseln Sie in den Reiter MultiUser-Server

6.Aktivieren Sie MultiUser-Server verwenden.

7.Definieren Sie einen Schlüssel für die Kommunikation. Nur Client-Anwendungen mit dem gleichen Schlüssel können später
mit dem Server kommunizieren.

8.Geben Sie bei Host den Hostnamen oder die IP-Adresse dieses Servers ein. Diesen Hostnamen müssen die Clients auflösen
können, um eine Verbindung mit dem MultiUser-Server herstellen zu können.

9.Klicken Sie auf Windows Service installieren um den Service auf diesem Server zu installieren.
Klicken Sie anschliessen auf Weiter.

Anmerkung: Der Dienst kann auch manuell per Parameter installiert und deinstalliert werden:
> {Installdir}\MLMultiUserServerSVC.exe -install
> {Installdir}\MLMultiUserServerSVC.exe -uninstall

10. Klicken Sie auf Weiter um die Konfiguration zu speichern.

11. Sie finden den neuen Windows-Dienst nun in der lokalen Dienst-Verwaltung von Windows. Sofern die Datenbankumstellung und die
Konfiguration des Dokumenten-Ablagepfades abgeschlossen sind, kann der Dienst nun in der Dienstverwaltung von Windows gestartet werden.

Wichtig:

Der Windows-Service benötigt Zugriff auf den Dokumenten-Ablagepfad der Dokumenten-Verwaltung. Stellen Sie sicher, dass der Windows-Benutzer, unter welchem der Dienst läuft, Schreib- und Leserechte auf diesen Pfad besitzt!

Bedenken Sie, dass Freigaben die als Laufwerk verbunden sind IMMER auf einen bestimmen Benutzer verbunden sind. Wenn der Dokumentenpfad auf einem anderen Server abgelegt ist, sollte der direkte UNC-Pfad konfiguriert werden und der Dienst unter einem Benutzer mit Schreib- und Lesezugriff auf den UNC-Pfad ausgeführt werden.


Datenexport

Mit dem Datenexport-Modul können Daten sortiert und gefiltert, in bekannte Formate wie Excel, Word, XML, RTF, LaTeX, DIFF, CSV, usw. exportiert werden.

siehe auch:

Export


Export

1. Geben Sie eine Zieldatei für den Export an.
2. Wählen Sie den gewünschten Exporttyp.
3. Machen Sie die gewünschten Einstellungen zum Export (Felder, Kopf- und Fusszeile, Formate, Überschriften).
4. Klicken Sie auf den Button Exportieren.
5. Haben Sie etwas Geduld bis der Export abgeschlossen ist. Je nach Datenmenge und Verbindungsgeschwindigkeit zum Datenbankserver kann der Export einige Zeit in Anspruch nehmen.

siehe auch:

Exporttyp

Felder

Kopf- und Fusszeile

Formate

Überschriften


Exporttyp

Klicken Sie den gewünschten Exporttyp an.

Je nach Exporttyp stehen Ihnen andere Einstellungsmöglichkeiten zur Verfügung.

Hinweis:

Bitte beachten Sie, dass nicht alle Exporttypen für grosse Datenmengen geeignet sind.

So ist es z.B. möglich, grosse Datenmengen in das LaTeX-Format zu exportieren.

In der Praxis sind LaTeX-Dateien dieser Grösse oft unpraktisch, da sämtlich Daten

in eine grosse Tabelle exportiert werden.


Felder

Wenn keine Felder in der Liste Exportierte Felder vorhanden sind, werden alle

verfügbaren Felder exportiert. Ansonsten werden nur Felder in der Liste Exportierte Felder

exportiert.

> - Fügt das in Verfügbare Felder markierte Feld in die Liste Exportierte Felder ein.

>> - Fügt alle Verfügbaren Felder in die Liste Exportierte Felder ein.

< - Entfernt das in in der Liste Exportierte Felder markierte Feld.

<< - Entfernt alle Felder in der Liste Exportierte Felder.


Formate

Allgemein:

Hier können Sie die allgemeine Formatierung für Zahlen- und Datumsfelder festlegen.

Benutzerdefiniert:

Hier legen Sie spezielle Formatierungen für Zahlen- und Datumsfelder fest.

Fügen Sie jedes Feld das nicht nach einer allgemeinen Formatierung formatiert werden

soll, in die Liste ein.


Kopf- und Fusszeile

Hier können Sie die Kopf- und Fusszeile, die auf dem Export erscheinen soll, angeben.


Überschriften

Hier können die Spaltenüberschriften der einzelnen Felder geändert werden.


Integration

Dieses Modul integriert sich automatisch in das Menu Funktionen (Zusätzliche Funktionen) einer Datenbanktabelle.

Dadurch kann jede Datenbanktabelle exportiert werden. Falls die Tabelle gefiltert ist, wird dies ebenfalls berücksichtigt.


Datenimport

Mit dem Datenimport-Modul können Daten von verschiedenen Formate wie z.B. CSV, VCard, usw. importiert werden.

Eine Schritt-für-Schritt Anleitung zur Bedienung des Import Assistenten finden Sie im Kapitel Import Assistent.

siehe auch:

Wie kann ich...


Import starten

Der Datenimport wird von verschiedenen Modulen verwendet und steht im Menübereich Import & Export zur Verfügung.

Klicken Sie auf den gewünschten Menüpunk um den Import zu starten und folgen Sie dem Import-Assistenten.

siehe auch:

Wie kann ich eine Excel-Datei importieren?

MLXML-Datei importieren

MLXML-Datei exportieren

Anmerkung:

Der MLXML-Export Wizard und der MLXML-Import Wizard steht nur in Produkten welche die MLXML Business Integration enthalten zur Verfügung. Eine Dokumentation zum Wizard finden Sie im entsprechenden Handbuch.


Import Assistent

1. Wählen Sie die Datei mit den Daten die Sie importieren möchten.

Wählen Sie bei Dateityp das Format in dem die zu importierende Datei vorliegt, wählen Sie die Datei aus und klicken Sie auf Öffnen.

2. Der Import-Assistent wird gestartet.

Über die Schaltfläche Konfiguration können Sie Einstellungen zum ausgewählten Import-Format vornehmen. Diese Einstellungen hängen vom ausgewählten Import-Format ab und müssen normalerweise nicht verändert werden.

Klicken Sie auf Weiter um fortzufahren.

3. Zuordnung der Felder

Auf dieser Seite werden die verfügbaren Ziel-Felder den verfügbaren Spalten der Import-Datei gegenübergestellt. Ordnen Sie alle Spalten (die Sie importieren möchten) der Import-Datei einem Feld auf der linken Seite zu.

Klicken Sie anschliessend auf Weiter.

4. Import Modus bestimmen.

Wenn Sie Alles importieren möchten, wählen Sie Alle Datensätze neu Einfügen. Wenn Sie nur neue Datensätze importieren möchten, müssen Sie unter Schlüsselfelder alle Felder, die für den Vergleich verwendet werden sollen, auswählen.

5. Import Optionen bestimmen

Wenn Sie aus einem Format importieren, das in der ersten Zeile Spaltenüberschriften enthalten kann (z.B. CSV) können Sie die Option Ersten Datensatz überspringen markieren damit die Spaltenüberschrift nicht importiert wird. Alle anderen Einstellungen müssen normalerweise nicht verändert werden.

6. Datenmanipulation vor dem Import

Hier kann für jedes Feld definiert werden, ob und wie die zu importierenden Daten vor dem Import manipuliert werden sollen.

Wenn Sie z.B. Postleitzahlen im Format "CH-9000" importieren möchten, können Sie hier das "CH-" entfernen.

Normalerweise müssen Sie hier keine Einstellungen vornehmen.

7. Bedingte Regeln

Hier können Sie erweiterte Kriterien für den Import von Datensätzen konfigurieren. Es kann z.B. definiert werden, dass Datensätze die eine gewisse Bedingung erfüllen nicht importiert werden oder der Wert eines Feldes durch den Wert eines anderen Feldes ersetzt wird.

Normalerweise müssen Sie hier keine Einstellungen vornehmen.

8. Import Start - Kontrolle der Konfiguration

Hier können Sie alle Einstellungen überprüfen. Wenn alle Einstellungen in Ordnung sind, können Sie den Import mit Weiter starten.

9. Import Beendet

Nach Abschluss des Datenimportes erhalten Sie eine ausführliche Aufstellung aller durchgeführten Aktionen. Falls Fehler aufgetreten sind, können Sie mit Zurück die Einstellungen entsprechend anpassen um die Fehler zu korrigieren.


Wie kann ich...

Wie kann ich...

...eine Excel-Datei importieren?


...eine Excel-Datei importieren?

Wenn Sie ein Produkt ohne MLXML Business Integration haben, müssen Sie die Excel Datei vor dem Import in eine CSV-Datei umwandeln. Ist die MLXML Business Integration verfügbar, steht zusätzlich noch der direkte Weg über den deutlich flexibleren und umfangreicheren MLXML-Import Wizard zur Verfügung.

Tip:

Wenn Sie eine normale, einfache Adressliste importieren möchten, ist der hier beschriebene Weg über das CSV-Format (auch wenn die MLXML Business Integration verfügbar ist) durchaus zu empfehlen. Der Import über CSV ist relative einfach zu bewerkstelligen und es gibt sehr wenig Fallstricke.

Import über CSV:

1. Öffnen Sie die gewünschte Datei in Excel

2. Klicken Sie im Menü Datei => Speichern unter...

3. Wählen Sie bei Dateityp das Format "CSV (Trennzeichen-getrennt) (*.csv)"

4. Speichern Sie die Datei mit Speichern

5. Diese Datei können Sie nun mit dem Import Assistent importieren.


Dokumentverwaltung

Mit dem Dokumentverwaltungs-Modul können jedem Datensatz (z.B. Adressdatensatz) Dokumente in einem beliebigen Dateiformat hinzugefügt werden.

Die Dokumente werden zentral auf einem Dokumentenserver gespeichert, somit stehen die Dokumente allen Benutzern an allen Standorten zur Verfügung. Lesen Sie dazu bitte das Kapitel Funktionsweise.

siehe auch:

Funktionsweise

Programmoberfläche


Programmoberfläche

Die Programmoberfläche kann je nach Konfiguration und Ausstattung ihres Softwarepaketes Abweichungen vom unten gezeigten Beispiel haben.

siehe auch:

Neuer Ordner

Ordner Löschen

Neue Datei

Datei bearbeiten

Datei ersetzen

Datei Löschen

Datei Öffnen

Datei Speichern

Speichern

Aktualisieren


Bereiche

Die Dokumentenverwaltung ist in zwei Bereiche unterteilt:

Öffentliche Dokumente | Dokumente in diesem Bereich sind für alle Anwender, die Zugriff auf die Dokumentenverwaltung haben, verfügbar.
Private Dokumente | Dokumente in diesem Bereich sind nur für einen Anwender sichtbar. Jeder Anwender kann seine eigenen persönlichen Dokumente in diesem Bereich ablegen.


Anwendung

Anwendung und Bedienung der Dokumentenverwaltung.


Neuer Ordner

Markieren Sie einen Ordner dem Sie ein Unterordner hinzufügen möchten und klicken Sie auf Neuer Ordner.


Ordner Löschen

Markieren Sie den Ordner den Sie löschen wollen und klicken Sie auf Ordner löschen.


Datei Löschen

Markieren Sie eine Datei und klicken Sie auf Datei Löschen um die Datei aus der Dokumentverwaltung zu entfernen.


Datei bearbeiten

1. Markieren Sie eine Datei und klicken Sie auf Datei bearbeiten.

2. Geben Sie an wo die Datei gespeichert werden soll und klicken Sie

auf Speichern.

3. Falls der Dateityp mit einer Anwendung verknüpft ist, wird die Datei mit

der Standardanwendung geöffnet.

Der Dateistatus in der Dokumentverwaltung wird automatisch auf

aktualisieren gesetzt.

4. Nachdem das Dokument bearbeitet und gespeichert wurde, kann es über

Speichern definitiv in der Dokumentverwaltung abgelegt werden.


Neue Datei

1. Markieren Sie einen Ordner dem eine Datei hinzugefügt werden soll.

2. Klicken Sie auf Neue Datei um eine neue Datei hinzuzufügen.

3. Wählen Sie Ihre Datei aus und klicken Sie auf Öffnen

Sie können auch mehrere Dateien gleichzeitig durch Drag&Drop vom Windows Explorer auf die Dokumentverwaltung ziehen.


Datei ersetzen

1. Markieren Sie eine Datei um sie zu ersetzen.

2. Klicken Sie auf Datei ersetzen.

3. Wählen Sie die neue Datei und klicken Sie auf Öffnen.


Datei Öffnen

Markieren Sie eine Datei und klicken Sie auf Datei Öffnen um die Datei zu öffnen.


Datei Speichern unter

Markieren Sie eine Datei und klicken Sie auf Datei speichern unter um die Datei lokal zu speichern.


Druckeraufträge

Wenn ein Drucker zum direkten drucken in die Dokumentverwaltung installiert wurde, können über den Button Druckeraufträge alle über diesen Drucker gedruckten Dokumente, die noch nicht in der Dokumentenverwaltung abgelegt wurden, importiert werden.

Markieren Sie den Zielordner für die gedruckten Dokumente und klicken Sie auf Druckeraufträge um die Dokumente in den Ordner zu importieren.


Speichern

Alle Änderungen die gemacht werden, sind durch verschieden farbige Icons ersichtlich. Die Änderungen können über Speichern gespeichert werden. Normalerweise speichert die Anwendung automatisch.

Dateistatus:

Farbe | Aktion bei Änderungen ausführen
normal | keine
rot | wird gelöscht
grün | wird hinzugefügt
gelb | wird aktualisiert


Aktualisieren

Mit Aktualisieren könne alle Änderungen verworfen werden. Mit Aktualisieren werden auch alle Dokumente neu geladen.

Siehe auch:

Speichern


Integration

Dieses Modul integriert sich automatisch in das Menu Funktionen (Zusätzliche Funktionen) einer Datenbanktabelle.

Mit dieser Funktion haben Sie die Möglichkeit, auf jedem Datensatz beliebig viele Dokumente in einer beliebigen Ordnerstruktur abzulegen.

Dokumente auf einem Datensatz:

Markieren Sie einen Datensatz und starten Sie die Funktion

Dokumente um die Dokumente eines Datensatzes zu verwalten.

Dokumente auf einer ganzen Tabelle:

Klicken Sie in der Tabelle unterhalb des letzten Datensatzes in den Grid, so dass kein Datensatz markiert ist.

Starten Sie die Funktion Dokumente um die Dokumente der aktuellen Tabelle zu verwalten.


Funktionsweise

Die Dokumentenverwaltung speichert alle Dokumente real ab. Es wird nicht nur eine Verknüpfung auf den Speicherort auf der Festplatte, sondern das komplette Dokument als solches gespeichert.

Dies hat den Vorteil, dass es keine Verknüpfungen gibt, die durch verschieben, umbenennen oder löschen der Dateien (auf der Festplatte), verloren gehen können. Zusätzlich ist damit ausgeschlossen, das Benutzer ihre Dateien lokal abspeichern und somit andere Benutzer keinen Zugriff auf das verknüpfte Dokument hätten (Netzwerk-Version). Chaotisch verteilte Dateien und Verzeichnisstrukturen werden vermieden und jedes Dokument ist immer zu 100% verfügbar.

Alle Dokumente werden komprimiert und verschlüsselt auf einem zentralen Speicherort abgelegt. Damit wird Platz gespart und das Backup vereinfacht.

Nachdem ein Dokument in die Dokumentverwaltung eingefügt und gespeichert! wurde, kann es von der Festplatte gelöscht werden. Das komplette Dokument befindet sich dann in der Dokumentverwaltung und kann jederzeit wieder exportiert werden.


In die Dokumentenverwaltung drucken

Wenn von jeder Anwendung direkt in die Dokumentenverwaltung gedruckt werden soll, muss ein Druckertreiber für die Dokumentverwaltung installiert werden.


Installation Druckertreiber

Die Installation des Druckertreibers für die Dokumentverwaltung benötigt zwei zusätzliche Anwendungen.

Bitte beachten Sie die Lizenzbestimmungen dieser Anwendungen.

Die hier für die Installation beschriebene Vorgehensweise bezieht sich auf Windows 2000 und Windows XP.

Installation:

1. Zusätzlich benötigte Software

Downloaden und installieren Sie gs800w32.exe und redmon17.zip.

http://sourceforge.net/projects/ghostscript/

ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/ghostgum/redmon17.zip

2. Installation des Druckers

Wählen sie "Lokaler Drucker". Plug & Play sollte nicht markiert sein. Klicken Sie

auf Weiter um die Installation fortzufahren.

3. Anschlusstyp erstellen

Wählen Sie "Einen neuen Anschluss erstellen" und geben Sie bei Anschlusstyp

"Redirected Port" an. Klicken Sie nach Angabe des Anschlusstyps auf Weiter.

4. Anschlusstyp benennen

Belassen Sie den Vorgegebenen Wert und klicken

Sie auf OK.

5. Drucker auswählen

Wählen Sie einen Postscript fähigen Drucker aus. Es wird empfohlen einen

"HP Color LaserJet PS" zu wählen. Klicken nach der Auswahl des Druckers auf Weiter.

6. Drucker benennen

Geben Sie dem Drucker einen eindeutigen Namen und klicken Sie auf Weiter.

7. Programm konfigurieren

Starten Sie das delight-Programm und öffnen Sie die Konfiguration der Dokumentverwaltung im Menu Konfiguration => Dokumentverwaltung

Geben Sie den Pfad zum Ghostscript ({Installationsverzeichnis gs800w32.exe}\bin) an und wählen Sie den Drucker aus, den Sie bei Schritt 2 bis 6 erstellt haben. Die Angabe des Spooler-Pfades kann auf dem Standardwert belassen werden. Bitte beachten Sie, dass diese Konfiguration nur für Windows 2000 und Windows XP verwendet werden kann.


Druckersteuerung

Mit der Druckersteuerung können verschiedene Berichte/Vorlagen zusammen gefasst und in einer Aktion auf verschiedene Drucker verteilt werden. So kann zB. beim Rechnungsdruck Rechnung und Einzahlungsschein mit einem Klick gedruckt werden, wobei der Einzahlungsschein dabei auf einem anderen Drucker als die Rechnung gedruckt werden kann.


Druckersteuerung verwalten

Die Druckersteuerung wird im Prinzip als Layout einer Bericht-Vorlage erstellt/verwaltet.


Druckersteuerung erstellen

Öffnen Sie die Vorlagen-Verwaltung und wählen Sie den gewünschten Bereich.

Um eine neue Druckersteuerung zu konfigurieren, müssen Sie eine Bericht-Vorlage mit Layout "Druckersteuerung" im gewünschten Bereich erstellen.

Klicken Sie auf Vorlage erstellen und anschliessend auf Layout erstellen um ein neues Layout für die soeben erstellte Vorlage zu erstellen.

Wählen Sie Druckersteuerung und klicken Sie auf Übernehmen.


Druckersteuerung bearbeiten

Die Druckersteuerung kann beliebig viele Bericht-Vorlagen ausführen und ausgeben.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => Druckersteuerung aufgerufen.


Drucker Aliasnamen

Mit den Aliasnamen für Drucker können allgemeine Druckernamen definiert werden. Dieser Namen gelten für alle Programmbenutzer.

Sofern auf allen Computer alle Drucker die selben Namen haben, können diese über das Feld Globaler Drucker dem jeweiligen Alias zugeordnet werden. Ist kein lokaler Drucker ausgewählt, wird automatisch der Standard-Drucker des Systems verwendet.


Lokale Drucker

In Lokale Drucker können für jeden Benutzer/Computer separat Drucker zu den Aliasnamen zugewiesen werden.

Falls kein lokaler Drucker ausgewählt ist, wird der entsprechende Drucker aus der Alias-Einstellung verwendet.


Kommunikation

Mit dem Kommunikations-Modul können Email- und SMS-Nachrichten versendet werden.

In der Konfiguration können die Email- und SMS-Konten konfiguriert werden.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => Kommunikation aufgerufen.


Email

Im Unterbereich Email können die Email-Konten konfiguriert werden. Email-Konten werden für den Versand von Emails und für die Email-Verknüpfungen benötigt. MAPI-Konten (Outlook-Profile) können über die Synchronisation synchronisiert werden.

Systembenutzer | Mitarbeiter dem das Email-Konto zugeordnet werden soll. Wenn das Email-Konto allen Benutzern des Programms zur Verfügung stehen soll, muss dieses Feld leer sein. Ansonsten steht das Konto nur dem entsprechenden Mitarbeiter zur Verfügung.
Protokoll | Protokoll des Email-Servers. (siehe Unten)
Server | Üblicherweise IP-Adresse oder DNS-Name des Email-Servers. Beim Protokoll Outlook muss hier der Name des gewünschten Outlook-Profiles eingetragen werden.
Benutzername | Benutzername für den Zugriff auf den Email-Server.
Passwort | Passwort für den Zugriff auf den Email-Server.
Email-Adresse | Email-Adresse des Kontos.
Absender-Name | Absender-Name oder Email-Adresse die angezeigt werden soll.

Verfügbare Protokolle:

Protokoll | Beschreibung | Versenden | Empfangen
MAPI-Konto | Protokoll für den Zugriff auf ein Outlook-Profil. | Ja | Ja
IMAP-Konto | Protokoll für den Zugriff auf einen IMAP-Server. | Nein | Ja
SMTP-Konto | Protokoll für den Versand über einen SMTP-Server. | Ja | Nein
IMAP/SMTP-Konto | Protokoll für den Zugriff auf einen IMAP-Server der gleichzeitig auch den SMTP-Versand anbietet. | Ja | ja

Absenderkonto in Outlook

In MAPI (Exchange/Outlook) können mehrere Absenderkonten pro Outlook-Profil eingerichtet werden. An dieser Stelle im delight-Programm kann ein MAPI-Profil für den Versand von Emails eingerichtet werden. Im Eingabefeld Absender-Name kann optional der Name des Email-Kontos (wie in Outlook/Exchange benannt) eingetragen werden. Das delight-Programm versendet seine Emails dann über dieses Absenderkonto. Wird kein Absender-Name eingetragen, wird das in Outlook als Standard-Konto definierte Konto für den Versand verwendet.

Wichtig: Diese Funktion funktioniert nur, wenn ihr delight-Programm die selbe "Bit-Version" wie das installierte Outlook verwendet (dh. beide Programme müssen entweder 64-Bit oder 32-Bit sein - eine Mischung ist nicht möglich)

Ordner für Synchronisation

Bei Outlook-MAPI Profilen kann in Ordner für Synchronisation der Kontakte-Ordner und der Kalender-Ordner für die Synchronisation ausgewählt werden. Damit kann die Synchronisation auf einen bestimmten Ordner eingeschränkt werden.

Hinweis:

Email-Verknüpfungen funktionieren nur mit Protokollen die den Empfang von Emails unterstützen.

Die Empfangs-Funktion wird zur Zeit ausschliesslich von den Email-Verknüpfungen verwendet. Einen Email-Client für den Empfang von Emails als solches gibt es zur Zeit in Ihrem delight-Programm (noch) nicht.


MAPI/Outlook-Profil konfigurieren

Um ein MAPI/Outlook-Profil für den E-Mail-Versand oder die Synchronisation zu konfigurieren muss bei Protokoll "MAPI-Konto" ausgewählt werden. Im Feld Server wird der Name des Profils eingetragen. Den Namen Ihres Outlook-Profils finden Sie in der Windows-Systemsteuerung unter Mail.


SMS

Im Unterbereich SMS kann der SMS-Provider für den Versand von SMS-Nachrichten konfiguriert werden.

Der Versand von SMS-Nachrichten benötigt ein SMS-Konto bei aspsms.com. Weitere Information zu aspsms erhalten Sie auf www.aspsms.com.

Nach der erfolgreichen Registrierung bei aspsms.com erhalten Sie ein Email mit Ihren Benutzerdaten. Geben Sie Ihren persönlichen Userkey sowie das Passwort ein. Wenn Sie als Absender eine Mobil-Nummer verwenden möchten, müssen Sie diese bei aspsms.com freischalten und bei Standard Absender eingeben.


MLXML Business Integration

Mit der MLXML Business Integration können Daten automatisiert mit anderen Anwendungen ausgetauscht werden. Die Erweiterung beinhaltet verschiedene Konverter und Transportprotokolle zum ausliefern und importieren von Daten.

MLXML beschreibt ein XML-Schema, das alle (durch MLXML unterstützen) Daten der Software in einem einheitlichen XML-Format notieren kann. Eine MLXML-Datei kann verschiedene Daten (z.B. Adressen, Journal-Einträge, Skripte, Stammdaten wie Postleitzahlenstamm oder Bankenstamm usw.) in einer Datei beinhalten. MLXML-Dateien können an einem zentralen Punk in der Software importiert werden, egal welche Daten die Datei beinhaltet.

Mit geeigneten Konvertern kann praktische jede Datenquelle in ein MLXML-Dokument konvertiert werden. Optional merkt sich der Import zu jedem importieren Datensatz die Herkunft und eine eindeutige Datensatznummer (z.B. Primärschlüssel des Datensatzes in der Quell-Datenbank). Somit können verschiedene Daten aus verschiedenen Datenquellen automatisiert zusammengezogen und aktualisiert/synchronisiert werden.

siehe auch:

MLXML-Business Wizard

Import

Transport

Konverter

MLXML-Format


MLXML-Business Wizard

Der MLXML-Business Wizard bietet eine Oberfläche zur Bearbeitung von Import- und Exportkonfigurationen. Diese Konfigurationen können in einem Textformat gespeichert und jederzeit wieder ausgeführt werden. Optional können die gespeicherten Konfigurationen über den Taskplaner geplant und automatisiert im Hintergrund ausgeführt werden.

Es steht jeweils ein separater Wizard für Import- und Export zur Verfügung. Da beide Wizards sehr ähnlich sind und sich nur in kleinen Details unterschieden, dokumentiert dieses Handbuch die Grundlegenden Funktionen beider Wizards gemeinsam in einem Kapitel.

Die Wizards werden im Menübereich Import & Export gestartet.

Wählen Sie eine vordefinierte Einstellung oder erstellen Sie eine neue Konfiguration.

In der Auswahl vordefinierte Einstellungen stehen im Lieferumfang enthaltene sowie selbst erstelle Konfigurationen zur Verfügung. Über Neue Konfiguration kann eine neue Konfiguration für einen bestimmten Konverter erstellt werden.

Wird eine vordefinierte Einstellung ausgewählt, die den direkten Start ohne weitere Konfigurationsschritte erlaubt, kann die Aktion über Import/Export starten gestartet werden.

Mit klick auf Konfiguration kann die ausgewählte Einstellung konfiguriert werden.


Konfiguration

Die Konfiguration ist sehr umfangreich, je nach Konverter stehen unterschiedliche Einstellungen zur Verfügung.

Folgende Bereiche sind verfügbar:

Einstellungen | Einstellungen zum Konverter und zur Ein- und Ausgabe der Daten.
MLXML/BI-Optionen | Allgemeine Optionen sowie globale Optionen für MLXML.
Verarbeitung | Einstellungen zur Verarbeitung der Daten.


Einstellungen

Im Bereich Einstellungen werden spezifische Einstellungen zum Konverter sowie zur Ein- und Ausgabe der Daten konfiguriert.

Allgemein | Allgemeine Angaben zur Konfiguration.
Einstellungen zum Konverter | Einstellungen zum gewählten Konverter den die Konfiguration verwendet.
Ausgabe | Einstellungen zur Datenausgabe.


Allgemein

Im Bereich Allgemein werden allgemeine Einstellungen zur Konfiguration zur vorgenommen.

Titel | Titel/Bezeichnung der Konfiguration. Wird im Wizard auf der Startseite angezeigt.
Quell-Applikation | Freier Bezeichner für den Ursprung bzw. die Herkunft der Daten.
MLXML-Part | Definiert um welche Daten im Programm es sich handelt. Beim Import das Ziel der Daten, beim Export die Daten welche exportiert werden sollen.
MLXML-ItemPart | Bezeichner für die Daten im MLXML-Format. Kann in der Regel leer belassen werden.
MXC-Identifier | Schlüssel der die Konfiguration einem bestimmten Bereich im Programm zuordnet. Kann in der Regel leer belassen werden.
Parameter | Parameter für die Konfiguration. Kann in der Regel leer belassen werden.
UID | Eindeutiger Schlüssel für die Konfiguration. Jede Konfiguration sollte eindeutig identifiziert werden können. Wird eine Konfigurationsdatei kopiert, sollte mit Erzeugen ein neuer Schlüssel definiert werden.


Einstellungen zum Konverter

Im Bereich mit den Einstellungen zum Konverter kann der verwendete Konverter konfiguriert werden. Jeder Konverter hat seine eigenen Einstellungen.

Dieses Handbuch dokumentiert die wichtigsten Konverter:

ADODB/OLEDB | Import/Export sämtlicher ADO/OLEDB Datenbanken.
CSV (Comma-separated) | Import von CSV (Trennzeichen getrennt) Dateien.
Base | Import von DBASE-Datenbanken.
LDAP | Import von LDAP Directories.
Magento-Shop | Import/Export von und zu Magento Commerce Online Shop.
MySQL Database | Nativer Import/Export von/zu MySQL-Datenbanken.
Direct Database Access | Nativer Import/Export von/zu allen gängigen Datenbanken: ·Access ·Advantage ·ASE ·DB2 ·InterBase ·MySQL ·ODBC ·Oracle ·PostgreSQL ·SQL Server ·SQLite
XSLT Transformation | Transformiert ein beliebiges XML-Dokument mit einem XSL-Stylesheet.


ADODB/OLEDB

Der ADODB/OLEDB Konverter importiert/exportiert von sämtlichen ADO/OLEDB Datenbanken.

Im Eingabefeld Verbindungs-String kann der ADO/OLE Verbindungsstring definiert werden. Über die Schaltfläche [image] kann der Verbindungsstring aufgebaut werden.

In Tabelle kann die Daten-Tabelle ausgewählt werden.

Alternativ kann über Abfrage ein SQL-Query zur Datenabfrage definiert werden. Das SQL-Query kann optional auch in eine Datei ausgelagert werden. Der Dateiname wird dabei in folgender Form eingegeben: @{@DATEINAME}

Bsp:

Anmerkung:

Der Platzhalter $APP$ wird zur Laufzeit durch den Installationspfad ersetzt.


CSV (Comma-separated)

Der CSV Konverter importiert CSV-Dateien.


DBase

Der DBase Konverter importiert Daten aus einer DBASE-Datenbank. Für diesen Konverter stehen keine spezifischen Einstellungen zur Verfügung.


LDAP

Der LDAP Konverter importiert Daten aus einem LDAP Directory.


Magento-Shop

Der Magento-Shop Konverter steht für die Kommunikation mit Magento Commerce Online Shop zur Verfügung.

Die Schnittstelle zu Magento Commerce Online Shop benutzt ua. diesen Konverter.


MySQL Database

Der MySQL Konverter importiert Daten aus einer MySQL-Datenbank. Der Zugriff erfolgt direkt, die MySQL-Client-Libraries sind nicht erforderlich.

In den Eingabefelder Host, Benutzername, Passwort und Datenbank wird der gewünschte MySQL-Server konfiguriert.

In Tabelle kann die Daten-Tabelle ausgewählt werden.

Alternativ kann über Abfrage ein SQL-Query zur Datenabfrage definiert werden. Das SQL-Query kann optional auch in eine Datei ausgelagert werden. Der Dateiname wird dabei in folgender Form eingegeben: @{@DATEINAME}

Bsp:

Anmerkung:

Der Platzhalter $APP$ wird zur Laufzeit durch den Installationspfad ersetzt.


Direct Database Access

Der Direct Database Access Konverter bietet Zugriff auf die meisten, gängigen Datenbanken.

Über Konfiguration kann der zu verwendende Datenbank-Server konfiguriert werden.

In den Eingabefelder Host, Benutzername, Passwort und Datenbank werden die Zugriffsdaten des Servers konfiguriert.

In Tabelle kann die Daten-Tabelle ausgewählt werden.

Alternativ kann über Abfrage ein SQL-Query zur Datenabfrage definiert werden. Das SQL-Query kann optional auch in eine Datei ausgelagert werden. Der Dateiname wird dabei in folgender Form eingegeben: @{@DATEINAME}

Bsp:

Anmerkung:

Der Platzhalter $APP$ wird zur Laufzeit durch den Installationspfad ersetzt.

Unterstütze Datenbanken:

·Access

·Advantage

·ASE

·DB2

·InterBase

·MySQL

·ODBC

·Oracle

·PostgreSQL

·SQL Server

·SQLite


XSLT Transformation

Der XSLT Transformation Konverter transformiert ein beliebiges XML-Dokument mit einem XSL-Stylesheet.


Ausgabe

Im Bereich Ausgabe wird definiert, wie die konvertierten Daten (im MLXML-Format) weiter behandelt werden sollen.

Importieren | Daten normal ins Programm importieren.
Nur in Datei umleiten | Daten nur in eine externe Datei speichern aber nicht importieren.
Importieren und Kopie in Datei umleiten | Daten normal ins Programm importieren und eine Kopie der Daten in eine externe Datei speichern.
Ausgabedatei | Falls die Daten in eine externe Datei umgeleitet werden, kann hier Dateiname und Pfad auf die Ausgabedatei gesetzt werden.
Errorlogdatei | Dateiname und Pfad für externe Datei in welche allfällige Fehler beim konvertieren gespeichert werden.


MLXML/BI-Optionen

Im Bereich MLXML/BI-Optionen werden allgemeine Einstellungen zur Konfiguration sowie Optionen für die MLXML-Daten verwaltet.


Allgemein

Im Bereich Allgemein werden allgemeine Einstellungen zur Konfiguration verwaltet.

Im Eingabefeld Eingabedatei kann ein fix definierter Dateipfad hinterlegt werden. Die Eingabedatei kann über alle verfügbaren Transport-Protokollen (Festplatte, FTP, HTTP) bezogen werden. Soll die Eingabedatei vor jedem Import abgefragt werden, kann stattdessen die Option Dateiauswahl-Dialog für Eingabedatei anzeigen aktiviert werden. Um die Dateiauswahl auf einen bestimmten Dateityp zu beschränken, kann die Dateiendung der Eingabedatei im Eingabefeld Dateiendung der Eingabedatei definiert werden.


Optionen

Im Bereich Optionen können Optionen und Steuerkommandos für die spätere Verarbeitung der MLXML-Daten definiert werden.


Verarbeitung

Im Bereich Verarbeitung kann die eigentliche Import-Konfiguration vorgenommen werden.

Die Verarbeitung ist in folgende Bereich aufgeteilt:

Feldmapping | Zuweisung der Felder.
Konstanten | Konstante Werte, Makros und Skripte definieren.
Datentypen | Datentype für die Importfelder definieren.
Ersetzen | Nach Inhalt in Felder suchen und ersetzen.
Datum/Zeit Format | Format für Datum um Zeit im Textformat.
Feldaufteilung | Aufteilung der Daten in mehrere Felder.
Datenmanipulation | Daten anhand verschiedener Kriterien manipulieren/verändern.
Filter | Daten filtern.
Schlüsselfelder | Schlüsselfelder zur Suche nach bereits vorhandenen Datensätzen.
Datenverarbeitung | Einstellungen zur Verarbeitung der konvertierten Daten.
RTF/HTML Konvertierung | Einstellungen zur Konvertierung der Daten von RTF <> HTML.
Virtuelle Felder | Erstellen von virtuellen Felder.
Detaildaten | Konfiguration der Detaildaten/Unterimports.


Feldmapping

Im Bereich Feldmapping können die Felder der Quelle den Feldern des Ziels zugewiesen werden.

Über Automatisch Zuordnen versucht das Programm die Zuweisung automatisch, über die Namen der Felder, auszuführen.

Anmerkung:

Felder denen bereits ein konstanter Wert zugewiesen wurde, stehen hier nicht zur Verfügung.


Konstanten

Im Bereich Konstanten kann für Zielfelder ein konstanter Wert hinterlegt werden.

Um einen konstanten Wert für ein Feld zu definieren, muss die Option Konstante auf dem Feld aktiviert werden. Danach kann der Wert in der Spalte Wert erfasste werden. Es ist auch möglich, den Wert eines Zielfeldes oder den Wert eines virtuellen Feldes aus einem Makro als Wert zu übernehmen. Für komplexere Aufgaben können sogar Werte über ein Skript berechnet werden.

Anmerkung:

Felder denen bereits ein Zielfeld im Feldmapping zugewiesen wurde, stehen hier nicht zur Verfügung.


Makros in Konstanten

Für gewisse Aufgaben ist es manchmal erforderlich, gewisse Feldwerte in mehrere Felder zu importieren oder mehrere Werte in einem Feld zusammen zu führen. Dazu können in den konstanten Werten sogenannte Makros verwendet werden. Markos sind im Grunde Platzhalter für Werte. Makros stehen sowohl für gemappte Zielfelder wie auch für virtuellen Felder zur Verfügung. Für die Makros müssen die Feldnamen (nicht die übersetzten Feldtitel!) verwendet werden.

Um Makros zu verwenden, muss das Spezial-Kommando @{} verwendet werden. Die Zeichen @{} werden in diesem Fall nicht importiert, der Inhalt zwischen den Klammern {} wird beim importieren ausgewertet, alle Makros darin ersetzt und das Ergebnis importiert.

Methode 1: Wert eines bestimmten Feldes (in diesem Bsp. countryid) 1:1 übernehmen.

@{[countryid]}

Methode 2: Den Wert eines oder mehrerer Felder (in diesem Bsp. surname und countryid) in einem Text(wert) einbetten/ersetzen.

@{'[surname] aus dem Land [countryid]'}

Hat das Feld countryid den Wert "Schweiz" und das Feld surname den Wert "Müller" wäre das Ergebnis wie folgt:

Methode 1: Schweiz

Methode 2: Müller aus dem Land Schweiz

Anmerkung:

Der Inhalt des Spezial-Kommandos @{} wird nicht durch den Konverter sondern erst später beim Import der MLXML-Daten ausgewertet.


Werte in Skripten berechnen

Für komplexe Aufgaben ist es manchmal erforderlich, gewisse Feldwerte per Skript anhand von verschiedene Kriterien und Grundlagen zu berechnen oder auszuwählen. Dazu können in den konstanten Werten sogenannte Skripte verwendet werden. Das Skripting ist sehr umfangreich, in diesem Handbuch wird die allgemeine Programmierung von Skripten nicht weiter behandelt.

Um Skripte zu verwenden, muss das Spezial-Kommando @{} verwendet werden. Die Zeichen @{} werden in diesem Fall nicht importiert, das Skript zwischen den Klammern {} wird beim importieren ausgeführt und das Ergebnis importiert.

Beispiel um die Funktion GetNote in der Skriptdatei WebFormUtil.pas auszuführen.

@{GetNote@$APP$mlxml\scripts\WebFormUtil.pas}

Der Platzhalter $APP$ wird automatisch durch den Installationspfad des Programms ersetzt.

Das Skript in der Datei WebFormUtils.pas könnte in diesem Fall wie folgt aussehen:

[Pascal-Code]

function GetNote(const Data: TXMLDataWrapper): Variant;

begin

Result := Data.ValueByName('comment') + #13#10 +

#13#10 +

'Raumfläche: ' + Data.ValueByName('roomarea') + #13#10 +

'Baubegin: ' + Data.ValueByName('buildstart') + #13#10 +

'Bauende: ' + Data.ValueByName('buildend');

end;

Anmerkung:

Der Inhalt des Spezial-Kommandos @{} wird nicht durch den Konverter sondern erst später beim Import der MLXML-Daten ausgewertet.


Datentypen

Im Bereich Datentypen kann der Datentyp für die einzelnen Spalten eines Textformats definiert werden.

Da in Textformaten wie zB. CSV nicht definiert ist, welcher Typ von Daten (Datum, Zeit, Zahl, Text) sich in einer Spalte befindet, kann hier jeder Spalte ein Datentyp zugewiesen werden.


Ersetzen

Im Bereich Ersetzen können bestimme Werte in einem Feldinhalt durch andere Werte ersetzt werden.

Für jedes Importfeld kann eine Liste mit Werten hinterlegt werden. Wählen Sie das gewünschte Importfeld in welchem der Inhalt ersetzt werden soll und klicken sie auf die Schaltfläche mit dem Plus [image] (unten Links).

Es werden nicht nur ganze Wörter sondern auch Teilinhalte gesucht und ersetzt. Wenn explizit nur komplette Feldinhalte (keine Teilinhalte) gesucht und ersetzt werden müssen, kann der Suchbegriff in Suchen nach in geschweifte Klammern gesetzt werden.

Beispiel:


Datum/Zeit Format

Im Bereich Datum/Zeit Format werden die Formate zur Umwandlung von Text in Datum- Zeit- und Zahlenwerte konfiguriert.

Im Eingabefeld Zeitzone wird definiert, in welcher Zeitzone die Datum- und Zeitwerte der Importquelle vorliegen. Die restlichen Angaben sind nur bei Textimportformaten wie zB. CSV erforderlich. Mit ihnen wird definiert, in welchem Format die Daten in der Textdatei abgelegt wurden.


Feldaufteilung

Im Bereich Feldaufteilung können die Spalten (Felder) der Quelle zusätzlich anhand von bestimmten Zeichen, im Inhalt, auf mehrere Spalten aufgeteilt werden.

Über Anzahl Teilungen kann für jedes Feld bestimmt werden, in wie viele Felder (Spalten) das entsprechende Feld aufgeteilt werden soll. Der Inhalt der Felder wird an der Stelle von Separator-Zeichen aufgeteilt.

Wird z.B. das Feld Land einmal mit dem Separatorzeichen 0x20 (Leerzeichen) aufgeteilt, stehen im Feldmapping danach zwei Landes-Felder zur Verfügung: Land und Land_PART1

Hat bei einem Datensatz das Landes-Feld den Inhalt "CH Schweiz", steht im Feld Land der Wert "CH" und im Feld Land_PART1 der Wert "Schweiz".


Datenmanipulation

Im Bereich Datenmanipulation können die Werte der Felder nach bestimmten Kriterien korrigiert bzw. umgewandelt werden.


Filter

Im Bereich Filter können die Datensätze der Quelle anhand von Perl-Regular Expressions gefiltert werden.

Auf jedem Feld kann eine sogenannte RegEx hinterlegt werden. Der Datensatz wird nur importiert/exportiert wenn die RegEx auf allen Feldern positiv/wahr zutrifft. Über [...] im Editiermodus am Ende des Eingabefeldes kann der integrierte RegEx-Editor zum testen der RegEx aufgerufen werden.

Eine aktuelle Dokumentation zu Regular Expressions finden Sie auf http://perldoc.perl.org/perlre.html

Weitere Informationen:

http://de.wikipedia.org/wiki/Regulärer_Ausdruck

http://en.wikipedia.org/wiki/Regular_expression


Schlüsselfelder

Im Bereich Schlüsselfelder können Felder zur Überprüfung, ob ein Datensatz bereits vorhanden ist, definiert werden.

Wird in der Datenverarbeitung die Option Existierende Datensätze suchen/aktualisieren verwendet, können hier die gewünschten Suchfelder definiert werden. Ein Datensatz gilt dann als identisch, wenn die Werte aller Schlüsselfelder übereinstimmen.


Datenverarbeitung

Im Bereich Datenverarbeitung kann definiert werden, wie die Daten aktualisiert oder importiert werden.

Existierende Datensätze suchen

Definiert ob nach bereits vorhandenen Datensätzen gesucht werden soll. Ist diese Option nicht aktiv werden alle Datensätze importiert.

Existierende Datensätze aktualisieren

Wird Option Existierende Datensätze suchen verwendet, kann über diese Option gesteuert werden, ob bereits existierende Datensätze überschrieben werden sollen.

Datensätze mit Baumstruktur

Liegen die Daten in einer Baumstruktur vor, können diese durch Aktivierung dieser Option entsprechend verschachtelt importiert werden.

Wird diese Option aktiviert, müssen die Quelldaten über ein SQL-Query mit Parameter so selektiert werden, dass jeweils die Unterknoten eines Datensatzes selektiert/importiert werden. Der Konverter importiert/selektiert so lange Unterknoten, bis keine Knoten mehr gefunden werden.

Wird diese Option auf Daten die keine Baumstruktur repräsentieren aktiviert, kann der Konverter in eine Endlosschlaufe laufen!

Bsp:

SELECT NAME, GROUPID, PARENTGROUPID FROM TBL_GROUP

WHERE (PARENTGROUPID = :GROUPID) or (PARENTGROUPID IS NULL)

Modus

Der Modus ist nur für Detaildaten relevant:

Detaildaten | Daten werden als Detaildaten der übergeordneten Daten (Hauptdaten) importiert.
Vor Hauptdaten | Daten werden vor den übergeordneten Daten (Hauptdaten) auf der gleichen Eben (nicht als Detaildaten) importiert. Kann zB. verwendet werden um vor dem Import der Hauptdaten gewisse Stammdaten, die beim Import der Hauptdaten referenziert werden, zu importieren.
Nach Hauptdaten | Daten werden nach dem Import der übergeordneten Daten (Hauptdaten) auf der gleichen Eben (nicht als Detaildaten) importiert.

Felder zur Prüfung auf Änderung

Wenn die Optionen Existierende Datensätze suchen und Existierende Datensätze aktualisieren aktiviert sind, wird ein Datensatz normalerweise komplett überschrieben. Werden hier Felder markiert, prüft der Import zusätzlich ob eines der markierten Felder geändert hat. Der Datensatz wird dann nur bei einer Änderung überschrieben.

Felder zur Aktualisierung bei Änderung

Wird hier kein Feld markiert, werden beim aktualisieren/überschreiben eines Datensatzes alle in der Konfiguration definierten Felder in den Datensatz geschrieben/überschrieben. Sind hier Felder ausgewählt werden nur die betreffenden Felder aktualisiert.


RTF/HTML Konvertierung

Im Bereich RTF/HTML Konvertierung können Optionen, zur Konvertieren von RTF nach HTML, definiert werden.


Virtuelle Felder

Im Bereich Virtuelle Felder können zusätzliche, virtuelle Felder erstellt werden.

Den hier unter Virtuelle Zielfelder erfassten Felder können im Feldmapping die Felder aus der Datenquelle (Importfelder) zugewiesen werden. Diese virtuellen Felder werden sinngemäss nicht importiert/exportiert, können aber als Makro in den Konstanten oder in Import-Skripts verwendet werden.


Detaildaten

Im Bereich Detaildaten können beliebig viele, zusätzliche Datentabellen als Detaildaten oder normale zusätzliche Daten importiert werden.

Über die Schaltfläche mit dem Plus [image] (unten Links) können neue Unter/Detailkonfigurationen erstellt werden. Über Bearbeiten können bestehende Konfigurationen bearbeitet werden. Auf einer Detailkonfiguration stehen wie auf der Hauptkonfiguration sämtliche Konfigurationsmöglichkeiten zur Verfügung. Eine Detailkonfiguration muss den selben Konverter wie die Hauptkonfiguration verwenden, kann aber zB. beim Direct Database Access Konverter auf eine komplett andere Datenbank zugreifen. Damit könnten zB. in einer Konfiguration Daten aus verschiedenen Datenbanken und Systemen zusammen gezogen und importiert werden.


Konfiguration Speichern

Nach Abschluss der Konfiguration kann diese in einer Datei als vordefinierte Einstellung gespeichert werden. Klicken Sie dazu rechts Unten auf Weiter.

Anschliessend kann die Konfiguration mit Konfiguration in Datei speichern gespeichert werden.

Wählen Sie den gewünschten Speicherort um die Datei zu speichern.

Mit Speichern unter wird der anschliessende Speichern-Dialog mit dem Datenverzeichnis zum Speichern der vordefinierte Einstellungen geöffnet.

Mit Speichern unter Programmverzeichnis wird der anschliessende Speichern-Dialog mit dem Programmverzeichnis zum Speichern der vordefinierte Einstellungen geöffnet. In diesem Verzeichnis haben üblicherweise nur Administratoren Schreibrechte.

Anmerkung:

Sollten Sie eine Zugriffsfehlermeldung beim Speichern erhalten, fehlen ihnen die benötigten Schreibrechte im Verzeichnis. Verwenden Sie in diesem Fall Speichern unter um die Konfiguration im Datenverzeichnis zu speichern.


MLXML-Datei importieren

1. Klicken Sie im Menübereich Import & Export im Bereich auf Import => MLXML Datei.

2. Suchen Sie über [image] die Datei die Sie importieren möchten.

Datei: Wenn Sie die Datei lokal auf Ihrem Computer gespeichert haben, klicken Sie auf die

Schaltfläche [...] am Ende des Eingabefeldes MLXML-Datei und wählen Sie die gewünschte

Datei.

URL: Wenn Sie eine URL (z.B. http://mirror01.delight.ch/banks/german_blz_20060605.mlxml)

importieren möchten, geben Sie den URL im Eingabefeld MLXML-Datei ein.

Klicken Sie anschliessend auf Start um den Import zu starten.

3. Falls Sie einen URL eingegeben haben wird die Datei nun heruntergeladen.

4. Wenn Sie die Datei zum ersten Mal importieren, können Sie den Update-Modus deaktivieren um den Import zu beschleunigen.

Um den Update-Modus zu deaktivieren, entfernen Sie die Markierung bei Bereits vorhandene Datensätze suchen.

Klicken Sie anschliessend auf Weiter um den Import zu starten.

Hinweis:

Liegen sehr viele Daten vor, kann der Import einige Zeit in Anspruch nehmen. (z.B. beim Import von über 39'000 französischen Postleitzahlen).

Sollten Sie den Import zwischendurch abbrechen (nicht empfohlen!) müssen Sie bei einem zweiten Import den Update-Modus für den Import verwenden!

siehe auch:

Transport

Konverter


MLXML-Datei exportieren

1. Klicken Sie im Menübereich Import & Export im Bereich auf Export => MLXML-Exportieren.

2. Wählen Sie über [image] die Zieldatei in die Sie exportieren möchten und markieren Sie in Daten für den Export die gewünschten Daten die exportiert werden sollen.


Transport

Der MLXML-Import und Export unterstützt verschiedene Transport-Protokolle um die Daten zu übertragen. So ist es z.B. möglich, Daten direkt ab einem FTP-Server oder Web-Server (HTTP) zu importieren. Analog können die Daten beim Export entsprechend auch auf eine FTP-Server hochgeladen werden.

Protokoll | Beschreibung | Download | Upload
Lokale Datei und UNC | Import/Export einer Datei die auf der lokalen Festplatte oder auf einer Netzwerkfreigabe (UNC) liegt. | Ja | Ja
HTTP | Import direkt ab einem Internet-Link. Beispiel: http://www.meineseite.ch/Adressen.mlxml | Ja | Nein
FTP | Import/Export ab einem FTP-Server. Beispiel: ftp://benutzer:passwort@ftp.meineseite.ch/Adressen.mlxml | Ja | Ja


Konverter

Mit dem entsprechenden Konverter kann praktische jede Datenquelle in ein MLXML-Dokument konvertiert und importiert werden.

Konverter | Beschreibung | Parameter | Kurzbezeichnung
ADODB Converter | Kann ADO/ODBC Datenbanken nach MLXML konvertieren. | INI-Datei mit der Konfiguration für den Konverter. | ado-c
CSV Converter | Kann CSV (Komma-Getrennte Textdateien) nach MLXML konvertieren. | INI-Datei mit der Konfiguration für den Konverter. | csv-c
XSLT Transformation | Kann ein beliebiges XML-Dokument anhand eines XSL-Stylesheets nach MLXML transformieren. | XSL-Stylesheet-Datei für die Transformierung. | xslt-c
DBase Converter | Kann DBASE-Datenbanken nach MLXML konvertieren. | INI-Datei mit der Konfiguration für den Konverter. | dbase-c
LDAP Converter | Kann LDAP Directories nach MLXML konvertieren. | INI-Datei mit der Konfiguration für den Konverter. | ldap-c
Magento-Shop Converter | Import-Konverter für die Kommunikation mit Magento Commerce Online Shop. | INI-Datei mit der Konfiguration für den Konverter. | magento-c
MySQL Database Converter | Kann native auf MySQL Datenbanken zugreifen und nach MLXML konvertieren. | INI-Datei mit der Konfiguration für den Konverter. | mysql-c
Direct Database Access Converter | Native-Zugriff auf verschiedene Datenbanken zur Konvertierung nach MLXML: ·Access ·Advantage ·ASE ·DB2 ·InterBase ·MySQL ·ODBC ·Oracle ·PostgreSQL ·SQL Server ·SQLite | INI-Datei mit der Konfiguration für den Konverter. | directdb-c


Konfigurationsdatei

Einige Konverter benötigen eine Konfigurationsdatei mit Einstellungen. In der Konfiguration werden Feldzuweisungen, MLXML-Einstellungen sowie individuelle Einstellungen für den jeweiligen Konverter konfiguriert. Die Konfiguration wird in einer INI-Datei gespeichert.

Dieses Kapitel beschreibt nicht den kompletten Umfang der Möglichkeiten. Zur Erstellung der Konfigurationen sollte der MLXML-Business Wizard verwendet werden.

Bereich [Settings]

Name | Beispiel-Wert | Beschreibung | Konverter
SkipRows | 0 | Anzahl der Zeilen die zu Beginn des Dokumentes übersprungen werden sollen | csv-c
UseHeader | 1 | Muss auf 1 gesetzt werden, wenn die CSV-Datei Spaltenüberschriften in der 1. Zeile enthält | csv-c
Separator | ; | Zeichen das als Spalten-Trenner verwendet wird | csv-c
QuoteChar | " | Zeichen das den Inhalt der Spalten abgrenzt | csv-c
DateFormat | dd-mm-yyyy | Format der Datumswerte | csv-c
TimeFormat | hh:mm:ss | Format der Zeitwerte | csv-c
DateSeparator | . | Trennzeichen für Datumswerte | csv-c
TimeSeparator | : | Trennzeichen für Zeitwerte | csv-c
DecimalSeparator | . | Dezimal-Trennzeichen für Kommazahlen | csv-c
ThousandSeparator | ' | 1000er-Trennzeichen für Zahlenwerte | csv-c
ConnectionString |  | ADO-Verbindungszeichenfolge für den Verbindungsaufbau zur Datenbank | ado-c
TableName | addresses | Name der SQL-Tabelle*, alternativ können die Daten auch per SQL-Query selektiert werden | ado-c
Query | SELECT [id], [name], [surname], [adress], [zip], [city], [phone1] FROM [addresses] | SQL-Query*, alternativ kann auch die komplette Tabelle über TableName definiert werden | ado-c

* Es sollte jeweils TableName oder Query verwendet werden, nicht aber beides gleichzeitig.

Bereich [MLXML]

Name | Beispiel-Wert | Beschreibung | Konverter
Application | Datenbank XY | Name der Anwendung (Freitext) | csv-c, ado-c
PartName | crm_address | MLXML-Part, bezeichnet die Art der Daten. Für Adressen muss crm_address angegeben werden. | csv-c, ado-c
ItemName |  | MLXML-ItemPart, bezeichnet die einzelnen Daten. Wird kein Wert angegeben, wird der Wert automatisch bestimmt | csv-c, ado-c
PreProcessor |  | Nur zur internen Verwendung bestimmt, muss nicht definiert werden. |
FileExtension |  | Nur zur internen Verwendung bestimmt, muss nicht definiert werden. |
UserCaption |  | Nur zur internen Verwendung bestimmt, muss nicht definiert werden. |
MXCIdentifier |  | Nur zur internen Verwendung bestimmt, muss nicht definiert werden. |
Parameter |  | Nur zur internen Verwendung bestimmt, muss nicht definiert werden. |

Bereich [MLXML Options]

Die verfügbaren Optionen unter [MLXML-Options] hängen von der Anwendung und der zu importierenden Datenart (z.B. Adressen, Postleitzahlen, Banken u.s.w.) ab.

Name | Beispiel-Wert | Beschreibung | Datenart/PartName
journalnotemode | 2 | 0: Journal-Eintrag für neue Adressen hinzufügen 1: Journal-Eintrag für neue und aktualisierte Adressen hinzufügen 2: Keinen Journal-Eintrag erstellen Diese Option ist nur für delight crm verfügbar. | crm_address
updatecheck | 1 | Definiert ob beim Importieren auf bereits importierte Daten geprüft werden soll. 1: Prüfen 2: Nicht prüfen | (alle)
modifyexisting | 1 | Definiert ob bereits vorhanden Datensätze aktualisiert werden sollen. Ist nur relevant bei modifyexisting=1. 0: Bereits importierte Datensätze ignorieren. 1: Bereits importierte Datensätze aktualisieren. | (alle)
attachmentpath |  | Pfad für den Import von externen Dateien auf einen Journal-Eintrag. Diese Option ist nur für delight crm verfügbar. | crm_address

Bereich [Mapping]

In diesem Bereich werden die Felder der Datenquelle den Feldern der Anwendung zugeordnet. Auf der linken Seite (Name) steht jeweils der Feldname aus der Datenquelle, auf der rechten Seite (Wert) der Feldname der Anwendung.

Beispiel:

[Mapping]

Name=name

Vorname=surname

Firma=companyname

Strasse=adress

PLZ=zip

Ort=city

Tel_P=phone1

autonummer=crm_address_ident

Bereich [ConstantValues]

In diesem Bereich können für gewisse Felder konstante Werte definiert werden. Auf der linken Seite (Name) steht der Feldname der Anwendung, auf der rechten Seite (Wert) der konstante Wert.

Beispiel:

[ConstantValues]

acomment=ADO MLXML Import Test

crm_address_source=Demo.mdb

Bereich [DataFormats]

Dieser Bereich wird nur für den csv-c Konverter benötigt. Er definiert, in welchem Format die einzelnen Spalten in der CSV-Datei gespeichert sind. Es werden die Feldnamen nach dem Mapping verwendet (Feldname der Anwendung). Auf der linken Seite (Name) steht der Feldname, auf der rechten Seite (Wert) das Format.

Der Konverter ado-c kann die Datentypen der einzelnen Spalten automatisch bestimmen.

Beispiel:

[DataFormats]

crm_journal_note=Blob

level=Integer

amount=Float

birthday=Date

creadate=DateTime

Bereiche [Replacements_XY]

Um Zeichen oder ganze Zeichenfolgen vor dem Importieren durch Andere zu ersetzen, kann für ein Feld, in dem die Werte ersetzte werden sollen, ein eigener Replacement-Bereich erstellt werden. Auf der linken Seite (Name) steht der Wert der ersetzte werden soll, auf der rechten Seite der neuen Wert.

Beispiel:

[Replacements_countryid]

CH=Schweiz

FR=Frankreich

IT=Italien

Bereich [DeleteSources]

In diesem Bereich können Daten mit einem bestimmten Wert im Quellen-Feld vor dem Import gelöscht werden. Dieser Bereich kann verwendet werden, wenn mit jedem Importlauf andere Daten importiert werden müssen und die vorgängig importierten Daten nicht mehr benötigt werden. Auf der linken Seite (Name) werden die einzelnen Einträge nummeriert, auf der rechten Seite (Wert) steht das Quellen-Feld mit dem jeweiligen Wert.

Beispiel:

[DeleteSources]

1=crm_address_source=Demo.mdb

Bereich [SyncSources]

In diesem Bereich können alle Daten die nicht synchronisiert wurden (mit einem bestimmten Wert im Quellen-Feld) nach dem Import gelöscht werden. Dieser Bereich kann verwendet werden, wenn mit jedem Importlauf Daten die in der Quelle nicht mehr vornanden sind gelöscht werden müssen. Auf der linken Seite (Name) werden die einzelnen Einträge nummeriert, auf der rechten Seite (Wert) steht das Quellen-Feld mit dem jeweiligen Wert. Gelöscht werden alle Datensätze mit dem Wert des Quellen-Feldes die beim aktuellen Importlauf nicht aktualisiert oder neu importiert wurden. Als Prüfschlüssel wird wie beim Update das Schlüssel-Feld verwendet.

Beispiel:

[SyncSources]

1=crm_address_source=Demo.mdb

siehe auch:

Datenabgleich


MLXML-Format

MLXML beschreibt ein XML-Schema, das alle (durch MLXML unterstützen) Daten der Software in einem einheitlichen XML-Format notieren kann. Eine MLXML-Datei kann verschiedene Datenparts (z.B. Adressen, Journal-Einträge, Skripte, Stammdaten wie Postleitzahlenstamm oder Bankenstamm u.s.w.) in einer Datei beinhalten.

Welche Datenparts verfügbar sind, hängt vom Lieferumfang der Software bzw. vom eingesetzten Produkt ab.

Aufbau:

<?xml version="1.0" encoding="utf-8"?>

<mlxmldata application="Quelle XY" version="1">

<part_name art1="1" atrn="2">

<part_item_name value1="a" value2="" valuen="" />

<part_item_name value1="b" value2="" valuen="" />

<part_item_name value1="c" value2="" valuen="" />

<part_item_name value1="d" value2="" valuen="" />

</part_name>

</mlxmldata>

Beispiel:

<?xml version="1.0" encoding="utf-8"?>

<mlxmldata application="Quelle XY" version="1">

<crm_address count="1">

<crm_address_item crm_journal_type="" countryid="Schweiz" name="Elias" surname="Zurschmiede" adress="Unterstrasse 39" zip="9000" city="St. Gallen" crm_journal_note="Text für den Eintrag im Journal der beim Importieren erstellt wird."/>

</crm_address>

</mlxmldata>


Datenabgleich

Damit das Abgleichen von Daten (Prüfung ob ein Datensatz aus einer bestimmten Quelle bereits importiert wurde) funktioniert, muss jeder Datensatz mit einer Quelle und einem eindeutigen Schlüssel bestückt werden. Als eindeutigen Schlüssel bietet sich der Primär-Key aus der Tabelle der Quell-Datenbank an.

Da es theoretisch möglich ist, in einer MLXML-Datei Daten aus verschiedenen Quellen zu speichern, muss Quelle und Schlüssel auf jedem Eintrag definiert werden. Die Name dieser beiden Felder in MLXML hängen von der Datenart, die man importieren möchte, ab.

Auszug der verfügbaren MLXML-Parts:

PartName | PartItemName | Quellen-Feld | Schlüssel-Feld | Bemerkungen
crm_address | crm_address_item | crm_address_source | crm_address_ident |
crm_journal | crm_journal_item | crm_address_source | crm_journal_ident | Nur delight crm
crm_address | crm_contactperson | crm_address_source | crm_contactperson_ident |
address_zip | zip | address_zip_source | address_zip_ident |
address_zip | canton | address_zip_source | address_zip_ident |
address_bank | bank | address_bank_source | address_bank_ident |
script | script_item | script_source | script_ident |

Anmerkung: Diese Liste ist nicht vollständig, was genau verfügbar ist hängt vom eingesetzten Produkt ab. Alle verfügbaren Parts sind im MLXML-Business Wizard ersichtlich.

Beispiel für ado-c und csv-c Konverter:

Diese Beispiel zeigt einen Auszug aus der Konfigurationsdatei für die Konverter ado-c und csv-c. Mit dieser Konfiguration werden Adressen (PartName=crm_address) aus einer Datei oder Datenbank (je nach Konverter) importiert.

Im Bereich [Mapping] wird die Spalte mit der Datensatznummer (auto_nummer), aus der Tabelle die Importiert werden soll, dem entsprechenden Schlüssel-Feld (crm_address_ident) zugewiesen. Im Bereich [ConstantValues] wird dem Quellen-Feld ein fixer Wert (Demo.mdb) zugewiesen.

[MLXML]

Application=Demo.mdb

PartName=crm_address

[Mapping]

Name=name

Vorname=surname

...

...

auto_nummer=crm_address_ident

[ConstantValues]

crm_address_source=Demo.mdb

[SyncSources]

1=crm_address_source=Demo.mdb

Anmerkung:

Der Abschnitt SyncSources ist optional und bewirkt, dass nach dem Import alle Datensätze, die nicht mehr in der Quelle vorhanden sind, gelöscht werden. Damit können Sie sicherstellen das immer aktuelle Datensätze vorhanden sind - auch wenn in der Quelle Datensätze gelöscht werden.

Der Wert für crm_address_ident muss nicht zwingend eine Nummer sein. Zeichenfolgen (z.B. wenn als Primär-Schlüssel eine GUID verwendet wird) sind ebenfalls erlaubt.


BI Connector

Der Business Integration Connector stellt eine moderne JSON REST-API sowie einen legacy SOAP-Webservice, für den Zugriff von externen Programmen, zur Verfügung.

In der Netzwerk-Version des Produktes enthält jeder Client einen separaten, lokalen Connector. Damit ist es möglich, externe Anwendungen direkt mit dem jeweiligen Client-Programm zu verbinden. Ein Anwendungsbeispiel wäre die Archivierung von E-Mail aus einem externen E-Mailprogramm.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => BI Connector aufgerufen.

In der Business Integration Connector Konfiguration kann der TCP/IP Port für die REST-API sowie den legacy SOAP-Server konfiguriert werden.


Lokaler Benutzer

Im Reiter Lokaler Benutzer kann der TCP/IP Port für den aktuellen Benutzer definiert werden. Diese Einstellung wird Benutzer- und Computerabhängig gespeichert. In der Netzwerk-Version kann der Port alternativ auch direkt in der Benutzerverwaltung auf dem jeweiligen Benutzer definiert werden.

Wenn Sie mehrere delight Programme parallel auf dem selben Computer (oder auf einem Terminal-Server) betreiben, muss in jedem Programm ein individueller Port definiert werden. Über diesen Port können die externen Programme (zB. Add-Ins in externen E-Mailprogrammen) auf das delight Programm zugreifen.

Wir bei Port der Wert 0 eingetragen, wird die Schnittstelle deaktiviert.


SSL Zertifikat aktivieren

Dieses Kapitel richtet sich an Systemtechniker und Experten

Für die lokale Benutzer REST-API muss auch im produktiven Betrieb nicht unbedingt ein SSL-Zertifikat aufgeschaltet werden. In der Regel wird der Benutzer REST API Service "nur" von localhost verwendet.

Bei Bedarf können auch selbst signierte Zertifikate oder kostenlose Zertifikate von Let's Encrypt aufgeschaltet werden.

HTTPS wird nur im sogenannten HTTP.sys Kernel-Modus unterstützt. Bei Microsoft's HTTP.sys können Zertifikate über die Befehlszeile "netsh http add sslcert" installiert werden. Das Zertifikat muss dazu im "Computer lokalen" Windows Zertifikatsspeicher installiert sein. Um den Prozess etwas zu vereinfachen, kann ein im Zertifikatsspeicher installiertes Zertifikat in delight per Klick ausgewählt und aktiviert werden.

Zertifikat per Klick installieren

Für diese Installation werden Administratorrechte benötigt.

1.Das gewünschte Zertifikat muss im Windows Zertifikatsspeicher installiert sein und Sie müssen im Besitz des PrivateKey's sein.

2.Starten Sie die ClientApp (ML2Client.exe) auf dem Computer des Benutzers.

3.Öffnen Sie Konfiguration => BI Connector > Lokaler Benutzer

4.Konfigurieren Sie zuerst den REST TCP/IP Port. Das müssen Sie unbedingt VOR der Aktivierung des Zertifikats tun, da bei HTTP.sys ein Zertifikat immer auf einen bestimmten TCP/IP Port installiert wird.
Wenn Sie den Port ändern, müssen Sie das SSL-Zertifikat erneut aktivieren.

5.Setzen Sie den Hacken bei SSL verwenden

6.Klicken Sie auf Lokales SSL-Zertifikate für REST-API konfigurieren

Wenn eines oder mehrere verwendbare Zertifikat installiert sind, kommt eine Auswahl. Wählen Sie das gewünscht Zertifikat und bestätigen Sie mit OK.

7.Nach dem Klicken wird eine zweite Instanz der Anwendung im Konfigurationsmodus gestartet. Allenfalls kommt eine Aufforderung der Windows-Elevation die Sie bestätigen müssen.


Server

Dieses Kapitel richtet sich an Systemtechniker und Experten

Im Reiter Server befinden sich die zentralen Server-Einstellungen zur REST-API sowie zur legacy SOAP-Schnittstelle.

Die hier definierten TCP/IP Ports stehen im zentralen delight Windows-Dienst zur Verfügung.

Der REST-API Port wird z. B. für delight App & Portal benötigt. Im produktiven Einsatz wird dringend empfohlen, die SSL-Verschlüsselung zu verwenden.

Der legacy SOAP-Port wird nur in Ausnahmefällen benötigt.

Wir bei Port der Wert 0 eingetragen, wird die Schnittstelle deaktiviert.

Benutzername und Passwort
Zugangsdaten für den Super-Admin Zugang. Dieses Angaben sollten Sie in produktiven Umgebungen leer lassen (=deaktiviert). Verwenden Sie stattdessen das Menü BI-Konten.

Wichtig:

Diese Einstellung sollte nur für Administratoren sichtbar sein.


Öffentliche REST API

Dieses Kapitel richtet sich an Systemtechniker und Experten

In vielen Fällen, z. B. auch für den Betrieb der delight App oder des delight Kunden-Portals, wird eine öffentliche, extern im Internet verfügbare REST-API benötigt. Die Server REST-API von delight ist für diesen Zweck ausgelegt.

Beachten Sie dazu bitte folgenden Punkte zum Thema Datenschutz und Sicherheit:

·Alle Benutzerkonten müssen mit einem starken Passwort geschützt sein. Dies gilt insbesondere auch für die normalen Benutzerkonten der Mitarbeiter.

·Prüfen Sie auch allfällige "admin" Benutzer. Wir stellen immer wieder fest, dass das Standard-Passwort nicht geändert wurde oder gar leer ist.

·Die REST-API muss unbedingt mit einer SSL-Verschlüsselung konfiguriert werden.

·Sollten Sie API-User mit der Rolle "Systembenutzer" benötigen, schützen Sie diese ebenfalls mit sehr starken Passwörtern und definieren Sie die Erlaubten API Methoden.

·Deaktivieren Sie den Super-Admin Zugang.

·Schränken Sie den Kreis der Mitarbeiter, welche externe Kundenzugriffe bearbeiten können, auf eine Minimum ein.

Überlegungen und Empfehlungen zur Installation:

·Verwenden Sie für die API einen hohen TCP/IP Port. z. B. unseren Standard-Port Vorschlag 9090. i. d. R. ist der HTTP/SSL-Port 443 bereits durch eine andere Anwendung besetzt.

·Verwenden Sie ein offizielles, verifizierbares SSL-Zertifikat. Keine self-signed Zertifikate. Unsere Empfehlung: Verwenden Sie kostenlose Let's Encrypt Zertifikate.

·Sollten der CRM-Server-Standort keine fix IP-Adresse habe, ist auch ein DynDNS möglich. Wir würden in diesem Fall neben dem DynDNS-Eintrag noch einen weiteren DNS-Eintrag auf Ihrer eigenen Domäne empfehlen.
Bsp. Wenn Ihre Website www.mycompany.ch wäre und der DynDNS des CRM-Server Standorts "mycompany.dyndns.org" wäre, sollten Sie zusätzlich folgenden CNAME-Eintrag erstellen: delightapi.mycompany.ch typ CNAME auf mycompany.dyndns.org
Der API-Endpunkt (der z. B. in die delight App&Portal-Konfiguration übernommen werden muss) wäre in diesem Bsp. dann https://delightapi.mycompany.ch:9090

Der Vorteil dieser Lösung: Sollte der CRM-Server irgend wann einmal umziehen (z. B. in eine Cloud oder ein eigenes RZ, anderer DynDNS-Provider weil Hardware wechselt) muss nur der DNS-Eintrag delightapi.mycompany.ch angepasst werden. Eine Neukonfiguration aller externen System welche die API verwenden ist nicht erforderlich.

·Installieren Sie das SSL-Zertifikat wie hier beschrieben für HTTP.sys, verwenden Sie kein SSL offloading auf der Firewall.

·Die delight REST-API basiert auf Micosoft's Kernel HTTP.sys. Nach unseren Tests sind damit auf einfachen Servern bereits sehr hohe Durchsätze bis zu 35'000 Requests / Sekunden und mehr möglich. Der Flaschenhals liegt hier oftmals bei der Datenbank. d. h. für Optimierungen ist dort der erste Ansatzpunkt.

·Im delight App&Portal Hosting ist zusätzlich eine API-Cache Projekt integriert. Sollten Sie ausgewählte Daten öffentlich über eine API zur Verfügung stellen wollen, sollte dies über den API-Cache konfiguriert werden. Der API-Cache ist nicht Teil dieser Dokumentation und wird nur im Rahmen unseres Entwickler-Supports zur Verfügung gestellt bzw. supported.


SSL Zertifikat aktivieren

Dieses Kapitel richtet sich an Systemtechniker und Experten

Für die zentrale Server REST-API sollte im produktiven Betrieb unbedingt ein SSL-Zertifikat aufgeschaltet werden.

Externe App & Portal Anwendungen können aus Sicherheitsgründen nicht ohne SSL betrieben werden und benötigen ein offizielles SSL-Zertifikat auf der REST-API. Selbst signierte Zertifikate sind für App und Portal nicht geeignet. Kostenlose Zertifikate von Let's Encrypt funktionieren problemlos.

HTTPS wird nur im sogenannten HTTP.sys Kernel-Modus unterstützt. Bei Microsoft's HTTP.sys können Zertifikate über die Befehlszeile "netsh http add sslcert" installiert werden. Das Zertifikat muss dazu im "Computer lokalen" Windows Zertifikatsspeicher installiert sein. Um den Prozess etwas zu vereinfachen, kann ein im Zertifikatsspeicher installiertes Zertifikat in delight per Klick ausgewählt und aktiviert werden.

Zertifikat per Klick installieren

Für diese Installation werden Administratorrechte benötigt.

1.Das gewünschte Zertifikat muss im Windows Zertifikatsspeicher installiert sein und Sie müssen im Besitz des PrivateKey's sein.

2.Starten Sie die ClientApp (ML2Client.exe) direkt auf dem Server auf dem der delight Window Service installiert ist und läuft.

3.Öffnen Sie Konfiguration => BI Connector > Server

4.Konfigurieren Sie zuerst den REST TCP/IP Port. Das müssen Sie unbedingt VOR der Aktivierung des Zertifikats tun, da bei HTTP.sys ein Zertifikat immer auf einen bestimmten TCP/IP Port installiert wird.
Wenn Sie den Port ändern, müssen Sie das SSL-Zertifikat erneut aktivieren.

5.Setzen Sie den Hacken bei SSL verwenden

6.Klicken Sie auf Lokales SSL-Zertifikate für REST-API konfigurieren

Wenn eines oder mehrere verwendbare Zertifikat installiert sind, kommt eine Auswahl. Wählen Sie das gewünscht Zertifikat und bestätigen Sie mit OK.

7.Nach dem Klicken wird eine zweite Instanz der Anwendung im Konfigurationsmodus gestartet. Allenfalls kommt eine Aufforderung der Windows-Elevation die Sie bestätigen müssen.

8.Warten Sie, bis die Konfiguration durchgeführt wurden und klicken Sie anschliessend auf HTTP-Modus abfragen. Wenn darauf die Meldung kommt, dass der Server im HTTP.sys (fast) Modus arbeite, dürfte es geklappt haben.

9.Die Funktion der API kann mit einem simplen Aufruf in jedem gängigen Webbrowser geprüft werden.

Bsp: https://mydelight.mysite.ch:9090/services/system/GetVersion
(natürlich muss der DNS-Name und der Port durch die korrekten Werte Ihrer Installation angepasst werden)

Liefert dieser Aufruf ein eine Error-Response im JSON Format, funktioniert die API:
{
"errorCode":401,
"errorText":"#0 Session not found or expired!"
}


Externer Kundenzugriff

Auf den Details jeder Adresse kann das Konto für den Kundenzugriff verwaltet werden.

Grundsätzlich sollten Sie für jeden Kunden nur ein Konto erfassen. Es können aber problemlos auch mehrere erfasst werden. Alle hier erfassten Konten sind auch gesammelt in der Kontenübersicht verfügbar.


Berechtigung

Ob der Block Externer Kundenzugriff für bestimmte Benutzer verfügbar ist, kann über die Berechtigung BI Connector => Zugriff auf Adressdetails.Externer Kundenzugriff konfiguriert werden.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => BI-Konten aufgerufen.


Kontenübersicht

In der BI-Kontenübersicht werden alle Zugriffskonten der REST-API aufgelistet und verwaltet.

Rolle

Die Rolle des Kontos definiert, welche Berechtigungen und Zugriffe über die API möglich sind. Für Kundenzugriffe wird die Rolle "Kunde" verwendet. Diese Konten erhalten automatisch nur Zugriff auf die Kundendaten die unter "Person" angegeben sind. Die Rolle Systemvollzugriff erhält Vollzugriff. Entsprechend sollten Sie solche Konten nicht leichtfertig erstellen und in der Spalte "Erlaubte API Methoden" Einschränkungen auf das nötigste vornehmen.

Die Rolle "System Benutzer" kann nicht ausgewählt werden, da für normale Programm-Benutzer an dieser Stelle keine Konten erfasst werden. Normale System-Benutzer (Mitarbeiter) erhalten automatisch API-Zugriff über ihren Benutzer der normalen Benutzer-Verwaltung. Damit erhalten alle Mitarbeiter automatisch Zugriff auf die delight App.

Person

Verknüpfung auf die Person. i. d. R. Kunde der Rolle.

Erlaubte API Methoden

siehe Erlaubte API Methoden


Erlaubte API Methoden

Dieses Kapitel richtet sich an Systemtechniker und Experten

Im Feld Erlaubte API Methoden kann der Zugriff des Kontos auf bestimmte API-Methoden eingeschränkt und zusätzlich parametrisiert werden.

Wird bei der Rolle "Kunde" nicht benötigt. Bei Rolle "Systemvollzugriff" empfohlen.

Wenn dieses Feld leer ist, sind alle API-Methoden erlaubt (=Vollzugriff). Sobald Einschränkungen eingetragen werden, kann nur noch auf die eingetragenen Methoden zugegriffen werden.

Auf jeder Zeile kann eine API-Methode definiert und mit einem JSON-Wert parametrisiert werden:

die/api/methode={json-parameter}

Die genaue Funktionsweise ist nicht Teil dieser Dokumentation und wird nur im Rahmen unseres Entwickler-Supports zur Verfügung gestellt bzw. supported.

siehe auch

Publicdata-User.


Der "publicdatauser"

Dieses Kapitel richtet sich an Systemtechniker und Experten

Für gewisse externe Anwendungen wird eine öffentlicher Benutzer benötigt. Über diesen Benutzer müssen öffentlich verfügbare Daten abgefragt werden können. Da die delight REST API grundsätzlich keine Daten ohne spezifischen Benutzer liefert, muss für solche Fälle eine eigener Benutzer erstellt werden. Diesen Benutzer wird Publicdata-User genannt und sollte nur dann erstellen, wenn er auch tatsächlich benötigt wird.

Aktuell wird dieser Benutzer im delight Kunden-Portal immer dort benötigt, wo Aktionen ohne Login möglich sind. Aktuell ist dies nur im Zusammenhang mit dem delight Support-Ticketsystem der Fall.

Der sogenannte "publicdatauser" muss bei Bedarf wie folgt konfiguriert werden:

Benutzername: publicdatauser

Passwort: 1234

Erlaubte API Methoden:

database/table/QueryRecords={"SchemaName": {"grant": ["@table:ticketsystem_ticketphases"]}}

ticketsystem/PublicDataService/QueryTicketData={}

ticketsystem/PublicDataService/AddTicket={}

ticketsystem/PublicDataService/ExecuteTicketFunction={}


Verbindung

Damit externe Programme eine Verbindung herstellen können, müssen Sie im externen Programm (oder Add-In) den Verbindungs-URL eintragen. Der Verbindungs-URL wird in der Konfiguration angezeigt.

Authentifizierung:

Netzwerk-Version: Benutzername und Passwort zum verbinden sind die selben wie bei der Anmeldung am delight Programm.

Einzelbenutzer-Version: Benutzername und Passwort müssen leer sein.


WDSL

Dieses Kapitel richtet sich an Systemtechniker und Experten

Wenn Sie Anwender sind, ist das sogenannte WDSL für Sie nicht von Interesse.

Das WDSL des legacy SOAP-Webservices kann über {Verbindungs-URL}?wdsl (zB. http://localhost:8090/?wdsl) aufgerufen werden.

Wichtig: Für neue Anwendungen verwenden Sie bitte die JSON REST-API. Die SOAP API ist deprecated seit v2021.


Nummernkreise

Das Modul für Nummernkreise verwaltet die verschiedenen Nummernkreise des Programms.

Nummernkreise können z.B. Adressnummern, Auftragsnummern, Belegnummer usw. sein. Jeder Nummernkreis besitzt einen eigenen, eindeutigen Zähler. Optional kann jedem Benutzer des System einen eigenen Nummernkreis zugeordnet werden.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => Nummernkreise aufgerufen.


Nummernkreise

Alle verfügbaren Nummernkreise werde zentral verwaltet. Welche Nummernkreise verfügbar sind, hängt von der eingesetzten Programmversion ab.

Links stehen alle verfügbaren Nummernkreise zur Verfügung. Um die Einstellungen eines Nummernkreises zu bearbeiten muss dieser ausgewählt werden.

Im Eingabefeld Zusammensetzung der Nummer kann der Aufbau der Nummer durch Verwendung der rechts verfügbaren Nummern-Teile definiert werden. Die Nummer kann beliebige Zeichen und Zahlen enthalten. Der Zähler selbst kann durch ein Makro (zB. [COUNTER]) an einer beliebigen Stelle in der Nummer eingefügt werden.

Im Bereich Zähler pro Benutzer kann für jeden Benutzer ein individueller Zählerstand definiert werden. Ist für einen Benutzer kein Zähler definiert, wird der globale Zähler verwendet.


Pivot Statistik

Geben Sie hier den Text ein.


Pivot Statistiken

Im Handbuch für Pivot Statistiken wird die Funktionsweise und die Anwendung des Pivot-Statistik-Berichtgenerators beschrieben.

Über Pivot-Statistiken können sehr schnell und in einfacher Art und Weise Statistiken generiert werden. Die Pivot-Tabelle ist automatisch mit einem Diagramm gekoppelt.

Diese Handbuch geht nicht auf die grundsätzliche Frage, was eine Pivot-Tabelle ist, ein. Es wird vorausgesetzt, dass der Leser bereits Kenntnisse über das Konzept einer Pivot-Tabelle hat. Auf http://de.wikipedia.org/wiki/Pivot-Tabelle findet man einen Einstieg in das Thema.


Pivot Statistik Layout

Pivot-Statistiken werden wie andere Bericht-Vorlagen in der Vorlagenverwaltung als Layout auf einer Vorlage erstellt und bearbeitet.


Scan und Bildbearbeitung

Mit dem Bildbearbeitungs-Modul können Bilder direkt eingescannt, von einer Digitalkamera importiert oder von einer bestehenden Bilddatei geöffnet werden.

Das Bild kann bearbeitet und im Dokumenten-Modul oder als Datei abgespeichert werden.


Bild einscannen

Klicken Sie im Menü auf "Scannen von". Es erscheint ein Auswahl Fenster wo alle Twain kompatiblen Geräte aufgelistet sind. Wählen Sie das gewünschte Gerät aus. Danach wird automatisch die vom Twain Gerät mitgelieferte Software gestartet wo Sie wie gewohnt die Einstellungen tätigen können. Nach Abschluss des Vorgangs wird das Bild automatisch in die Bildbearbeitung geladen.

Klicken Sie anstatt "Scannen von" nur auf "Scannen" so wird das in den Einstellungen definierte Standard Twain Gerät gestartet.

Was ist ein Twain Gerät?

Twain ist ein Standard für das Einlesen von Bildern. Bekannte Twain Geräte sind Scanner, Webcams und Digitalkameras.


Anzeigeoptionen

Wenn ein Bild in der Bildbearbeitung geöffnet ist, kann dieses beliebig in der Grösse gezoomt werden. Ändern Sie im Zoom Eingabefeld den Wert auf die gewünschte Prozent Ansicht und das Bild wird sofort in der Grösse angepasst.

Des weiteren stehen im Menü "Anzeige" vordefinierte Anzeige Ansichten zur Verfügung:

Original Grösse: | Das Bild wird in seiner Original Grösse angezeigt.
Seiten angepasst: | Das Bild wird verkleinert damit es in der Höhe wie auch in der Breite ganz sichtbar ist.
Breite angepasst: | Das Bild wird verkleinert damit es in der Breite ganz sichtbar ist.
Höhe angepasst: | Das Bild wird verkleinert damit es in der Höhe ganz sichtbar ist.

Anmerkung:

Diese beiden Optionen verändern lediglich die Bildgrösse für die Anzeige. Wie Sie die Grösse für das Bild ändern erfahren Sie im Kapitel Grösse ändern.


Markierungsband

Mit dem Markierungsband kann auf dem geöffneten Bild eine Markierung gezeichnet werden. Diese Markierung wird beim Zuschneiden des Bildes verwendet.

Markierungsband zeichnen:

Bewegen Sie die Maus auf die gewünschte Startposition. Klicken Sie mit der linken Maustaste in das Bild. Mit gedrückter linker Maustaste bewegen Sie die Maus an die gewünschte Zielposition.

Markierungsband verschieben:

Klicken Sie mit der linken Maustaste in einen mit dem Markierungsband umschlossenen Bildbereich. Bewegen Sie mit gedrückter linker Maustaste die Maus an die gewünschte Zielposition.

Markierungsband in der Grösse ändern:

Ist der Mauszeiger auf dem Markierungsband, kann bei gedrückter linker Maustaste diesen an die gewünschte Zielposition verschoben werden.


Bild bearbeiten

In der Bildbearbeitung stehen folgende Funktionen zur Verfügung um das Bild zu ändern:

- Bild drehen

- Grösse ändern

- Zuschneiden


Bild drehen

Mit den Menu Funktionen "Links drehen" und "Rechts drehen" wird das Bild jeweils um 90° in die gewünschte Richtung gedreht.


Grösse ändern

Klicken Sie im Menu auf Grösse ändern. Es erscheint ein Fenster wo die Grösse des Bildes eingesehen und geändert werden kann. Die Werte in den Eingabefeldern sind in Pixel.

Ist die Option "Seitenverhältnis beibehalten" aktiviert, wird beim Ändern der Höhe oder Breite die jeweils andere Seite auch automatisch im Verhältnis angepasst. Ist diese Option deaktiviert, können Höhe und Breite unabhängig voneinander verändert werden.


Zuschneiden

Markieren Sie mit dem Markierungsband die gewünschte Region, die nach dem Zuschneiden erhalten bleiben soll. Anschliessend klicken Sie im Menu auf "Zuschneiden".


Einstellungen

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => Scanner aufgerufen.

In den Einstellungen kann die gewünschte Dateierweiterung angegeben werden, die verwendet werden soll, wenn das Bild in der Bildbearbeitung direkt in das Dokumente-Modul gespeichert wird.

Durch die "Standard Scanner" Auswahlliste kann ein Scanner ausgewählt werden, der automatisch gestartet wird wenn in der Bildverwaltung auf "Scannen" geklickt wird.

siehe auch:

Bild einscannen


Statistik

Im Statistik-Modul können Statistiken, basieren auf Bericht-Vorlagen, zentral ausgeführt werden.

Statistiken werden über Berichte erstellt. Am besten eignen sich dazu Pivot-Berichtgenerator, interner Designer sowie der Excel-Reportgenerator.


Statistik ausführen

Sämtliche Statistiken befinden sich im Menü unter Statistiken.

Links befindet sich der Navigationsbereich, aufgeteilt nach verschiedenen Modulen und Untergruppen. Wird auf der linken Seite eine Kategorie selektiert, werden auf der rechten Seite alle verfügbaren Statistiken dieses Bereichs angezeigt. Klicken Sie auf die gewünschte Statistik [image] um sie zu erstellen.

Je nach Art des Berichtes wird die Statistik nun aufbereitet und entsprechend dargestellt.


Konfiguration

Das Statistik-Modul besitzt keine Einstellungen.

Die Statistik-Vorlagen werden in der Backstage-Ansicht unter Konfiguration => Vorlagen aufgerufen.


Synchronisation

Mit dem Synchronisations-Modul können Adressen und Termine mit Outlook, Office 365 oder anderen Exchange-ActiveSync kompatiblen Diensten, mit SyncML kompatiblen Diensten oder direkt mit Microsoft Exchange / Outlook (MAPI) synchronisiert werden.

Synchronisationskonten können automatisch im Hintergrund synchronisieren oder manuell durch den Benutzer synchronisiert werden.


Synchronisation manuell starten

Die Synchronisation für manuelle Synchronisationskonten befindet sich im Menübereich => Import & Export => Synchronisation.

Wählen Sie das Synchronisationskonto welches Sie synchronisieren möchten.

Sie sehen hier nur Konten, die zur manuellen Synchronisation konfiguriert wurden. Konten die automatisch im Hintergrund synchronisiert werden, stehen hier nicht zur Auswahl.

Wählen Sie gegebenenfalls die gewünschten Optionen und klicken Sie anschliessend auf Weiter. Üblicherweise müssen Sie keine Optionen wählen.

Ohne Änderungskonflikt Synchronisation automatisch durchführen

Mit dieser Option wird die Synchronisation automatisch ausgeführt wenn keine Konflikte (wie z.B. Datensätze die auf beiden Seiten gleichzeitig geändert wurden) vorhanden sind.

Gerät neu initialisieren

Wählen Sie Gerät neu initialisieren wenn Sie alle Daten (auf dem Gerät, in Outlook oder der Offline-Datenbank - je nach dem was gerade synchronisiert wird) durch eine 1:1 Kopie der im delight-Programm vorhandenen Daten ersetzen möchten.

Achtung: Mit dieser Option werden alle Daten auf dem Gerät, in Outlook oder der Offline-Datenbank gelöscht!

Synchronisation neu initialisieren

Wählen Sie diese Option, wenn sie das erste mal mit dem Gerät/Outlook synchronisieren. Damit versucht die Synchronisation durch vergleichen aller Daten im Gerät/Outlook mit den Daten im delight-Programm identische Datensätze zu bestimmen.

Dieser Modus ermöglicht eine Initial-Synchronisation ohne das dass Gerät/Outlook gelöscht werden muss.

Warten Sie bis alle Änderungen ermittelt wurden. Sie können während dessen mit dem Programm weiterarbeiten.

Die Synchronisation zeigt alle anstehenden Änderungen und schlägt bei Konflikten die beste Lösung vor. Sind Sie mit der vorgeschlagenen Änderung nicht einverstanden, können Sie den Änderungsmodus für jeden Datensatz separat anpassen. Klicken Sie anschliessend auf Weiter um die Änderungen auszuführen.

Anmerkung:

Bitte lesen Sie vor der 1. Synchronisation mit Outlook das Kapitel Anmerkungen zur Outlook-Synchronisation.


Vorbedingungen

Wie vor dem Einsatz neuer Software üblich sollten Sie auf jeden Fall vor der ersten Synchronisation ein BACKUP Ihrer Daten in Outlook erstellen. Es gibt dazu im Internet diverse kostenlose und kostenpflichtige Programme.


Synchronisation der Adressen

Wenn bereits Adressen im delight-Programm erfasst oder importiert wurden, muss folgendes beachtet werden:

Nach der 1. Synchronisation können im delight-Programm, mit der Dubletten-Prüfung, allenfalls doppelt vorhandene Adressen bereinigt werden (die Synchronisation versucht während dem Synchronisieren anhand der definierten Schlüsselfelder Dubletten zu vermeiden). Synchronisiert man danach erneut mit Outlook, werden die durch die Dubletten-Prüfung gelöschten Adressen auch in Outlook entfernt. Dies kann zur Folge haben, dass der "originale" Kontakte in Outlook gelöscht und der (aus Sicht von Outlook) doppelte Kontakt beibehalten wird.

Dies kann folgende Folgen in Outlook haben:

·Auf diesen "neuen" Kontakten sind "nur" noch die Daten erfasst, die auch tatsächlich mit dem delight-Programm synchronisiert wurden (Menü => Konfiguration => Adressverwaltung > Externe Feldeinstellungen oder direkt in der Konfiguration des jeweiligen Synchronisationskontos).

·Ist ein solcher Kontakt in Outlook auf ein anderes Objekt verknüpft (z.B. Mitglied einer Verteilerliste), besteht diese Verknüpfung nach der Synchronisation nicht mehr (der "verknüpfte" original-Kontakt wurde gelöscht und durch einen neuen, "identischen" Kontakt ersetzt).


Synchronisation der Termine

Bei der 1. Synchronisation mit Outlook werden alle bestehenden Termine aus Outlook mit den bestehenden Terminen im delight-Programm verglichen um Dubletten zu vermeiden. Diese funktioniert nur, wenn es sich um exakt die selben Termine (Zeit, Dauer und Betreff) handelt. Eine nachträglich Dublettenprüfung wie bei den Kontakten ist nicht möglich.


Einstellungen

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => Synchronisation aufgerufen.


Synchronisationskonten

Auf der Linken Seite befinden sich alle Synchronisationskonten. Auf der rechten Seite werden die verfügbaren Einstellungen zum ausgewählten Konto angezeigt. Je nach Art des Kontos (Exchange ActiveSync, SyncML u. s. w.) stehen unterschiedliche Einstellungen zur Verfügung.


Synchronisationskonto erstellen

Über Konto hinzufügen kann ein neues Synchronisationskonto erstellt werden.

Empfehlung:

Verwenden Sie wenn möglich Exchange ActiveSync. Die Synchronisation über MAPI ist veraltet und nur noch aus Kompatibilitätsgründen vorhanden. Mit Exchange ActiveSync werden keine lokalen Outlook-Profile (MAPI) benötigt und die Synchronisation kann im Hintergrund ausgeführt werden.

Anmerkung zu SyncML:

Die Synchronisation mit SyncML sollte nur in Ausnahmefällen verwendet werden. Das "Problem" bei SyncML ist, dass der Standard sehr "offen" ist und die verschiedenen Hersteller z. T. sehr exotische Umsetzungen verwenden. Dies kann in der Praxis mit SyncML immer wieder zu Problemen führen. Dazu kommt, dass sich namhafte Hersteller langsam vom SyncML-Standard verabschieden und der Standard wohl über kurz oder lang verschwinden wird. delight bietet die SyncML-Synchronisation deshalb "so wie sie ist" an, kann aber keine Gewähr für die Funktion mit einem bestimmten Fremdanbieter-Produkt übernehmen.


Verbindung

Im Reiter k des Synchronisationskontos werden die Verbindungsdaten zum Server konfiguriert. Je nach Art des Kontos sind hier unterschiedliche Angaben erforderlich.


Inhalte

Im Reiter Inhalte wird definiert, welche Daten mit diesem Synchronisationskonto synchronisiert werden sollen. Damit Inhalte vom Server abgerufen und konfiguriert werden können, müssen zuerst im Reiter Verbindung die Verbindungsdaten zum Server korrekt konfiguriert sein.

In der linken Spalte Lokales Objekt wird das Ziel in delight ausgewählt. In der rechten Spalte Externes Objekt stehen die Inhalte des Server (siehe Reiter Verbindung) zur Verfügung. In der Liste muss jedes lokale Objekt einem externen Objekt zugeordnet werden.

Im Beispiel Oben wird der Ordner "MeinKalender" (das ist ein Terminkalender auf dem im Reiter Verbindung konfigurierten Server) dem Terminkalender (des in Benutzerkontext angegebenen Benutzers) in delight zugeordnet.


Inhalt einfügen

Nach dem Erstellen eines neuen Synchronisationskontos sind noch keine Inhalte konfiguriert. Mit klick auf Objekt hinzufügen kann ein neuer Inhalt eingefügt werden.


Benutzerkontext

Bei der Synchronisation im Hintergrund wird über den Benutzerkontext bestimmt, welchem delight-Benutzer das Synchronisationskonto zugeordnet werden soll. Dies ist wichtig, damit delight z. B. weiss, welchen delight-Terminkalender oder welche Adressen (z. B. wenn Benutzerrechte auf Daten konfiguriert sind), es mit dem Konto synchronisieren muss.

Der Benutzerkontext muss dementsprechend, sinngemäss mit den Angaben unter Verbindung übereinstimmen.


Daten für Synchronisation filtern

Die delight-Daten (Adressen, Termin...) können für die Synchronisation gefiltert werden. Damit kann eingestellt werden, dass nur spezifische Daten die gewissen Kriterien entsprechen, für die Synchronisation verwendet werden.

Anmerkung:

Ein Handbuch zum erstellen von Filtern finden Sie im Kapitel Erweiterte Suche im Allgemeinen Handbuch.


Termine für filtern

Bei der Synchronisation von Terminen sollten alte Termin von der Synchronisation ausgeschlossen werden. Andernfalls werden mit der Zeit unnötig viele Termin synchronisiert.

Sinnvolle und übliche Werte sind Termine älter als 15 - 30 Tage auszuschliessen.


Automatische Synchronisation

Die Synchronisation der einzelnen Synchronisationskonten kann automatisch im Hintergrund ausgeführt werden. Wählen Sie dazu im Reiter Einstellungen unter Modus einer der beiden Option Automatisch im Hintergrund des Benutzers oder Automatisch im Hintergrund auf Server

.


Automatisch im Hintergrund des Benutzers

Diese Option aktiviert die automatische Synchronisation des Synchronisationskontos. In diesem Modus wird die Synchronisation nur dann ausgeführt, wenn der Benutzer des Kontos das delight Programm gestartet und sich angemeldet hat. Die Synchronisation läuft in diesem Fall im Client-Programm des Benutzers. Dies kann z. B. erforderlich sein, wenn mit dem lokalen Outlook/MAPI-Konto synchronisiert werden muss.

Anmerkung:

Wenn immer möglich sollte die Variante Automatisch im Hintergrund auf Server verwendet werden.


Automatisch im Hintergrund auf Server

Diese Option aktiviert die automatische Synchronisation des Synchronisationskontos. In diesem Modus wird die Synchronisation im Hintergrund-Dienst von delight auf dem Server ausgeführt. Die Synchronisation läuft unabhängig davon ob ein Benutzer angemeldet ist oder nicht.

Diese Option steht nur in der Netzwerk-Version zur Verfügung und benötigt die Installation des Delight-Multi-User Windows-Dienstes auf einem zentralen Server.


Einstellungen

In den weiteren Einstellungen kann der Synchronisationstakt (Wartezeit zwischen den automatischen Synchronisationen dieses Kontos) sowie die Art und Weise der Synchronisation eingestellt werden.


Synchronisation neu initialisieren

Wenn die Synchronisation neu Initialisiert werden muss, z. B. weil der Server geändert hat, kann die Synchronisation des Kontos über mit der Funktion Synchronisation neu initialisieren zurückgesetzt werden.

Durch eine Neuinitialisierung wird die Synchronisation so zurückgesetzt, dass bei der nächsten Ausführung eine neue Initial-Synchronisation durchgeführt wird. Die Initial-Synchronisation versucht die Datensätze aus Quelle und Ziel anhand einer Dubletten-Prüfung zusammen zu führen.


Wie kann ich...

Geben Sie hier den Text ein.


Synchronisation mit Exchange-ActiveSync konfigurieren

1. Konfiguration => Synchronisation öffnen

2. Wählen Sie Konto hinzufügen => Exchange ActiveSync

3. Geben Sie im Feld Benutzername ihre E-Mailadresse und in Passwort das dazugehörige Passwort ein.

4. Klicken Sie auf "Autodiscovery ausführen".

5. Wenn ihr Hoster Autodiscover unterstützt, werden die restlichen Konfigurationseinstellungen automatisch bezogen und eingerichtet und Sie können Schritt 6 überspringen.

Anmerkung: Der Autodiscovery kann je nach Hoster/Anbieter eine gewisse Zeit dauern.

6. Wenn ihr Hoster kein Autodiscovery eingerichtet hat, erhalten Sie eine entsprechende Fehlermeldung. In diesem Fall müssen Sie den Server manuell eingeben. Fragen Sie bei Ihrem Hoster nach, welchen Servernamen Sie für die Exchange ActiveSync Synchronisation verwenden müssen. Dies ist der gleiche Server, der auch auf Mobilen Geräten für die Exchange ActiveSync Synchronisation eingegeben werden muss. Wenn der Hoster kein Autodiscovery unterstützt, wird oft der gleiche Server wie für den Postein- und Ausgangsserver (SMTP/POP3/IMAP) verwendet.

7. Klicken Sie auf "Neu Provisionieren" um erstmalig mit dem Server zu verbinden. Die meisten Server prüfen in diesem Schritt Benutzername und Passwort. Wenn die Daten nicht korrekt eingegeben wurden, erhalten Sie an dieser Stelle eine entsprechende Fehlermeldung.

8. Wechseln Sie danach auf den Reiter "Inhalt" und fügen Sie die gewünschten Synchronisationsobjekte (Adressen, Termin) hinzu.

9. Ordnen Sie dem "Lokalen Objekt" (Spalte links) ein "Externes Objekt" (Spalte rechts) zu. In "Externes Objekt" stehe alle Ordner, die der Server zur Synchronisation anbietet, zur Auswahl. Das heist im Bsp. unten werden die Adressen aus dem delight Programm (Kontakte, Spalte links) mit mit dem "Contacts" Ordner auf dem Server synchronisiert.

10. Nach dem selben Prinzup können Sie auch ein Synchronisationsobjekt für die Synchronisation der Termine hinzufügen.

11. Wenn Termine synchronisiert werden, sollte unter "Lokale Inhalte konfigurieren" ältere Termin aus der Synchronisation ausgeschlossen werden. Sinnvolle Werte sind 15-30 Tage. Die Standard-Einstellung auf vielen Geräten ist ebenfalls 2-4 Wochen.

12. Wechseln Sie nun auf die Startseite des Programms und starten Sie eine manuelle Synchronisation.

Wenn die Synchronisation erfolgreich verläuft, können Sie diese danach (optional) automatisch im Hintergrund ausführen lassen. Dazu wechseln Sie zurück in die Synchronisationseinstellungen und wählen im Reiter "Einstellungen" die gewünschte Automatik.


System Skripte

Mit sogenannten System-Skripten kann die Software um Verhalten und Funktionen erweitert werden.

Mit diesem Modul steht eine integrierte Entwicklungsumgebung zur Programmierung von System-Skripten zur Verfügung.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => System Skripte aufgerufen.

Damit ein System-Skript ausgeführt wird, muss der Hacken in der Spalte Aktiv gesetzte sein. Über den Kontext wird bestimmt, wann das Skript ausgeführt wird.


System Skript installieren

System Skripte können wie fast jede Ressource über den MLXML-Import importiert werden.

siehe auch:

Business Integration MLXML-Datei importieren


Taskplaner

Mit dem Taskplaner-Modul können wiederkehrende Aufgaben und Prozesse geplant und automatisch im Hintergrund ausgeführt werden.


Konfiguration

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => Taskplaner aufgerufen.


Taskliste

In der Taskliste können alle geplanten Tasks verwaltet werden. Ein Task führt eine geplante Aktion regelmässig zum gewünschten Zeitpunkt aus.

In der Liste Geplante Tasks im oberen Bereich werden alle Tasks, aller Benutzer aufgeführt. Für jeden Task kann definiert werden, ober er nur auf einem bestimmen Benutzer, für alle Benutzer oder zentral ausgeführt werden soll.

Status

Aktiviert oder deaktiviert den Task. Der Task wird automatisch ausgeführt wenn er auf Status Aktiv ist.

Beschreibung

Beschreibung des Tasks.

Ausführung am

Datum und Zeit des nächsten Ausführungstermins.

Ausführen auf

Definiert wo der Task ausgeführt wird.

Client - Führt den Task im Client-Programm aus wenn der in Ausführen für eingetragene Benutzer angemeldet ist.

Client alle Benutzer - Führt den Task im Client-Programm bei jedem angemeldeten Benutzer aus.

Server - Führt den Task unabhängig von Benutzern auf dem zentralen Server aus. Diese Option sollte nur gewählt werden, wenn der zentrale Server installiert/verwendet wird.

Aktion

Aktion die ausgeführt werden soll.

Queue

Definiert die Priorität und Warteschlange zur Ausführung des Tasks. Jede Warteschlange läuft unabhängig. Üblicherweise sollte hier Hintergrundaufgaben mit normaler Priorität verwendet werden.


Telefonbuch-CD

Mit dem Telefonbuch-CD Erweiterungs-Modul können Adressen von der entsprechenden Telefonbuch-CD (z.B. TwixTel) importiert oder aktualisiert werden. Die Erweiterung integriert sich automatisch in die Adressverwaltung und steht beim Erfassen einer neuen Adresse zur Verfügung.

Unterstütze Telefonbuch-CD's:

TwixTel

siehe auch:

Adresse importieren

Einstellungen


Adresse importieren

Wenn Sie eine neue Adresse hinzufügen, können Sie die Daten direkt auf der entsprechenden Telefonbuch-CD suchen und importieren.

Klicken Sie dazu auf das Symbol der Telefonbuch-CD.

Geben Sie ihre Suchkriterien ein und klicken Sie auf Suchen.

In der Liste im unteren Bereich werden alle gefundenen Adressen angezeigt. Die gewünschte Adresse kann nun mit

einem Doppel-Klick auf den entsprechenden Eintrag in der Liste importiert werden.


Adresse aktualisieren

Das aktualisieren einer Adresse funktioniert wie das Importieren einer Adresse.

Klicken Sie in den Details der gewünschten Adresse auf das Symbol der Telefonbuch-CD.


Einstellungen

In der Konfiguration muss die gewünschte Telefonbuch-CD konfiguriert werden.

Die Einstellungen werden in der Backstage-Ansicht unter Konfiguration => Telefonbuch CD aufgerufen.

Zur Zeit wird nur TwixTel unterstützt. Um dieses zu nutzen, müssen Sie den Laufwerksbuchstaben des CD-Laufwerks, in dem sich die TwixTel-CD befindet, eingeben.


crm email reply Add-Ons

Mit delight crm email reply können Sie E-Mails direkt aus Outlook oder Thunderbird in ihrem delight Programm beantworten und/oder archivieren.

Bei jeder Aktion wird ein Journaleintrag erstellt und das E-Mail als Dokument in der Software archiviert. delight crm email reply ist mit Outlook 2003 oder neuer (32-Bit und 64-Bit) sowie Mozilla Thunderbird Version 3.x oder neuer (32-Bit) kompatibel.

Für jede Thunderbird Haupt-Version steht eine eigene Version des Add-ons zur Verfügung. Für Outlook steht ein Installations-Program für alle Outlook-Versionen zur Verfügung.


Outlook

1. Schliessen Sie Outlook

2. Laden Sie das aktuellste, passende Installationsprogramm (delightOutlookIntegrationSetup.exe) auf Ihren Computer und starten Sie es.

3. Klicken Sie jeweils auf Weiter und wählen Sie hier aus, welche Version von Outlook Sie auf Ihrem Computer installiert haben.

Die Bit-Version des AddIns muss mit der Bit-Version der installierten Outlook-Version identisch sein!

4. Klicken Sie immer auf Weiter um die Installations ab zu schliessen.

5. Starten Sie Outlook und Konfigurieren Sie das Addin.


Thunderbird

1. Laden Sie die neuste, passende Version des Add-ons auf Ihren Computer (delightcrmemailreplyX_YY.xpi). Merken Sie sich den Speicherort.

2. Öffnen Sie Thunderbird und klicken Sie im Menü auf Extras => Add-ons.

3. Klicke Sie auf den Button [image] und wählen Sie Add-on aus Datei installieren.

4. Wählen Sie die unter Schritt 1 gespeicherte .xpi Datei und klicken Sie auf Öffnen.

5. Starten Sie Thunderbird neu und konfigurieren Sie das Add-on.


Schnittstelle im delight-Programm

Damit das Add-in mit Ihrem delight-Programm kommunizieren kann, muss die sogenannte SOAP-Business-Schnittstelle konfiguriert und aktiviert sein.


Outlook

1. Starten Sie Outlook

2. Öffnen Sie links oben DATEI

3. Klicken Sie auf links auf Optionen

4. Klicken Sie links auf Add-Ins

5. Klicken Sie auf Add-In-Optionen

6. Wechseln Sie auf den Reiter delight Outlook Integration und konfigurieren Sie die erforderlichen Einstellungen.

Ihr persönlicher BI-Connector-URL wird in der Konfiguration in Ihrem delight-Programm angezeigt und kann von dort per Copy&Past kopiert werden. Benutzername und Password sind identisch mit den Anmeldeinformationen zur Anmeldung am delight-Programm. Weitere Informationen dazu finden Sie im Kapitel SOAP Konnektor Verbindung.


Thunderbird

1. Öffnen Sie Thunderbird und klicken Sie im Menü auf Extras => Add-ons.

2. Klicken Sie bei delight crm email reply auf Einstellungen.

3. Konfigurieren Sie die erforderlichen Einstellungen.

Ihr persönlicher BI-Connector-URL wird in der Konfiguration in Ihrem delight-Programm angezeigt und kann von dort per Copy&Past kopiert werden. Benutzername und Password sind identisch mit den Anmeldeinformationen zur Anmeldung am delight-Programm. Weitere Informationen dazu finden Sie im Kapitel SOAP Konnektor Verbindung.


Verwendung

Für die Verwendung der Add-Ons muss das delight-Programm vollständig gestartet sein.

Die Add-ons unterstützt auch mehrfach Selektion. dh. Sie können mehrere E-Mails gleichzeitig markieren und archivieren. Bitte beachten Sie, dass dieser Vorgang unter Umständen (je nach Menge der gewählten E-Mails) sehr lange dauern kann und ihre Interaktion erfordert.


Outlook

Wenn das Add-in korrekt installiert und konfiguriert ist, finden Sie nach dem Start von Outlook zwei neue Buttons in Outlook. Die Buttons sind nur im Bereich E-Mail sichtbar.

Wählen Sie ein E-Mail und klicken Sie auf den gewünschten Button um das E-Mail in Ihr delight-Programm zu übertragen.


Thunderbird

 Top Letztes

Wenn das Add-on korrekt installiert und konfiguriert ist, finden Sie nach dem Start von Thunderbird zwei neue Buttons in Thunderbird.

Wählen Sie ein E-Mail und klicken Sie auf den gewünschten Button um das E-Mail in Ihr delight-Programm zu übertragen.


Änderungen des Basisreports

 Top

Betrachten wir die Situation, wenn Änderungen im Basisreport vorgenommen werden sollen. Öffnen Sie dazu den Basisreport (in unserem Beispiel - base.fr3) und ändern die benötigten Felder. Es soll z.B. die E-mail Adresse geändert werden:

Speichern Sie den Report. Wir öffnen jetzt den Nachfolgereport und vergewissern uns, dass die Änderung übernommen wurde:

Was wenn wir in den Basisreport Objekte hinzufügen müssen? Dies ist einfach, vergessen Sie jedoch nicht, dass im Basisreport und im Nachfolgereport keine zwei Objekte mit demselben Namen enthalten sein dürfen. Da wir uns im Basisreport befinden, wissen wir nicht wieviel Reporte von ihm ererbt sind und welche Objektnamen darin verwendet werden. Eine Regel demnach ist: fügen Sie ein Objekt in den Basisreport hinzu, so geben Sie den Namen folgenderweise an "Name_Report_Name_Objekt". Fügen Sie z.B. in den Basisreport das Objekt "Text" ein und geben die Namen "BaseMemo3" dafür ein.

Zum Entfernen oder Verschieben der Objekte gibt es keine Beschränkungen.


Erstellung des Reports

 Top

Erstellen wir einen einfachen Report, welcher sich auf einen Basisreport bezieht. Unser Report soll wie folgt aussehen:

Zuerst wird der Basisreport erstellt. Dieser soll im Reportkopf das Firmenlogo und die Unternehmensdaten enthalten. Nun erstellen wir den neuen Report und fügen dort die Objekte ein:

Speichern wir den Report unter den Namen "base.fr3". In welchem Ordner? Das hängt davon ab welche Einstellungen Sie vorgenommen haben. Standardmäßig wird die Schablone in dem Ordner gespeichert, der auch die ausführende Datei enthält. Den Ordner für das Speichern der Schablonen kann man in der Komponente TfrxDesigner eingeben, über die Eigenschaft TemplateDir.

Jetzt erstellen wir den Nachfolgereport. Dazu wählen Sie im Menü "Datei|Neu..." und gehen im sich öffnenden Fenster auf den Tab "Vorlagen". Wir suchen unsere Datei base.fr3 in der Liste, wählen diese aus und setzen ein Häkchen bei "Report erben":

screenshot - 18.05.2009 , 18_46_34

FastReport erstellt einen neuen Report der alle Elemente des Basisreports enthält. Diese sind mit einem Schloss markiert:

Was bedeutet dies? Diese Objekte können nicht entfernt oder verändert werden. Ebenfalls können sie auch nicht auf ein anderes Band verschoben werden. Alles andere kann bearbeitet werden (Text, Farbe, Maße). Beachten Sie jedoch, wenn man eine Änderung vornimmt (z.B. Schriftfarbe) bei einem Objekt mit einem Schloß, so wird die Änderung in diesem Report gespeichert. Weitere Änderungen im Basisreport werden nicht mehr für das Objekt übernommen! Wenn z.B. ein Objekt im Basisreport weiß ist und Sie ändern die Farbe im Nachfolgereport in rot, so wird bei einer Änderung der Farbe im Basisreport in grün, der Nachfolgereport trotzdem ein rotes Objekt enthalten. Hätten Sie die Farbe im Nachfolgereport nicht verändert, so wäre die Änderung im Basisreport übernommen worden. Dies gilt auch für Änderungen des Textes, der Maße und all der anderen Eigenschaften des Objektes.

Kehren wir nun wieder zu unserem Report zurück. Was wir noch machen müssen ist den Seitekopf hinzufügen und das Band mit den Daten:

Der Report ist nun fertig.


Internet-Link

 Top

Durch Einfügen einer sogenannten Tracking-URL werden Sie benachrichtigt, sobald der Empfänger auf den Link geklickt hat. Die Tracking-Benachrichtigung wird unter Tracking auf dem Journal-Eintrag eingetragen.

Wenn Sie Internet-Link in den Tracking-Funktionen auswählen, können Sie den zu überwachenden Internet-Link eingeben.


Terminbestätigung

 Top

Die Tracking-Funktion Terminbestätigung ist zur Zeit noch nicht verfügbar.


Tracking-Einstellungen

 Top

Wenn Tracking-Funktionen im Text eingefügt sind, werden automatisch die Tracking-Einstellungen angezeigt. Wenn keine Funktionen verwendet werden, sind diese Einstellungen nicht sichtbar.

Aktion bei Bestätigung | Aktion, die ausgeführt werden soll, wenn die Tracking-Benachrichtigung eintrifft.
Reaktion bei Bestätigung | Reaktion, die auf dem Journal-Eintrag bei Eintreffen der Tracking-Benachrichtigung gesetzt werden soll.
Aktion bei Auslauf | Aktion, die ausgeführt werden soll, wenn die Tracking-Benachrichtigung bis zum Auslauf-Datum nicht eintrifft.
Reaktion bei Auslauf | Reaktion, die auf dem Journal-Eintrag gesetzt werden soll bei Nichteintreffen der Tracking-Benachrichtigung bis zum Auslauf-Datum.
Auslauf | Datum, bis wann die Tracking-Benachrichtigung eintreffen muss.


filtern

Eine Liste oder Tabelle filtern bedeutet, dass nur Daten angezeigt werden, die einem bestimmten Kriterium entsprechen.

So kann z.B. die Adressliste nach dem Land "Switzerland" gefiltert werden, um alle Adressen aus der Schweiz zu erhalten.


Steuern der Vererbung

 Top

Vorhin haben wir die Erstellung des Nachfolgereports von Anfang an betrachtet. Was jedoch wenn wir schon einen Report haben und dieser sich auf den Basisreport beziehen soll? Dazu laden wir den Report der zum Nachfolgereport werden soll und gehen ins Menü "Report|Optionen...". Im Tab "Vererbung" befinden sich die Steuerungselemente der Vererbung:

screenshot - 18.05.2009 , 14_57_31

Wir müssen die Option "Von Basisreport erben" wählen und den Report aus der Liste aussuchen. So kann man auch den Weg zu den Reportvorlagen eingeben. Sie müssen jedoch vorsichtig sein, denn die Vorlagen, die einen anderen Weg verwendet haben, werden vielleicht nicht geladen. Nach dem Klick auf OK wird FastReport die beiden Reporte nun verbinden. Dabei kann folgende Warnmeldung auftauchen:

screenshot - 18.05.2009 , 18_49_27

Dies passiert, wenn in den Reporten Objekte mit gleichen Namen enthalten sind. Diese können entweder aus dem Nachfolgereport entfernt oder umbenannt werden.


Report mit Parameterabfragen

 Top

Report mit ParameterabfragenTop Previous Next

Betrachten wir die Erstellung eines Reports, bei welchem, vor dem start, eine Parameterabfrage im Dialogfenster erfolgt. Dazu machen Sie folgendes.

Erstellen Sie einen neuen Report. Gehen auf die Seite 2Saten" und fügen dort ein neues Objekt "Anfrage ADO". Rufen Sie dessen Editor auf und fügen folgenden Text der Anfrage hinzu:

select * from Customer where CustNo > :p1

Fügen sie in den Report eine neuen Dialoghinzu. Legen auf die Form die Komoponenten Label, Edit, Button:

Stellen Sie die Eigenschaften der Komponente wie folgt ein:

Label1:

Caption = 'Auswählen wenn CustNo größer als'

Edit1:

Text = '2000'

Button1:

Caption = 'OK'

ModalResult = mrOk

Button2:

Caption = 'Abbruch'

ModalResult = mrCancel

Öffnen Sie den Editor der Eigenschaft Params der Komponente Query und stellen den Parameter ein:

screenshot - 18.05.2009 , 18_40_27

Jetzt wechseln Sie auf die Seite mit der Reportseite und erstellen folgenden Report:

Beim Start des Reports erscheint auf den Bildschirm ein Dialog in den Sie einen Wert eintragen sollen. Nach dem Eintragen des benötigten Wertes klicken Sie auf OK. Der Report wird nun ausgeführt und zeigt die Kunden, deren Nummer größer als die eingegebene ist.