Formularanpassung
Transcrição
Formularanpassung
Bedienungsanleitung REFLEX Formularanpassung F-1 Formularanpassung Inhalt: Formularanpassung ............................................................................................................................... 1 F.1 Formulare ändern mit CrystalReports ......................................................................................... 2 F.1.1 Organisation der Report- und Formulardateien....................................................................... 3 F.1.2 Starten Crystal, Grundeinstellungen ....................................................................................... 4 F.1.3 Grundsätzlicher Aufbau eines Reports ................................................................................... 9 F.1.3 Grundsätzliche Elemente eines Reports ............................................................................... 11 Textfelder ......................................................................................................................................... 17 F.1.4 Formatierung der Reportbereiche ......................................................................................... 21 F.1.5 Verknüpfungen der Datenbank-Tabellen .............................................................................. 23 F.1.6 Erstellen einer Artikel-Liste ................................................................................................... 26 F.1.7 Erstellen einer Auftragsliste .................................................................................................. 28 F.1.8 Erstellen eines Angebots/Auftrags ........................................................................................ 29 Berichts- und Seitenkopf-Bereiche ................................................................................................... 43 Detail-Bereiche ................................................................................................................................ 46 Berichts- und Seitenfuß-Bereiche .................................................................................................... 47 Erstellen eines Lieferscheins ........................................................................................................... 49 Erstellen einer Rechung ................................................................................................................... 50 F.1.9 Tips und Tricks ..................................................................................................................... 51 F.2 Formulartexte ........................................................................................................................... 53 Bedienungsanleitung REFLEX Formularanpassung F-2 F.1 Formulare ändern mit CrystalReports Mit Hilfe von Report-Formularen werden die Druckausgaben (bzw. die Vorschau am Bildschirm) von REFLEX bzw. GEVAS-Professional durchgeführt. Report-Formulare geben das Gerüst vor, das dann mit den Daten aus der Datenbank gefüllt wird. Wenn Sie die mitgelieferten Druckformulare ändern wollen, müssen Sie CrystalReports besitzen. Damit können Sie eigene Formulare und Reports entwerfen. Von der Bezeichnung her unterscheiden wir zwei Begriffe: Reports... sind Listen, Auswertungen usw., mit deren Hilfe Datensätze aus der Datenbank (z.B. Adressen) aufgelistet und ggf. berechnet werden. Formulare... sind spezielle Report-Dateien, mit denen Formulare bedruckt oder ausgedruckt werden. Ein Formular bezieht sich immer auf einen bestimmten Beleg, z.B. Lieferschein, Rechnung usw. Technisch gesehen handelt es sich bei beiden um Report-Dateien von CrystalReports, nur der Anwendungsfall unterscheidet die beiden! Die Reports/Formulare von REFLEX bzw. GEVAS-Professional werden mit dem Programm CrystalReports eingegeben und verändert. Einzelheiten zur Bedienung von CrystalReports werden im dortigen Handbuch erläutert. In diesem Handbuch hier erfahren Sie Details zur Gestaltung von Formularen und Reports (Listen) in Verbindung mit REFLEX bzw. GEVAS-Professional. Sie können die standardmäßig mitgelieferten Formulare selbst verändern, wenn Sie CrystalReports erworben haben oder Sie können sich die Formulare durch einen Spezialisten anpassen lassen. In diesem Fall müssen Sie CrystalReports nicht unbedingt erwerben! Da CrystalReports auch für eigene Listen und Auswertungen benutzt werden kann, empfehlen wir die Anschaffung dieses Tools. Die meisten Beispiele dieser Dokumentation verwenden CrystalReport 8.5. Die Ansichten in späteren Versionen unterscheiden sich teilweise von aktuellen Versionen. Bedienungsanleitung REFLEX Formularanpassung F.1.1 F-3 Organisation der Report- und Formulardateien Jeder Report bzw. jedes Formular ist eine Datei. In dieser Datei befinden sich die Festlegungen für das Design, die Datenbank-Definitionen usw. Da es sehr viele Reportdateien gibt, wäre es sehr unübersichtlich, wenn sich alle Report- und Formulardateien in einem einzigen Ordner befinden würden. Aus diesem Grund werden die Ordner für die Reports strukturiert gespeichert: Ein weiterer wichtiger Grund: Wenn der Benutzer in REFLEX ein Formular auswählt (z.B. beim Drucken eines Angebots), so erhält er die Anzeige der Dateien, die sich in dem festgelegten Verzeichnis (z.B. \REFLEX\FORMULAR\ANGEBOT) befinden. Dateien der Formulare: Formulare werden in einem speziellen Unterverzeichnis (Ordner) abgelegt. Standardmäßig heißt es \REFLEX\FORMULAR (normalerweise auf einem File-Server). Darin befinden sich weitere Unterverzeichnisse, die die Formular-Reports - nach Kategorien getrennt - beinhalten, z.B.: Angebot Auftrag Adr Bestell Fertigung Rechnung Liefsch Mahnung Angebote (und Anfragen!) Aufträge Adressen-Formulare Bestellungen Fertigungs-Formulare Rechnungen/Gutschriften Lieferschein/Leihschein Mahnung (Lager) usw. Dateien der Reports/Listen: Die Reports für Listen und Auswertungen werden in einem speziellen Unterverzeichnis (Ordner) abgelegt. Standardmäßig heißt es \REFLEXREPORT. Darin befinden sich weitere Unterverzeichnisse, die die Reports - nach Kategorien getrennt - beinhalten, z.B.: Adr Mart Adressen Material und Artikel usw. Wenn Sie nicht wissen, in welchem Verzeichnis die Reports für eine bestimmte Liste stehen müssen, so öffnen Sie einfach das gewünschte Druckfenster im Programm. Führen Sie die Maus auf das Auswahlfeld er Formulare. In der Hinweise-Zeile wird Ihnen nun der richtige Pfad angezeigt! Die “Grundpfade” Formular/Reports kann man in der entsprechenden INI-Datei ändern. Die Unterverzeichnisse sind jedoch durch das Programm festgelegt und können nicht geändert werden! Bedienungsanleitung REFLEX Formularanpassung F.1.2 F-4 Starten Crystal, Grundeinstellungen Starten Sie CrystalReports, indem Sie das CrystalReports-Objekt aus dem Ordner Start/Programme für Crystal Reports in der Task-Leiste anklicken. Anfangs zeigt sich Crystal nur mit einem leeren Fenster. Erst nach dem Öffnen oder Neu-Anlegens eines Reports wird das Fenster gefüllt. Wenn Sie Crystal-Reports zum ersten Mal starten, müssen Sie zuerst die Grundeinstellungen über das Menü Datei->Optionen vornehmen. Diese werden nachfolgend beschrieben. CrystalReports ab 2008 meldet sich mit der sog „Startseite“: Bedienungsanleitung REFLEX Formularanpassung F-5 Grundeinstellungen: CrystalReports 8.5: CrystalReports 2008: (1) Diese Optionen sind vor allem für den Komfort beim Arbeiten sinnvoll. Wenn Sie hier andere Einstellungen bevorzugen, können Sie diese durchaus verwenden! Die Option “Feldnamen anzeigen” in (2) ist jedoch wichtig, damit Sie die Feldnamen der Datenbankfelder direkt sehen können und nicht erst nach einem Mausklick. Das automatische Einfügen von Detailfeldtiteln in den Report durch Crystal-Reports ist jedoch eher lästig! Das Gitternetz (4) ist eine Hilfe, die man durchaus in Betracht ziehen kann. Bedienungsanleitung REFLEX Formularanpassung F-6 Datenbank-Optionen: Diese Optionen sind z.T. sehr wichtig und sollten unbedingt korrekt eingestellt werden! In (1) können Sie bestimmen, was Sie sehen wollen, wenn Sie Datenbanktabellen in einen Report einmischen wollen. Bei SQL-Servern (wie z.B. Oracle©) können Sie über die Besitzer-Angabe einen direkten Zugriff auf die Datenbank-Tabellen erhalten (und die vielen anderen Tabellen u.U. ausblenden). Die Optionen (2) und (3) sind Geschmackssache. Editoren-Optionen: Diese Optionen können Sie nach Ihrem “Geschmack” einrichten: Berichterstellung: Bedienungsanleitung REFLEX Formularanpassung F-7 Ab Crystal-Reports Version 8 unterstützt Crystal-Reports auch die Oracle-Zeitfelder, daher sollte man diese Option (1) wie angegeben benutzen. Wenn die Option (2) angegeben wird, wandelt Crystal-Reports alle Felder, die keinen Inhalt haben (also nichts, nicht einmal den Wert "0") in den Wert 0 um. Das erleichtert die Abfrage in Formeln, wo man bei Zahlenfeldern dann nur auf 0 abfragen muss und nicht auf 0 oder NICHTS (NULL). Die Optionen (3) und (4) dürfen auf gar keinen Fall eingeschaltet sein, weil Crystal-Reports sonst die Daten aus der Datenbank mit im Report speichern würde. Der Report würde also immer nur mit diesen Daten gedruckt werden, niemals mit den aktuellen Werten! Leider ist diese Option standardmässig eingeschaltet! Die Option (5) empfiehlt sich ab der Crystal-Reports Version 8 einzusetzen, auch wenn man dadurch u.U. bestehende Reports nachbearbeiten muss. Standard-Festlegungen für Felder: Bedienungsanleitung REFLEX Formularanpassung F-8 In diesem Optionsfenster können Sie Standardvorgaben für die einzelnen Feldtypen angeben. Das erleichtert das spätere Einfügen dieser Felder in den Report, weil die meistverwandten Einstellungen (z.B. Nachkommastellen, Jahreszahl-Stellen usw.) schon eingestellt sind. Standard-Schriftarten: In diesem Optionsfenster können Sie Standardschriftarten für die einzelnen Feldtypen angeben. Das erleichtert das spätere Einfügen dieser Felder in den Report, weil die meistverwandten Einstellungen (z.B. Schriftname, Grösse usw.) schon eingestellt sind. Bedienungsanleitung REFLEX Formularanpassung F.1.3 F-9 Grundsätzlicher Aufbau eines Reports Jeder Report (oder jedes Formular) besteht aus diesen Bereichen: Name Abkürzung Beschreibung Berichts-Kopf BK Wird von Crystal-Reports auf der ersten Seite oben gedruckt. Seiten-Kopf SK Wird auf jeder Seite oben gedruckt (also auch auf der ersten und letzten Seite). Gruppen-Kopf GK Optional: In einem Report können Sie beliebige Gruppierungen vornehmen, z.B. nach alle Aufträge nach der Adressnummer sortiert und gruppiert. Der Gruppen-Kopf wird über dem DetailBereich gedruckt. Details D Hier werden die Einzelheiten (Details) zu den angesprochenen Datensätzen ausgegeben. Gruppen-Fuss GF Optional: Der Gruppen-Kopf wird unter dem Detail-Bereich gedruckt. Enthält normalerweise Summenfelder der Gruppe. Seiten-Fuss SF Wird auf jeder Seite unten gedruckt (also auch auf der ersten und letzten Seite) Berichts-Fuss BF Wird von Crystal-Reports auf der letzten Seite unten gedruckt Enthält normalerweise Summenfelder o.ä. Beispiel: Bedienungsanleitung REFLEX Formularanpassung F-10 Unterteilung der Bereiche: Die Bereiche sind manchmal nochmals unterteilt in logische Unterbereiche. Diese Unterbereiche haben jeweils unterschiedliche Aufgaben zu erfüllen, so soll z.B. der Bereich mit der Lieferanschrift nur dann ausgedruckt werden, wenn es eine Lieferanschrift für das Angebot gibt. Wenn keine Lieferanschrift gespeichert ist, soll der Bereich unterdrückt werden. Manchmal will man, dass eine Zeile, die leer ist (weil das entsprechende Datenbankfeld keine Daten beinhaltet) nicht als Leerzeile gedruckt wird. In diesem Fall muss man das entsprechende Datenbankfeld in einen eigenen Unterbereich plazieren und diesen Unterbereich über die Formatierung unterdrücken, wenn er leer ist. In einem Formular kann es z.B. diese Unterbereiche geben: Berichtkopf A Berichtkopf B Berichtkopf C Berichtkopf D Berichtkopf E Berichtkopf F Berichtkopf G Berichtkopf H Erste Seite oben mit Firmensymbol etc. Erste Seite oben mit kleiner Absenderangabe für Fensterumschläge. Erste Seite oben mit der Adresse Erste Seite oben mit Straße, PLZ, Ort und Angebotsdaten. Lieferanschrift Persönliche Anrede, wenn eine persönliche Anrede gespeichert ist. Alternative zu F: Persönliche Anrede, wenn in Adresse keine persönliche Anrede gespeichert ist (“Sehr geehrte Damen und Herren”). Einleitungstext aus dem Angebotskopf. Seitenkopf A Kopfteil der Folgeseiten mit kurzen Anschrifts- und Angebotsangaben, die erst ab der 2. Seite gedruckt werden sollen. Seitenkopf B Kopfteil aller Seiten mit der Überschriftszeile über den Positionen. Gruppenkopf #1 A Kapitelüberschriften Detail A Detail B Detail C Positionsdruck mit Menge, Text und Preis. Ausdruck der Stunden bei Positionen mit Stundenangaben. Text, der manuell zu einer Position hinzugefügt wurde. Gruppenfuß #1 A Zwischensumme pro Kapitel Berichtfuß A Berichtfuß B Berichtfuß D Berichtfuß E Berichtfuß F Berichtfuß G Berichtfuß H Seitenfuß Summen der Angebotspositionen Frachtkosten Netto-Betrag Mehrwertsteuer Gesamtbetrag des Angebots Zahlungskonditionen (Text) Abschließender Text aus Angebotsfuß. Firmeninformationen auf jeder Seite unten. Für jeden dieser Bereiche kann man z.B. festlegen, ob er gedruckt werden soll bzw. unter welchen Bedingungen er unterdrückt werden soll! Bedienungsanleitung REFLEX Formularanpassung F.1.3 F-11 Grundsätzliche Elemente eines Reports Ein Report besteht nicht einfach aus Text, sondern es gibt eine Reihe von Objekten in einem Report, die zusammengenommen das Layout ergeben, z.B. Textfelder, Datenbankfelder usw. In dieser Dokumentation werden nur die wichtigsten Objekttypen beschrieben. Einzelheiten entnehmen Sie ggf. der Crystal-Reports Dokumentation. Einfügen der Objekte: Objekte werden eingefügt über das Crystal-Reports Menü “Einfügen” oder eines der Smybole: Positionierung der Objekte: Alle visuellen Objekte (Textfelder, Datenbankfelder usw.) können frei in den Bereichen des Report positioniert werden. Wenn Sie das Gitternetz in den Optionen aktiviert haben, werden die Objekte an diesem Raster eingefügt und bewegt. Wenn Sie ein Objekt in die Nähe einer Haltelinie bringen, wird es von der Haltelinie angezogen und (je nach Position) links, rechts, mittig, oben oder unten positioniert. Haltelinien: Es empfiehlt sich, in den Report vertikale und horizontale Haltelinien einzufügen, damit man die Objekte besser zueinander ausrichten kann. Haltelinien sind “Magnete”, die sich die Objekte ab einem bestimmten Abstand “schnappen” und heranziehen. Einzelheiten entnehmen Sie ggf. der CrystalReports Dokumentation. Bedienungsanleitung REFLEX Formularanpassung F-12 Textfelder Textfelder geben Ihnen die Möglichkeit, feste (konstante) Texte im Report unterzubringen. Beispiele hierfür sind Überschriften, Report-Titel usw. Textfelder können beliebige Schriftarten bekommen und auch mehrzeilig sein. In Textfelder kann man auch Datenbankfelder beliebig einmischen. Datenbankfelder Datenbankfelder sind “Platzhalter” für die Daten aus der Datenbank. Jedes Datenbankfeld wird über einen Namen angesprochen, der sich auch dem Tabellennamen und dem Feldnamen zusammensetzt. Beispiel: Adr.AdrNr bezeichnet das Feld “AdrNr” aus der Datenbank-Tabelle “Adr” (Adressen). Adr.Str bezeichnet das Feld “Str” (Strasse) aus der Datenbank-Tabelle “Adr” (Adressen). MArt.Typ bezeichnet das Feld “Typ” aus der Tabelle Artikel “MArt”. Zur Laufzeit (wenn der Report ausgeführt wird) ersetzt Crystal-Reports die Platzhalter durch die Daten aus der Datenbank. Datenbankfelder können beliebig formatiert werden. Die Grösse (=Breite) eines Datenbankfeldes richtet sich nach der Breite, wie sie im Report angegeben wurde. Einige Datenbankfelder können auch mehrzeilig werden (Memo-Felder, Text-Felder). Hinweis: Je nachdem, welches Datenbanksystem verwendet wird, unterscheidet sich der Zugriff zu den Datenbank-Tabellen, bei Oracle-Datenbanken über einer logischen Tabellennamen (z.B. ADR). Datenbankfelder sind immer von einem bestimmten Typ. So gibt es z.B. Zahlenfelder, Textfelder, Datumsfelder usw. Jeder Feldtyp hat dabei seine Eigenheiten, man z.B. nur bei einem Zahlenfeld festlegen, mit wieviel Nachkommastellen es ausgedruckt werden soll. Formeln Formeln sind eine sehr mächtige Möglichkeit, Inhalte von Berechnungen auszugeben oder Inhalte von Datenbankfelder abhängig von bestimmten Gegebenheiten auszugeben. Beispiele: A. Eine Formel wird dazu benutzt, die Statusnummer eines Auftrags (1=Aktiv, 2=Angebot, 3=Auftrag usw.) in einen Klartext umzusetzen: Wenn MAufKo.StatusNr=1 dann drucke “AKTIV”, wenn MAufKo.StatusNr=2 dann drucke “ANG” usw. B. Eine Formel berechnet den Lagerwert eines Artikel anhand des Einkaufspreises multipliziert mit der Soll-Menge: {Mart.EK} * {MArt.BestandSoll} . Bedienungsanleitung REFLEX Formularanpassung F-13 C. In einem Angebot werden die konstanten Texte nicht mit Textfeldern angegeben sondern in Formeln, die die gewünschte Sprache berücksichtigen: if {MaufKo.Sprache}=”D” then “Angebot” else if {MaufKo.Sprache}=”E” then “Offer” else if {MaufKo.Sprache}=”F” then “Offerte” In diesem Beispiel sehen Sie, dass Datenbank-Felder in Formeln immer in geschweiften Klammern stehen! Ein weiteres wichtiges Einsatzgebiet von Formeln ist es, dass man Objekte unter bestimmten Voraussetzungen unterdrücken kann. Man kann z.B. bestimmen, dass das Wort “Rabatt” in einem Angebot nicht gedruckt wird, wenn es gar keinen Rabatt im Angebot gibt. Einzelheiten zu den vielfältigen Möglichkeiten von Formeln entnehmen Sie ggf. der Crystal-Reports Dokumentation. Fazit: Formeln geben Ihnen die Möglichkeit a. Berechnungen innerhalb des Reports vorzunehmen, z.B. den Durchschnitt aller aufgelisteten Aufträge, das Gesamtgewicht einer Auftragsposition aus Menge x Einzelgewicht usw. b. Vergleiche zwischen Feldern oder Werten vorzunehmen, um damit das Erscheinen bzw. das Unterdrücken von einzelnen Feldern oder ganzen Report-Bereichen zu steuern. Neue Formel anlegen: Wenn Sie eine Formel für Datenvergleiche erstellen möchten und damit das Unterdrücken von Feldern oder Report-Bereichen von einer Bedingung abhängig machen wollen, so wählen Sie zuerst das zu unterdrückende Objekt an und drücken die rechte Maustaste. Im Menü wählen Sie “... formatieren” an. Bedienungsanleitung REFLEX Formularanpassung F-14 Ein Dialogfenster wie dieses erscheint: Zur Eingabe einer Formel klicken Sie auf das Symbol [X+2] neben dem Wort “Unterdrücken” und geben dort an, unter welchen Bedingungen das Objekt unterdrückt werden soll. Beispiel: Sie wollen, dass der Report-Bereich mit dem Versicherungsbetrag unterdrückt werden soll, wenn es gar keinen Versicherungsbetrag gibt oder wenn die Druckoption zum drucken des Gesamtbetrag ausgeschaltet wurde. Die Formel sieht dann so aus: {MAufFu.VersichBetrag}=0 or {MaufFu.DruckOptGesBetr}=0 Schreiben Sie in diesem Beispiel die Formel genauso in den Formel-Editor wie oben angegeben. Hinweis: Nicht ausgewählte Optionen haben in REFLEX für Windows immer den Wert "0", ausgewählte Optionen haben den Wert "1". Im obigen Beispiel wäre das: Bedienungsanleitung REFLEX Formularanpassung F-15 Im Auftragsfuß wurde angegeben: Gesamtbetrag drucken Die Option ist nicht angekreuzt, also hat das entsprechende Feld {MaufFu.DruckOptGesBetr } den Wert 0. Gesamtbetrag drucken Die Option ist angekreuzt, also hat das entsprechende Feld {MaufFu.DruckOptGesBetr } den Wert 1. Sie können nun das Unterdrücken des Objekts wie folgt steuern: Wenn eine Formel zum Unterdrücken schon angegeben wurde, ist das an der veränderten Farbe der Schaltfläche erkennbar. Bedienungsanleitung REFLEX Formularanpassung F-16 Spezialfelder Mit den von Crystal-Reports vorgegebenen Spezialfeldern kann man z.B. Seitennummern anbringen, die Gesamtseitenzahl ausdrucken usw. Folgende Spezialfelder gibt es: Bedienungsanleitung REFLEX Formularanpassung F-17 Formatierung der Objekte Crystal-Reports bietet Ihnen eine Fülle von Formatierungsoptionen für jedes Objekt an. Die Möglichkeiten zur Formatierung hängt dabei vom Objekt-Typ ab: Ein Zahlenfeld kann z.B. mit verschiedenen Nachkommstellen formatiert werden. Ein Datumsfeld kann z.B. mit 2- oder 4-stelliger Jahreszahl formatiert werden. Ein Textfeld kann ein- oder mehrzeilig formatiert werden usw. Alle Formatieroptionen erreichen Sie, indem Sie den Mauscursor auf das gewünschte Objekt stellen und die rechte Maustaste drücken. Alle Objekte werden nur in der Breite gedruckt, in der sie im Report angegeben werden! Die Breite eines Feldes im Report gibt also die maximale Druckbreite an. Jedes druckbare Objekt kann die in Windows bekannten Schriftarten in allen möglichen Varianten erhalten. Sie können also die Schriftattribute Fett, Kursiv, die Schriftgrösse usw. vollkommen frei festlegen! Alle Objekte können ausserdem linksbündig, rechtsbündig oder zentriert festgelegt werden. HINWEIS: Sie können mehrere Felder gleichzeitig auswählen, indem Sie die UMSCHALTTASTE gedrückt halten und die Maustaste verwenden, oder indem Sie den Befehl "BearbeitenFelder auswählen" wählen. Im letzteren Fall schließen Sie die gewünschten Felder mit dem Fadenkreuz-Cursor in einen Auswahlrahmen ein. Wenn Sie möchten, können Sie die Position oder Breite eines Feldes ändern, das Feld formatieren oder ein Feld löschen. Klicken Sie dazu auf den Feldrahmen für das jeweilige Feld. Schwarze Ziehpunkte werden an den rechten und linken Seiten aller ausgewählten Felder angezeigt. Sie ändern die Feldpositionierung, indem Sie den Feldrahmen mit der Maus oder den Pfeiltasten zur neuen Position verschieben. Die Pfeiltasten verschieben den Feldrahmen bei jedem Tastendruck um jeweils eine Gitterposition bzw. um eine Einheit. Textfelder Wenn Sie konstante Textfelder in den Report einfügen wollen, so wählen Sie aus dem Menü “Einfügen>Textobjekt” oder klicken auf das entsprechende Symbol. Ziehen Sie dann die Maus (ohne gedrückte Maustasten!) An die Stelle, wo der Text eingefügt werden soll. Dort klicken Sie mit der linken Maustaste. Ein kleines Eingabefeld erscheint und gibt Ihnen die Möglichkeit, Text einzugeben. Sie können dieses Feld jederzeit erweitern. Im Formatmenü (rechte Maustaste über dem Feld drücken, “Text formatieren” auswählen) können Sie außerdem einige Optionen für das Feld angeben, z.B. die Option “Kann größer werden”, mit der Sie zulassen, daß das Textfeld über mehrere Zeilen reichen soll. Neben der Schriftart ist eine der wichtigsten Optionen für Textfelder die Option “Kann grösser werden”. Hiermit können Sie bestimmen, dass das Textfeld mehrere Textzeilen umfassen kann und automatisch in der Höhe “mitwächst”. Ausserdem können Sie hier angeben, wieviel Zeilen maximal gedruckt werden. Bedienungsanleitung REFLEX Formularanpassung F-18 Beispiel: Die Schaltflächen [X+2] neben einer Option geben an, dass man die Option auch über eine Formel beeinflussen kann, d.h. abhängig von bestimmten Bedingungen ein- oder ausschalten kann. Zahlenfelder Bei Zahlenfeldern gibt es ab Vers. 8.0 entweder die Standardoptionen... Bedienungsanleitung REFLEX Formularanpassung F-19 oder individuelle Einstellungen mit der Schaltfläche [Anpassen]... (1) gibt an, ob und ggf. welches Dezimaltrennzeichen verwendet werden soll. (2)(3) ist vor allem für Betragsfelder wichtig (bei Felder wie “Auftragsnummer”, “Rechnungsnummer” usw. ist diese Option eher fragwürdig. (4) gibt die Anzahl der verwendeten Dezimalstellen an. (5) eventuelle Rundung (6) Wenn es keine negative Zahl geben kann (und nur dann!) kann das führende Minuszeichen unterdrückt werden (Option “Kein). Bedienungsanleitung REFLEX Formularanpassung F-20 Datumsfelder Bei Datumsfeldern gibt es folgende Standard-Optionen: Hier ist vor allem wichtig, ob man die Jahreszahl zwei- oder vierstellig ausdrucken will. Wenn man mit diesen Vorgaben nicht auskommt, kann man auch mit der Schaltfläche [Anpassen] individuelle Einstellungen vornehmen. Wenn Sie nur den Wochentag eines Datums ausdrucken wollen, so wählen Sie die gewünschte Form “Wochentag” und in den Feldern “Format “ jeweils die Option “Kein” aus. Dadurch wir der ruck des Tages, Monats und Jahres unterdrückt und nur der Wochentag ausgedruckt! Bedienungsanleitung REFLEX Formularanpassung F.1.4 F-21 Formatierung der Reportbereiche Ein Bereich (oder auch ein Unterbereich) kann mit vielen Optionen formatiert werden. Klicken Sie dazu am einfachsten mit der rechten Maustaste auf den Bereichsnamen (bzw. die Abkürzung) am linken Fensterrand. Freiformplazierung: Die Option “Freiformplazierung” erlaubt Ihnen, Ihre Objekte frei zu plazieren (wow - wer hätte das gedacht!). Wenn Sie diese Option nicht eingeschaltet haben, “mischt” sich Crystal-Reports in die Objektplazierung ein und richtet die Objekte selbstständig aus. Nach Ansicht des Autors eine meistens unerwünschte Einmischung in innere Angelegenheiten! Wenn Sie dieses Kontrollkästchen aktivieren, können Sie also Objekte in einer Freiformumgebung ähnlich wie in einem Zeichenprogramm plazieren. Wenn diese Option deaktiviert ist, werden Objekte an festen Punkten eines zugrundeliegenden Gitternetzes plaziert. Unterdrücken: Aktivieren Sie dieses Kontrollkästchen, wenn der betreffende Bereich gar nicht gedruckt werden soll. Sie können komplette Report-Bereiche auch abhängig von Formeln unterdrücken. Klicken Sie auf das Symbol [X+2] neben " Unterdrücken" und geben die Formel ein, bei der der Bereich unterdrückt werden soll. Am Ende der Seite drucken Wenn dieses Kontrollkästchen aktiviert ist, wird der Bereich nur unten auf der Seite gedruckt. Der Detailbereich wird immer an seiner “normalen” Positionen gedruckt. Diese Option ist praktisch, wenn Sie z.B. Rechnungen drucken, bei denen die Summenzeile immer unten auf der Seite gedruckt werden soll. Davor neue Seite Davor neue Seite ist als Formateigenschaft für Gruppenbereiche (Gruppenkopf und Gruppenfuß) und Detailbereiche verfügbar. Wenn Sie diese Option aktivieren, fügt Crystal-Reports einen Seitenumbruch ein, bevor dieser Bereich gedruckt wird. Der Seitenumbruch wird an folgenden Stellen eingefügt: Bedienungsanleitung REFLEX Formularanpassung F-22 vor der Gruppe (wenn die Option mit einem Gruppenfußbereich verwendet wird) oder vor jedem Berichtdatensatz (wenn die Option mit einem Detailbereich verwendet wird. Hinweis: Seitenkopf und Seitenfuß erscheinen immer auf jeder Seite. Wenn Sie ein Zwischenergebnis- oder Gruppenergebnisfeld im Gruppenfußbereich haben, können Sie mit der Option Davor neue Seite diese Werte auf Seiten einfügen, die auf den zusammengefassten Wert folgen. Danach neue Seite Wenn Sie diese Option aktivieren, fügt das Programm nach diesem Bereich einen Seitenumbruch ein. Seitenzahl danach zurücksetzen Setzt die Seitennummer für die folgende Seite auf eins (1) zurück, nachdem die Gruppengesamtsumme gedruckt wurde. Diese Option ist praktisch, wenn Sie mehrere Berichte aus einer einzigen Datei drucken möchten (z. B. Rechnungen) und jeder Bericht mit Seite 1 beginnen soll. Zusammenhalten Wenn dieses Kontrollkästchen aktiviert ist, hält das Programm alle Zeilen eines Bereichs zusammen, entweder auf der aktuellen Seite (wenn der Platz ausreicht) oder auf der nächsten Seite. In einer Kundenliste z. B. können sich die Daten für einen bestimmten Kunden über mehrere Zeilen erstrecken. Wenn der Standardseitenumbruch mitten in die Daten für einen Kunden fällt, würden die Daten geteilt und teils auf der einen, teils auf der nächsten Seite angezeigt. Mit Zusammenhalten verschiebt das Programm den Seitenumbruch hingegen vor den Datensatz, so daß alle Daten zusammen auf der folgenden Seite gedruckt werden. Hinweis: Diese Option funktioniert nicht mit mehrzeiligen Zeichenfolgen oder Memofeldern. Ein Seitenumbruch kann in der Mitte eines mehrzeiligen Felds liegen. Leeren Bereich unterdrücken Wenn Sie dieses Kontrollkästchen aktivieren, blendet das Programm einen Berichtbereich aus, wenn er leer ist, und druckt ihn nur, wenn er Daten enthält Folgende Bereiche unterlegen Aktivieren Sie dieses Kontrollkästchen, wenn das ausgewählte Objekt beim Drucken unter den folgenden Bereichen liegen soll. Mehrspaltig formatieren Diese Option ist für den Etikettendruck wichtig. Bedienungsanleitung REFLEX Formularanpassung F.1.5 F-23 Verknüpfungen der Datenbank-Tabellen In der Datenbank gibt es viele Datentabellen. Manche dieser Tabellen sind miteinander verknüpft, d.h. über bestimmte Felder werden Abhängigkeiten der Tabellen zueinander hergestellt. Beispiel: In der Auftragskopftabelle MAFUKO werden die Auftragsposition in der Tabelle MAUFPO mit Hilfe des Feldes Auftragsnummer (AUFTRNR) miteinander verbunden: Verknüpft mit ergänzt durch Tabelle Feld Tabelle Feld MAUFKO AuftrNr MAUFPO AuftrNr PosNr UntPosNr 10000 1 0 10000 1 1 10000 1 2 10001 1 0 10001 1 1 10001 1 1 10001 2 0 10001 2 1 10000 10001 Warum Verknüpfungen? Indem man eine Tabelle verknüpft, legt man fest, dass eine Tabelle einer anderen untergeordnet ist. So kann man z.B. bestimmten, dass die Auftragspositionen immer zu einem Auftragskopf gehören. Dadurch kann Crystal-Reports in einem Auftragsformular nur die Positionen ausdrucken, die zu dem angegebenen Auftrag gehören. Wenn man hier keine Verknüpfung angeben würde, so würde Crystal-Reports alle Positionen aufführen, und nicht nur die, die zu dem Auftrag gehören! Hinweis: Wenn Sie einen Standard-Report von REFLEX als Grundlage für die Formularanpassung benutzen, so sind die Verknüpfungen bereits im Report festgelegt worden. Sie müssen diese Verknüpfungen normalerweise nicht verändern, wenn Sie den Beispiel-Report als Grundlage für eigene Formulare nehmen! Bedienungsanleitung REFLEX Formularanpassung F-24 Fazit: Verknüpfungen verbinden Tabellen hierarchisch miteinander. Die Tabellen müssen logisch verknüpft sein, sonst wird das Ergebnis des Berichts verändert, z.B. könnte man die Auftragskopf-Tabelle (MAUFKO) mit der Auftragspositions-Tabelle (MAUFPO) auch über die Adressnummer (ADRNR) verknüpfen. Dies würde aber dazu führen, dass der Bericht alle Positionen anzeigt, die zu dieser Adressnummer gehören. Richtig ist, die Auftragspositionen (MAUFPO) über die Auftragsnummer (AUFTRNR) mit dem Auftragskopf (MAUFKO) zu verknüpfen, da wir ja alle Positionen des Auftrags aufführen wollen und nicht alle Positionen, die zu einer Adressnummer gehören! Die Hierarchie erkennt man am Beispiel der Adress-Tabelle (ADR). Die Adressnummer (ADRNR) ist in der Auftragskopf-Tabelle (MAUFKO) und in der Adress-Tabelle (ADR) vorhanden. Für die Verknüpfung in einem Angebot brauchen wir zwei Verknüpfungen: MAUFKO.AUFTRNR MAUFPO.AUFTRNR MAUFKO.ADRNR ADR.ADRANR Verknüpft die Auftragspositionen mit dem Auftragskopf. Es werden alle Positionen aufgeführt, die zu dem Auftragskopf passen! Verknüpft die Adressdaten mit der Adressnummer aus den Stammdaten. Die Adressnummer ist eindeutig, kommt also nur einmal vor. Somit kann man auf dem Report alle Informationen der Adresse aufführen, also die Adresse, Ort, Straße usw. Bedienungsanleitung REFLEX Formularanpassung F-25 Wichtig: Bei SQL-Datenbanken wie in unserem Fall muss diese Verknüpfung in den Optionen (rechte Maustaste auf einen der Pfeile) auf “Linke-Äußere” eingestellt sein. In Crystal wird die Verknüpfung standardmäßig auf “Gleich” gesetzt, das bedeutet, jeder Verknüpfungspfeil muss auf Linke-Äußere gesetzt sein. Bei einigen CrystalReports-Versionen wird dieser Verknüpfungstyp Links-Inklusion genannt. Unser Bericht würde sonst ein leeres Blatt als Ergebnis zeigen, sobald eine der Tabellen keine Daten mehr enthält! Bedienungsanleitung REFLEX Formularanpassung F.1.6 F-26 Erstellen einer Artikel-Liste So sollte das Ergebnis aussehen: Der Report soll die vorhanden Artikel und Einzelartikel aufführen. Jeder Einzelartikel soll mit dem Status und dem aktuellen Standort aufgeführt werden. Die Telefonnummer des aktuellen Standortes soll mitgedruckt werden. Die verwendeten Tabellen sind: MART MARTEINZ ADR Mietartikel Miet-Einzelartikel Adressen Bedienungsanleitung REFLEX Formularanpassung Die Verknüpfungen: F-27 Bedienungsanleitung REFLEX Formularanpassung F.1.7 F-28 Erstellen einer Auftragsliste Es soll eine Liste erstellt werden, in der die Aufträge mit den Positionen und des aktuellen Status aufgeführt sind. Es sollen Daten aus der Adresse (z.B. Telefonnummer) und der Artikel (z.B. aktueller Bestand) ausgedruckt werden, deshalb braucht man auch die entsprechenden Stammdaten-Tabellen. Diese Tabellen werden benötigt: Name Beschreibung MAUFKO Auftragskopf MAUFFU Auftragsfuss MAUFPO Auftragspositionen ADR Adressen (Kontakte) MART Artikel, Material Die Verknüpfungen: Bedienungsanleitung REFLEX Formularanpassung F.1.8 F-29 Erstellen eines Angebots/Auftrags In diesem Kapitel wird ein Beispiel-Angebots-Report erstellt. Diese Tabellen werden benötigt: Name Beschreibung MAUFKO Auftragskopf MAUFFU Auftragsfuss MAUFPO Auftragspositionen ADR Adressen (Kontakte) MARTTEXT Textbausteine zu Artikeln, wenn man Artikeltexte drucken will. REFLEX schreibt die Artikeltexte für Angebote/Aufträge automatisch in die Auftragspositionen in das Feld MAUFPO.TEXT, so dass man diese Tabelle eigentlich nicht benötigt! MART Artikel, Material Die Verknüpfungen werden auf der vorigen Seite gezeigt. So sollte das Ergebnis aussehen: Im Kopfteil sollte das Firmenlogo rechts oben stehen darunter im Umschlagfenster die Adresse des Kunden, dann die Angebotsinformationen wie Angebotsnummer, Veranstaltungsname usw. Die persönliche Anrede sollte entweder aus dem Adressenstamm kommen oder (wenn keine Anrede gespeichert ist) durch eine Standardfloskel ersetzt werden. Darunter soll dann der Einleitungstext stehen, der aus dem Kopftext des Angebots kommt. (Wenn dieser Text immer gleich ist könnte man ihn auch als konstanten Text unterbringen.) Beispiel: Im Positionsteil des Angebots sollten die einzelnen Positionen ausgedruckt werden. Jedes Kapitel soll mit der Kapitelnummer und -überschrift in großer Schrift ausgedruckt werden. Bedienungsanleitung REFLEX Formularanpassung F-30 Als Texte sollte die Texte aus den Artikel-Textstamm benutzt werden, also nicht die Artikelbezeichnung aus den Artikelstammdatei! Außerdem soll natürlich der Text in der Sprache erscheinen, die im Angebotskopf ausgewählt wurde. Wenn in der jeweiligen Position noch ein manueller Text angegeben wurde, soll dieser unter dem Artikeltext erscheinen. Der Einzelpreis einer Position darf nur erscheinen, wenn kein Pauschalpreis angegeben ist, weil es ja keinen Sinn macht, Einzelpreise auszuweisen und am Schluß dann doch einen Pauschalpreis auszugeben! Beispiel: Im Fußteil jeder Seite sollte ein Formularfuß mit Firmen-Infos gedruckt werden (s.o.). Am Ende jedes Kapitels soll eine Gruppensumme (Zwischensumme genannt) ausgegeben werden, außer wenn eine Pauschale angegeben wurde. Im Kopfteil der Folgeseiten sollen die Kunden- und Angebotsdaten in Kurzform stehen. Beispiel: Bedienungsanleitung REFLEX Formularanpassung F-31 Positionen mit Arbeitszeit sollen die Stundenanzahl und den Stundensatz ausweisen. Im abschließenden Fußteil sollen die Summen aufgeführt werden, und zwar in den verschiedenen Varianten mit/ohne Fracht, Versicherung und/oder Mehrwertsteuer. Wenn im Auftragsfuß von REFLEX angewählt wurde, daß der Angebots-Gesamtbetrag nicht gedruckt werden soll, sollen keine Beträge gedruckt werden. Beispiel: Der Text der Zahlungskonditionen kommt aus dem Angebotsfuß. Der abschließende Text kommt aus dem Fußtext des Angebots. Wenn dieser Text immer gleich ist, könnte man ihn auch als konstanten Text unterbringen. Hinweis: Den Bearbeiter-Namen (“Harry Hastig”) kann man entweder als Text aus dem entsprechenden Memofeld des Auftragsfusses holen oder anhand des Bearbeiter-Kürzeln aus der Datenbanktabelle PERS einmischen! Die Reportdatei des Beispiel-Formulars: Bedienungsanleitung REFLEX Formularanpassung F-32 Kopfbereiche Im Kopfteil soll das Firmenlogo rechts oben stehen, man könnte dort auch ein eingescanntes Grafiksymbol plazieren! Darunter im Umschlagfenster die Adresse des Kunden, dann die Angebotsinformationen wie Angebotsnummer, Veranstaltungsname usw. Dieses wird im Berichtkopf angegeben, damit es nur auf der ersten Seite erscheint. Die folgenden Seiten sollen ohne Firmenlogo in einer verkürzten Form erscheinen (siehe Seitenkopf A). Der Kopfbereich ist in folgende Abschnitte unterteilt: Berichtkopf A Es beginnt recht einfach: Im Kopfteil steht das Firmenlogo rechts oben in Form von Textfeldern, die mit unterschiedlichen Schriftarten und -Attributen versehen sind. Man könnte dort auch ein eingescanntes Grafiksymbol plazieren: Menü "Einfügen->Picture" (Anmerkung des Autors: Solche tollen Übersetzungen finden sich in der aktuellen CrystalReports-Version leider an mehreren Stellen !). Berichtkopf B Ein Textfeld für die erste Seite oben mit kleiner Absenderangabe für Fensterumschläge. Berichtkopf C Erste Seite oben mit der Adresse: Damit die Adresse "dynamisch" vergrößert werden kann, wenn z.B. bei einigen Adressen nur eine Zeile ausgefüllt ist und bei anderen drei Zeilen, ist dieses Feld in einem eigenen Bereich untergebracht. Wenn man das nicht so macht besteht die Gefahr, daß die drunterliegenden Felder überschrieben werden, was einerseits sehr häßlich aussieht und andererseits die Adresse unleserlich macht! Dieser Report-Teil wird auch im Berichtkopf angegeben, damit er nur auf der ersten Seite erscheint. Die folgenden Seiten sollen ohne Firmenlogo in einer verkürzten Form erscheinen (siehe Seitenkopf A). Berichtkopf D Erste Seite oben mit Straße, PLZ, Ort und Angebotsdaten. Dieser Report-Teil wird ebenfalls im Berichtkopf angegeben, damit er nur auf der ersten Seite erscheint. Die folgenden Seiten sollen ohne Firmenlogo in einer verkürzten Form erscheinen (siehe Seitenkopf A). Bedienungsanleitung REFLEX Formularanpassung F-33 Berichtkopf E Die Lieferanschrift soll natürlich nur erscheinen, wenn auch eine in der Tabelle der MietaufträgeLieferanschriften MaufLiAn existiert! Daher lautet die Formel: Formatierung Inhalt Unterdrücken... isnull({mauflian.Adresse}) or {mauflian.adresse} = "" Hinweis: Der Begriff "IsNull(..)" steht in CrystalReports immer dafür, daß für das betreffende Feld wirklich nichts gespeichert ist! CrystalReports unterscheidet nämlich, ob ein Feld der Wert "0" hat bzw. leer ist oder ob es "jungfräulich" ist, d.h. es wurden noch niemals Werte in das Feld gespeichert. Wenn Sie diese etwas gewöhnungsbedürftige Eigenschaft von CrystalReports eliminieren wollen, so können Sie unter dem Menü "Datei>Berichtoptionen" die Option Wert für Nullfeld in Vorgabe konvertieren ankreuzen. CrystalReports wird nun "jungfräuliche" Felder wie Null-Felder behandeln. Berichtkopf F Persönliche Anrede, wenn in Adresse eine persönliche Anrede gespeichert ist. Das bedeutet im Umkehrschluß, daß dieser Bereich unterdrückt werden soll, wenn in der Adresse keine persönliche Anrede gespeichert ist (weil ja dann der Bereich "Bereichkopf G" gedruckt wird!). Formatierung Inhalt Unterdrücken... {adr.PersAnr} = "" Heißt im Klartext: Unterdrücken, wenn die Persönliche Anrede in der Adresse leer ist! Berichtkopf G Persönliche Anrede, wenn in Adresse keine persönliche Anrede gespeichert ist und statt dessen “Sehr geehrte Damen und Herren” gedruckt werden soll. Das bedeutet im Umkehrschluß, daß dieser Bereich unterdrückt werden soll, wenn in der Adresse eine persönliche Anrede gespeichert ist (weil ja sonst der Bereich "Bereichkopf F" gedruckt wird!). Formatierung Inhalt Unterdrücken... {adr.PersAnr} > "" Heißt im Klartext: Unterdrücken, wenn eine Persönliche Anrede in der Adresse vorhanden ist! Berichtkopf H Einleitungstext aus dem Angebotskopf: Hier soll der Einleitungstext stehen, der aus dem Kopftext des Angebots kommt. Wenn dieser Text in Ihrem Betrieb immer gleich ist könnte man ihn auch als konstanten Text unterbringen. Bedienungsanleitung REFLEX Formularanpassung F-34 Seitenkopf A Hier wird der Kopfteil der Folgeseiten mit kurzen Anschrifts- und Angebotsangaben festgelegt. Dieser Bereich soll erst ab der 2. Seite gedruckt werden. Wir müssen also festlegen, daß dieser Bereich bei der ersten Seite unterdrückt werden soll. Die Formel dazu: Formatierung Inhalt Unterdrücken... PageNumber = 1 Datumsdruck: Das Feld "PrintDate" ist das Datum, an dem der Report (=das Formular) jeweils ausgedruckt wird. Alternativ könnte man hier auch das Datum des ersten Drucks {MAufKo.DruckDat}, das Erfassungsdatum des Angebots {MAufKo.ErfDat} oder das Änderungsdatum {MAufKo.AendDat} benutzen. Seitenkopf B Dieser Kopfteil soll auf allen Seiten mit der Überschriftszeile über den Positionen erscheinen. Eine Besonderheit stellt das Textfeld "Preis.." dar: Wenn der Benutzer in REFLEX die Option " Pauschalpreis" gewählt hat, soll dieser Teil der Überschrift natürlich auch nicht erscheinen. Daher wird diese Formel benutzt: Formatierung Inhalt Unterdrücken... {mauffu.PauschPreisJN}=1 Wenn also Pauschalpreis gewählt wurde, diesen Bereich bitteschön unterdrücken! Gruppenkopf #1 A Dieser Bereich stellt die Kapitelüberschriften dar. Die Kapitel in diesem Beispiel-Report wurden als Gruppen definiert, d.h. daß CrystalReports alle Positionen mit der gleichen Kapitelnummer (Feld {MaufposPosNr}) automatisch zusammengefaßt werden. Der Bereich Gruppenkopf #1 A wird dementsprechend nur gedruckt, wenn ein neues Kapitel beginnt. Damit die (falsche aber theoretisch vorkommende) Angabe des Kapitels 0 unterdrückt wird, wird dieser Wert in die Formel aufgenommen. Druck einer Position unterdrücken: In REFLEX kann der Benutzer jede einzelne Position vom Drucken ausschließen, d.h. es gibt ein Kennzeichen, mit man den Druck einer Position unterdrücken kann. Auch dieses wurde in der Formel berücksichtigt mit {maufpo.DruckKennz}=0. Formatierung Inhalt Unterdrücken... {maufpo.PosNr}=0 or {maufpo.DruckKennz}=0 Detail A Hier werden die einzelnen Positionen ausgedruckt. Als Texte werden die Texte aus den ArtikelTextstamm benutzt, also nicht die Artikelbezeichnung aus den Artikelstammdatei! Außerdem soll natürlich der Text in der Sprache erscheinen, die im Angebotskopf ausgewählt wurde: Formatierung Inhalt Unterdrücken... {marttext.Sprache} <> {maufko.Sprache} or {maufpo.DruckKennz}=0 Bedienungsanleitung REFLEX Formularanpassung F-35 Der Einzelpreis einer Position darf nur erscheinen, wenn kein Pauschalpreis angegeben ist, weil es ja keinen Sinn macht, Einzelpreise auszuweisen und am Schluß dann doch einen Pauschalpreis auszugeben! Also: Unterdrücken des Einzelpreises wenn die Option "Pauschalpreis" gewählt wurde: Formatierung Inhalt Unterdrücken... {mauffu.PauschPreisJN}=1 Detail B Ausdruck der Stunden bei Positionen mit Stundenangaben: Formatierung Unterdrücken... {maufpo.Artikelart} <> 4 {maufpo.StdSoll}=0 {maufpo.UntPosNr}=0 {maufpo.DruckKennz}=0 Inhalt {maufpo.Artikelart} <> 4 or {maufpo.StdSoll}=0 or {maufpo.UntPosNr}=0 or {maufpo.DruckKennz}=0 Artikelart 4 = Arbeitszeit Keine Stundenangaben Keine Positition! Einzelpreise nicht drucken Detail C Text, der manuell zu einer Position hinzugefügt wurde. Wenn in der jeweiligen Position noch ein manueller Text angegeben wurde, soll dieser unter dem Artikeltext erscheinen. Formatierung Inhalt Unterdrücken... {maufpo.DruckKennz}=0 Gruppenfuß #1 A Die Zwischensumme pro Kapitel wird über CrystalReports errechnet. Dahinter verbirgt sich eine Formel Sum(...). Die Zwischensumme kann man übrigens ganz einfach einfügen, wenn man auf einem numerischen Feld die rechte Maustaste drückt und aus dem Menü "Gruppenergebnis einfügen" wählt. Formatierung Inhalt Unterdrücken... Sum ({maufpo.GesBetrag}, {maufpo.PosNr})=0 or {mauffu.PauschPreisJN}=1 Wird unterdrückt, wenn die Summe der Gruppe (Sum...() = Gruppensumme) Null ist oder wenn Pauschalpreis=Ja angewählt wurde. Bedienungsanleitung REFLEX Formularanpassung F-36 Berichtfuß A Die Summen der Angebotspositionen: Formatierung Inhalt Unterdrücken... {mauffu.DruckOptGesBetr}=0 or {mauffu.GesBetrag}={mauffu.PauschBetrag1} Soll unterdrückt werden, wenn die Druckoption "Gesamtpreis drucken" nicht ausgewählt wurde {mauffu.DruckOptGesBetr}=0 oder der Gesamtbetrag mit dem Pauschalbetrag identisch ist {mauffu.GesBetrag}={mauffu.PauschBetrag1}. Berichtfuß B Frachtkosten: Soll unterdrückt werden, wenn der Betrag auf Null steht oder wenn die Druckoption "Gesamtpreis drucken" nicht ausgewählt wurde. Formatierung Inhalt Unterdrücken... {mauffu.PortoBetrag}=0 or {mauffu.DruckOptGesBetr}=0 Berichtfuß C Versicherungskosten: Soll unterdrückt werden, wenn der Betrag auf Null steht oder wenn die Druckoption "Gesamtpreis drucken" nicht ausgewählt wurde. Formatierung Inhalt Unterdrücken... {mauffu.VersichBetrag}=0 or {mauffu.DruckOptGesBetr}=0 Berichtfuß D Der Netto-Betrag soll unterdrückt werden, wenn die Druckoption "Gesamtpreis drucken" nicht ausgewählt wurde oder der Gesamtbetrag mit dem Pauschalbetrag identisch ist: Formatierung Inhalt Unterdrücken... {mauffu.NettoBetrag1}={mauffu.P auschBetrag1} or {mauffu.DruckOptGesBetr}=0 Berichtfuß E Mehrwertsteuer: Soll unterdrückt werden, wenn der Betrag auf Null steht oder wenn die Druckoption "Gesamtpreis drucken" nicht ausgewählt wurde. Formatierung Inhalt Unterdrücken... {mauffu.DruckOptGesBetr}=0 or {mauffu.MwstBetrag1}=0 Bedienungsanleitung REFLEX Formularanpassung F-37 Berichtfuß F Gesamtbetrag des Angebots: Soll unterdrückt werden, wenn der Betrag auf Null steht. Formatierung Inhalt Unterdrücken... {mauffu.DruckOptGesBetr}=0 Berichtfuß G Zahlungskonditionen (Text): Soll unterdrückt werden, wenn das Feld leer ist. Formatierung Inhalt Unterdrücken... {mauffu.ZahlBedText}="" Berichtfuß H Abschließender Text aus Angebotsfuß: Keine Formel notwendig, wird immer gedruckt. Seitenfuß Firmeninformationen auf jeder Seite unten. Wichtiger Tip für die mehrsprachige Auslegung von Formularen: Wenn Sie wollen, dass ein Formular (Angebot, Auftrag, Rechnung usw.) für mehrere Sprachen verwendet werden kann, dann dürfen Sie keine Textfelder verwenden! Warum? Nun ja, Textfelder enthalten ja einen konstanten Text, also einen Text, den Sie bei der Erstellung des Reports fest vorgegeben haben. Wenn dieser Text aber schon bei der Reporterstellung festgelegt wurden, wie soll er sich dann dynamisch eine bestimmte Sprache anpassen? Das geht ja nicht! Eben. Die Lösung: Die Lösung für das Sprachproblem liegt in den Formeln. Formeln sind ja Felder, die einen beliebigen Inhalt haben können, die also auch Text beinhalten können. Ausserdem kann man Formeln auch variieren, abhängig von bestimmten Umständen. Und genau diese Eigenschaft können wir nutzen, um unterschiedliche Sprachen zu benutzen! Wie? Im Grunde genommen ist es ganz einfach: Wir müssen in der Formel “nur” abfragen, welches Sprachkennzeichen in unserem Auftrag/unserer Rechnung hinterlegt ist und abhängig davon den Text festlegen: Wenn die Sprache DEUTSCH ist, dann drucke “Angebot” ansonsten Wenn die Sprache ENGLISCH ist, dann drucke “Offer” ansonsten Wenn die Sprache FRANZÖSICH ist, dann drucke “Offerte” Umgesetzt auf die Crystal-Reports-Formelsprache lautet die Formel: if {MAufKo.Sprache} = “D” then Bedienungsanleitung REFLEX Formularanpassung F-38 “Angebot” else if {MAufKo.Sprache} = “E” then “Offer” else if {MAufKo.Sprache} = “F” then “Offerte” Auf diese Art und Weise können Sie alle konstanten Texte des Reports durch Formeln ersetzen! Einschränkung: Leider sind die Formeln in Crystal-Reports 8.5 auf maximal 255 Zeichen pro Formel beschränkt! Erst ab der Version 10 kann man in Formeln auch Memo-Felder verwenden! Bedienungsanleitung REFLEX Formularanpassung F-39 Angebot Variante 2 In diesem Kapitel wird ein sog. "Einfaches Angebot" erstellt. Einfach soll hier nicht heißen, dass die Erstellung des Formulares einfach ist, sondern dass das Ergebnis (der Ausdruck) einen einfachen und klaren Aufbau hat. Sie werden später noch sehen, dass es einigen Aufwand bedeutet, aus dem komplexen Datenbestand eines REFLEX-Auftrags eine "Essenz" herauszuholen. Anforderungen an das Formular Das Angebotsformular soll in ein bestehendes Formular eingedruckt werden. Als Schriftart soll durchgängig Arial verwendet werden, die normalen Texte haben dabei eine Schriftgröße von 11 Punkt, Überschriften etc. können fett mit 12 Punkt gesetzt werden. Einige Besonderheiten soll das Formular haben: c. Die REFLEX-Kapitelnummerierung soll nicht ausgedruckt werden. d. Es sollen prinzipiell nur 2 Kapitel verwendet werden: Im Kapitel 1 wird das verwendete Equipment angebeben, also alle Mietgeräte und ggf. Verbrauchsmaterial/Verkaufsgeräte. Im Kapitel 2 wird (optional) der Aufwand für Aufbau, Abbau, Personal usw. angegeben. Sinn der Sache: Im Formular sollen zuerst die Artikel aufgeführt werden, eine Zwischensumme, ggf. der Rabatt aufgeführt werden, dann anschließend soll das Personal, Aufbau, Abbau usw. ohne Rabatt usw. aufgeführt werden. e. In den Positionen wird immer der unrabattierte Nettobetrag angedruckt. f. Der Rabatt wird als Gesamtrabatt unter den Positionen angedruckt. g. Es wird nur der Netto-Betrag ausgedruckt, die Mwst. wird nicht extra ausgewiesen. Auf der nächsten Seite sehen Sie einen Musterausdruck eines Angebots. Bedienungsanleitung REFLEX Formularanpassung F-40 Bedienungsanleitung REFLEX Formularanpassung In Crystal-Reports sieht das Ganze so aus: Berichtkopf-Bereiche: Bericht-Details: Berichtsfuß-Bereiche: Auf den folgenden Seiten wollen wir uns die einzelnen Bereiche einmal genauer anschauen. F-41 Bedienungsanleitung REFLEX Formularanpassung Die Verknüpfungen der Tabellen im Report: F-42 Bedienungsanleitung REFLEX Formularanpassung F-43 Berichts- und Seitenkopf-Bereiche Aufbau: 1 In diesem Bereich wird die Adresse ausgedruckt. Beim Anlegen des Auftrags hat REFLEX die Daten aus der Adressdatei in den Auftragskopf (Tabelle MAufKo) eingemischt. Theoretisch könnte der Anwender die Adresse im Auftrag noch ändern oder überschreiben, was aber (außer bei Einmalkunden, Pauschaladressen usw.) nicht empfehlenswert ist. Daher werden die Daten nicht direkt aus der Adresstabelle (ADR) geholt, sondern aus dem Auftragskopf (MAUFKO). Das Adressfeld ist ja ein sog. Memo-Feld, in dem mehrere Zeilen untereinander stehen könnten. Wenn man nicht in ein vorgegebenes Formular eindrucken muß, kann man CrystalReports anweisen, das Feld automatisch in der Höhe an die enthaltenen Zeilen anzupassen, d.h. die Feldhöhe ändert sich automatisch, wenn mehrere Zeilen im Feld enthalten sind. Wichtig: Da man in diesem Beispiel in ein bestehendes Formular eindrucken muß, in dem die Zeilenpositionen vorgegeben sind, kann man die Adresse nicht dynamisch vergrößern lassen, sondern muß die Größe (Höhe) direkt im Report angeben. Würde man zulassen, daß sich das Adressfeld automatisch auf mehrere Zeilen erweitern würde, so würden sich die nachfolgenden Zeilen ja nach unten verschieben und der genaue Eindruck in das vorgegebene Formular wäre nicht mehr gegeben! Vorgehensweise: Klicken Sie mit der rechten Maustaste auf das Feld. Aus dem Menü wählen Sie "Feld formatieren" aus. In dem Dialogfenster der Formateinstellungen darf die Option "Kann größer werden" nicht angekreuzt sein! Wenn Sie immer zwei Adresszeilen ausdrucken wollen, können Sie in der Feldformatierung auch wählen " Kann größer werden", aber dann eine maximale Zeilenanzahl im Formatfenster angeben. Bedienungsanleitung REFLEX Formularanpassung 2 F-44 Hier wird das Feld des Ansprechpartners aus dem Auftrag (Tabelle MAUFKO) angegeben. Um zu verhindern, dass eine leere Zeile gedruckt wird, wenn es gar keinen Ansprechpartner gibt, könnte man im Formatfenster des Bereiches angeben "Leeren Bereich unterdrücken". In unserem Fall geht das aber nicht: Da man in diesem Beispiel in ein bestehendes Formular eindrucken muss, in dem die Zeilenpositionen vorgegeben sind, kann man diese Zeile nicht dynamisch unterdrücken lassen, weil sich die nachfolgenden Zeilen ja nach oben verschieben würden und der genaue Eindruck in das vorgegebene Formular nicht mehr gegeben wäre! 3 Hier wird die Straße und PLZ/Ort ausgedruckt. Damit die Postleitzahl und der Ort immer nur von einem Leerzeichen getrennt werden, wurden diese beiden Felder in ein Textfeld eingebettet. 4 Hier wird das Druckdatum angegeben, und zwar das entsprechende Feld aus der Datenbank {MAUFKO.DruckDat}. Das gibt dem Benutzer die Möglichkeit, das Angebot später auszudrucken mit dem originalen Druckdatum. Würde man das Datumsfeld von CrystalReports {PrintDate} verwenden, so würde immer das aktuelle Tagesdatum angedruckt werden. {PrintDate} eignet sich dafür besser bei Listen, auf denen man den aktuellen Stand ausdrucken will. 5 Hier wird die Adressnummer ausgedruckt. Alternativ dazu könnte man auch die Kundennummer (Debitorennummer aus der Buchhaltung) ausdrucken. Zwei Gründe sprechen aber dagegen: a. Da Interessenten oft noch gar keine Kundennummer haben, würde hier immer 0 (oder nichts) ausgedruckt werden. b. Für Einmalkunden vergibt man oft Pauschal-Kundennummern, d.h. mehrere Adressen haben die selbe Kundennummer. Die Adressnummer wird linksbündig ausgedruckt. Da CrystalReports numerische Felder standardmäßig rechtsbündig darstellt, müssen Sie die Formatierung entsprechend ändern (Feld anklicken, in der Formatleiste oben "Links ausrichten" auswählen). Dasselbe gilt für die Verwendung des Tausender-Trennzeichens, das man vermutlich bei der Adressnummer nicht will. 6 Auftragsnummer, s.o. 7 Dieses Text "Angebot" ist eine einfaches Textfeld. Abhängig vom Auftragsstatus könnte man auch alternativ "Anfrage" oder "Angebot" ausdrucken. Dazu müsste man eine Formel bauen: if {MaufKo.StatusNr}=3 then "Angebot" if {MaufKo.StatusNr}=7 then "Anfrage" Diese Formel könnte man dann anstelle des konstanten Textfeldes einbinden. 8 Hier wird die persönliche Anrede angegeben. Es wird eine Formel verwendet, die prüft, ob überhaupt eine persönliche Anrede vorhanden ist oder nicht. Abhängig davon wird entweder die persönliche Anrede gedruckt oder die Floskel "Sehr geehrte Damen und Herren": if {adr.PersAnr}="" then "Sehr geehrte Damen und Herren," else "Sehr geehrte" + {adr.PersAnr} + "," Bedienungsanleitung REFLEX Formularanpassung F-45 Beachten Sie, dass diese Formel davon ausgeht, das man im Adresstamm die persönliche Anrede in der Form "r Herr XXX" bzw. " Frau XXX" angibt! Wenn bei Ihnen dort die komplette Anrede steht, müssen Sie natürlich das „Sehr geehrte...“ nicht verwenden! 9 Der Einleitungstext wurde hier als Formel aufgebaut. Alternativ dazu wäre auch denkbar, daß man einfach den Einleitungstext aus dem Textfeld des Auftrags {MaufKo.Text} übernimmt und hier angibt. Im Einleitungstext ist eine Formel {@VeranstZeitraumText} enthalten, die den angegebenen Veranstaltungszeitraum prüft und ggf. "Am" bzw. "Von-Bis" als Textausgabe erzeugt: if {maufko.VeranstVonDat}={maufko.VeranstBisDat} then "am " + ToText( {maufko.VeranstVonDat} ) else "von " + ToText( {maufko.VeranstVonDat} ) + " bis " + ToText( {maufko.VeranstBisDat} ) 10 Hier werden die Auftrags-Termine der Miete {MaufKo.DatumVon} und {MaufKo.DatumBis } angegeben. Eine Besonderheit stellt der Text vor dem VON-Datum dar: Es wird hier das Feld Versandart {MaufKo.Versandart} benutzt. Der Anwender muß hier also eine Angabe wie "Abholung:", "Aufbau:", "Zufuhr:" o.ä. in das Angebot eingeben! Für das BIS-Datum wäre eine ähnliche Lösung denkbar, z.B. könnte man das Feld {MaufKo.VersandText} dazu benutzen, um z.B. "Rückgabe:", "Abholung:" o.ä. zu definieren. 11 Hier wird nun der Kopftext aus dem Angebot ausgedruckt. Dieses Feld ist so formatiert, daß es sich automatisch der gespeicherten Zeilenanzahl anpaßt. Vorgehensweise: Klicken Sie mit der rechten Maustaste auf das Feld. Aus dem Menü wählen Sie "Feld formatieren" aus. In dem Dialogfenster der Formateinstellungen muß die Option "Kann größer werden" angekreuzt sein! 12 Dieser Bereich "Seitenkopf" wird auf den Folgeseiten gedruckt. Je größer man den Bereich im Reporteditor erstellt, desto weiter unten beginnt der Ausdruck auf den Seiten! Damit der Druck auf der ersten Seite jedoch unterdrückt wird, muß man im Formatfenster des Bereiches eine Unterdrückungs-Formel angeben, die den Ausdruck auf der ersten Seite unterdrückt. Bedienungsanleitung REFLEX Formularanpassung F-46 Vorgehensweise: 13 Hier wird die aktuelle Seitennummer und die Gesamtseitenzahl angedruckt. Es handelt sich um ein Textfeld, in das die speziellen CrystalReports-Felder [PageNumer] und [Gesamtseitenanzahl] eingebettet werden. Hinweis: Die Verwendung von [Gesamtseitenanzahl] hat einen gravierenden Nachteil: CrystalReports muss nämlich, um diese Zahl zu ermitteln, den Report zuerst komplett intern berechnen, bevor es zur Anzeige/zum Ausdruck kommen kann. Der Report muss also zweimal ausgeführt werden, einmal intern (ohne äußerliche Anzeichen) und dann beim eigentlichen Druck. Das kann bei mehrseitigen Angeboten leider etwas dauern, so dass die Performance (Neudeutsch: Geschwindigkeit) beim Ausdruck darunter leidet! Zu deutsch: Der Ausdruck dauert viel länger! Detail-Bereiche Aufbau: Bedienungsanleitung REFLEX Formularanpassung F-47 1 Der Gruppenkopf “1a” wird nicht benötigt und wird daher unterdrückt. 2 Der Gruppenkopf “1b” wird zwar nicht benötigt, bietet jedoch die Möglichkeit, unterschiedliche Bereiche (Kapitel) voneinander optisch zu trennen. 3 Das Wort “alternativ” wird nur gedruckt, wenn es sich um eine Alternativ-Position handelt. Die Formel zum Unterdrücken des Bereichs lautet dementsprechend: {MaufPo.Alternativ}=0 4 Hier werden die Felder des Positionsbereichs angegeben, die ausgedruckt werden sollen. 5 Dieser Bereich wird nur gedruckt bei der Artikelart “Arbeitszeit”. 6 Hier wird der Text angedruckt, der dem jeweiligen Artikel in den Artikelstammdaten (Texte) zugeordnet ist. REFLEX mischt diesen Text beim Anlegen der Position automatisch zu. 7 Positionssumme ohne Rabatt. 8 Rabatt-Prozent und -Betrag 9 Hier steht ggf. der Positionsrabatt (aus dem Auftragsfuß!!!) und der Rabattbetrag (errechnet aus der Differenz zwischen Summe der Positionen und Summe der Rabatte!). Berichts- und Seitenfuß-Bereiche Aufbau: 1 Die Netto-Summe der Positionen 2 Frachtkosten, wenn vorhanden. 3 Versicherungskosten, wenn vorhanden. 4 Netto-Betrag, wenn von der Netto-Summe der Positionen abweichend. 5 Dieser Bereich mit der Mwst.-Klausel wird nur gedruckt, wenn eine Mehrwertsteuer angegeben wurde. 6 Konstante Texte. Bedienungsanleitung REFLEX Formularanpassung F-48 7 Fußtext aus dem Angebot. 8 Hier wird der Name des Sachbearbeiters angeben, der direkt aus der Personentabelle (PERS) eingemischt wird. Bedienungsanleitung REFLEX Formularanpassung F-49 Erstellen eines Lieferscheins Diese Tabellen werden benötigt: Name Beschreibung MAUFKO Auftragskopf MAUFFU Auftragsfuss LSCHKO Lieferschein-Kopf LSCHPO Lieferschein-Positionen MART Artikel, Material MARTEINZ Einzelartikel (wenn man z.B. Seriennummern drucken will) MAUFLIAN Lieferanschrift zu dem Auftrag, wenn man die Lieferanschrift drucken will. MARTTEXT Textbausteine zu Artikeln, wenn man Artikeltexte drucken will. Hinweis: REFLEX schreibt die Artikeltexte für Lieferscheine automatisch in die Lieferscheinpositionen in das Feld LSCHPO.TEXT, so dass man eigentlich keine eigene Verknüpfung zu dieser Tabelle benötigt! Bedienungsanleitung REFLEX Formularanpassung F-50 Erstellen einer Rechung Name Beschreibung RECHKO Rechnungskopf RECHFU Rechnungsfuss RECHPO Rechnungspositionen MARTTEXT Textbausteine zu Artikeln, wenn man Artikeltexte drucken will. Hinweis: REFLEX schreibt die Artikeltexte für Rechnungen automatisch in die Lieferscheinpositionen in das Feld RECHPO.TEXT, so dass man eigentlich keine eigene Verknüpfung zu dieser Tabelle benötigt! Bedienungsanleitung REFLEX Formularanpassung F.1.9 F-51 Tips und Tricks Verhindern, daß auf der letzten Seite die Überschrift erscheint Im Angebot/Auftrag hat man das Problem, daß eine Überschrift über den Positionsteil (“Pos., Menge, Bezeichnung, Preis”) manchmal auf der letzten Seite erscheint, obwohl gar keine Position mehr folgt. In CrystalReports hat man die Möglichkeit, die Seitennummer der letzten Seite mit TotalPageCount abzufragen und diese mit der aktuellen Seite zu vergleichen, dazu gibt es die Variable PageNumber . Zweite Lösung: Mit der Funktion NextIsNull( {Tabelle.IndexFeld} ) kann man in der Formatierung eines Bereiches abfragen, ob es noch einen weiteren Datensatz gibt. Diese Funktion muß man dazu in der Formatierung eines Bereiches mit dem Formeleditor einsetzen, um diesen Bereich zu unterdrücken. Fortlaufender Übertrag im Angebots-/Auftragsformular Wenn man einen Übertrag im Formular unterbringen will, so stößt man dabei auf 2 Hauptprobleme: c. CrystalReports hat zwar eine Summenfunktion, die Summe kann man aber leider nicht auf dem Seitenfuß in Form eines Übertrags unterbringen, weil CR das Feld in diesem Bereich einfach nicht annimmt. d. Selbst wenn man die Summenfunktion benutzen könnte, müsste man hier irgendwie berücksichtigen, daß es in den Positionen Alternativ-Positionen gibt, die nicht in die Summe eingerechnet werden dürfen. Man kommt also um etwas “Handarbeit” nicht herum! Und das geht so: Es werden drei Formeln erstellt (Die Formelnamen sind nur beispielhaft!): Formel “ZwiSuNull” Diese Formel wird im Reportkopf plaziert und stellt eine Variable ZwiSumme auf 0: WhilePrintingRecords; CurrencyVar Zwischensumme; Zwischensumme := 0; Diese Variable Zwischensumme wird unsere Zwischensumme beinhalten. Die Anweisung WhilePrintingRecords in der ersten Zeile weist CrystalReports an, die Formel während des Druckvorgangs aufzurufen. Bedienungsanleitung REFLEX Formularanpassung F-52 Formel “ZwiSuAdd” Diese Formel wird im Detailbereich des Reports plaziert und addiert in jeder Position in die Variable ZwiSumme die Positionsbeträge auf: WhilePrintingRecords; CurrencyVar Zwischensumme; If {maufpo.Alternativ} <> 1 then Zwischensumme := Zwischensumme+{maufpo.GesBetrag}; Diese Addition wird jedoch nur durchgeführt, wenn es keine Alternativ-Position ist! Im Feld {maufpo.Alternativ} steht 1, wenn eine Alternativ-Position angewählt wurde. Formel “ZwiSuPrint” Diese Formel wird im Seitenfuß (und ggf. im Seitenkopf) plaziert und druckt die Variable ZwiSumme aus. WhilePrintingRecords; CurrencyVar Zwischensumme; Zwischensumme; Das Ergebnis dieser Formel ist einfach die aufaddierte Zwischensumme, also wird diese Zwischensumme gedruckt, wenn Sie die Formel an die gewünschte Position im Kopf- oder Fußbereich bringen. Bedienungsanleitung REFLEX Formularanpassung F-53 F.2 Formulartexte Normalerweise wollen Sie auf einem Angebot, Auftrag usw. Ihren Firmennamen, die Anschrift usw. ausgedruckt haben. Damit Sie diese nicht direkt in die Druckformulare (mit CrystalReports) einfügen müssen, haben die mitgelieferten Standardformulare Platzhalter (Variablen), die mit Ihren Texten gefüllt werden. Was sind Formulartexte? Formulartexte sind Textfelder, die Sie mit REFLEX in der Datenbank speichern und dann auf CrystalReports-Formularen verwenden können. Sinn der Sache ist es, dass Sie Ihren Briefkopf oder – Fuß mit Variablen (Platzhaltern) versehen können, die dann vom Programm beim Ausführen des Drucks/der Vorschau mit Inhalten gefüllt werden. Speziell Felder Diese Felder werden direkt vom Programm gefüllt und können in jedem Report/Formular verwendet werden: UserKurzname UserVorname UserNachname Kurzname des aktuell am Programm angemeldeten Benutzers Vorname des aktuell am Programm angemeldeten Benutzers Nachname des aktuell am Programm angemeldeten Benutzers Die Anwendung der Felder in CrystalReports wird unten beschrieben. Bedienungsanleitung REFLEX Formularanpassung Sie können die Formulartexte in REFLEX mit „Datei Optionen Programmparameter und Einstellungen“ eingeben oder verändern: Das Eingabefenster: Die kursiven Namen neben den Eingabefeldern zeigen die Formelfelder für CrystalReports (s.u.). Die angezeigte Schriftart ist nur symbolisch gemeint, die verwendete Schriftart legen Sie in CrystalReports fest! F-54 Bedienungsanleitung REFLEX Formularanpassung F-55 FirmaName1 FirmaName2 FirmaName3 FirmaStr FirmaLand FirmaPLZ FirmaOrt FirmaAbsenderZeile FirmaTel FirmaFax FirmaInternet FirmaEMail FirmaFuss1 FirmaFuss2 FirmaFuss3 FirmaFuss4 FirmaFuss5 FirmaFuss6 FirmaFuss7 FirmaFuss8 FirmaFuss9 FirmaFuss10 IDNummer Einfügen der Formelfelder in CrystalReports: Die Variablen werden in CrystalReports behandelt wie Formelfelder. Diese Formelfelder müssen bestimmte Namen haben, damit das Programm sie beim Drucken finden und ausfüllen kann. Die Formelfelder sind Textfelder, die man anfangs z.B. mit einem leeren Text füllt (man kann aber auch einen beliebigen Text in die Formel schreiben, weil dieser Text ja später vom Programm überschrieben wird!). Wichtig: Damit CrystalReports die Felder als Textfelder erkennt, muss man die Formel mit doppelten Anführungszeichen ( “ )beginnen und beenden! Wenn Sie ein Formelfeld einfügen wollen, so öffnen Sie den gewünschten Report mit CrystalReports und klicken dann auf... Bedienungsanleitung REFLEX Formularanpassung F-56 ...geben der Formel also einen der festgelegten Namen und füllen die Formel mit einem leeren Text, dargestellt durch zwei Hochkommas. So legen Sie alle gewünschten Formeln an. Dann fügen Sie die Formel in Ihren Report ein. Bedienungsanleitung REFLEX Formularanpassung Beispiel: F-57