CrystalReports: Rechnungsformular zu Auftragsformular umwandeln: Unterschied zwischen den Versionen
K (→Tabellen-Namen ändern) |
(→Tabellen-Namen ändern) |
||
Zeile 63: | Zeile 63: | ||
* Danach klicken Sie auf '''Aktualisieren'''. | * Danach klicken Sie auf '''Aktualisieren'''. | ||
− | [[Datei:CrystalReport_Bsp_Rechnung_Datenquellen2.png]] | + | [[Datei:CrystalReport_Bsp_Rechnung_Datenquellen2.png|600px]] |
CrystalReports hat nun festgestellt, dass es unterschiedliche Felder in den Tabellen gibt. Die Felder mit dem '''gleichen''' Namen konnten zugeordnet werden, Felder mit '''unterschiedlichen''' Namen müssen '''manuell zugeordnet''' werden: | CrystalReports hat nun festgestellt, dass es unterschiedliche Felder in den Tabellen gibt. Die Felder mit dem '''gleichen''' Namen konnten zugeordnet werden, Felder mit '''unterschiedlichen''' Namen müssen '''manuell zugeordnet''' werden: | ||
− | [[Datei:CrystalReport_Bsp_Rechnung_Datenquellen3.png]] | + | [[Datei:CrystalReport_Bsp_Rechnung_Datenquellen3.png|600px]] |
{| class="wikitable" style="text-align: left;" | {| class="wikitable" style="text-align: left;" |
Version vom 17. April 2014, 13:24 Uhr
Inhaltsverzeichnis
1 Allgemeines
Dieser Artikel gibt Tipps, wie man ein Formular (einen Report), das auf die Rechnungsdaten zugreift, so umbaut, dass daraus eine Auftragsbestätigung wird. Dazu öffnet man das Formular (die Report-Datei) mit Crystal-Reports im Formular-Ordner "Rechnung".
- Wichtig!
- Speichern Sie die Datei gleich unter einem anderen Namen im Formular-Ordner "Auftrag"! Überschreiben Sie niemals die Original-Datei!
- Dieser Artikel setzt Kenntnisse von Crystal-Reports voraus!
2 Datenbank-Zugriff
2.1 Anfangszustand
Ein Report für ein Rechnungsformular greift normalerweise auf diese Datenbank-Tabellen zu:
Tabelle | Beinhaltet |
---|---|
RECHKO | Rechnungskopf |
RECHFU | Rechnungsfuss, 1:1 verknüpft über die RECHNR mit dem Rechnungskopf |
RECHPO | Rechnungspositionen, 1:n verknüpft über die RECHNR mit dem Rechnungskopf |
MARTTEXT | Optional die Artikel-Textbausteine |
PERS | Optional die Personentabelle, wenn man. z.B. die EMail-Adresse des Bearbeiters auf der Rechnung drucken will. |
2.2 Tabellen-Namen ändern
Nun muss man die Namen der Tabellen ändern, so dass sie nicht mehr auf die Rechnungen verweisen sondern auf die Auftragsdaten. Das ist nicht ganz so einfach, weil die Struktur der Rechnungstabellen etwas anders ist als die der Auftragstabellen. So gibt es z.B. in den Rechnungstabellen das Feld RechNr als zentrales Verbindungsglied der Tabellen, im Auftrag ist es das Feld AuftrNr.
Tabelle | Beinhaltet |
---|---|
MAUFKO | Auftragskopf |
MAUFFU | Auftragsfuss, 1:1 verknüpft über die AUFTRNR mit dem Auftragskopf |
MAUFPO | Auftragspositionen, 1:n verknüpft über die AUFTRNR mit dem Auftragskopf |
Klicken Sie auf das Menü Datenbank --> Datenquellenpfad festlegen. Mit diesem Dialog kann man die Tabellen ersetzen:
- Im oberen Teil werden die Tabellen des Reports angezeigt
- Im unteren Teil klicken Sie auf den verwendeten Alias (z.B. "REFLEX") und öffnen den Baum bis zu den Tabellen.
- Dann klicken Sie im oberen Teil auf die Tabelle RECHKO und unten auf MAUFKO.
- Danach klicken Sie auf Aktualisieren.
CrystalReports hat nun festgestellt, dass es unterschiedliche Felder in den Tabellen gibt. Die Felder mit dem gleichen Namen konnten zugeordnet werden, Felder mit unterschiedlichen Namen müssen manuell zugeordnet werden:
Bisheriges Rechnungsfeld | Zugeordnetes Auftragsfeld |
---|---|
RECHNR | AUFTRNR |
RECHDAT | BESTDAT (Auftragsbestätigungsdatum). Sie können diese Zuordnung aber auch weglassen. |
Klicken Sie auf OK.
Wiederholen Sie diesen Vorgang für die Tabellen RECHFU-->MAUFFU und RECHPO-->MAUFPO.
- Wenn Sie Unterberichte im Report haben, müssen Sie diese Schritte auch für die Tabellen der Unterberichte ausführen!
Schließen Sie dann den Dialog Datenquellenpfad festlegen und speichern Sie die Report-Datei. Empfehlenswert ist es, jeden Stand erst einmal unter einer Versionsnummer ("Auftrag_V1" usw.) zu speichern, damit man notfalls auf die vorherige Version zugreifen kann.
2.3 Datenbank überprüfen
Nun sollte man CrystalReports dazu bringen, die Datenbak zu aktualisieren, damit die Felder, die es in der Auftragstabelle zusätzlich gibt, in die Report-Datei aufgenommen werden.
- Klicken Sie dazu auf das Menü Datenbank --> Datenbank überprüfen.
Dabei kann es Fehlermeldungen geben, weil bestimmte Felder nun nicht mehr gefunden werden. Beispielweise haben wir oben das Feld RECHDAT nicht zugeordnet, weil es im Auftrag dazu kein gleiches Gegenstück dazu gibt.
In diesem Beispiel zeigt die Meldung, dass in einem Feld auf RECHKO.DRUCKDAT Bezug genommen wird, ein Feld, das es nun nicht mehr gibt! In diesem Fall kann man die Formel
if IsNull({RechKO.DRUCKDAT}) or {RechKO.DRUCKDAT} < CDate(1900,1,1) then ToText({RECHKO.RECHDAT},"dd.MM.yyyy") else ToText({RechKO.DRUCKDAT},"dd.MM.yyyy");
einfach ersetzen durch:
ToText({RechKO.DRUCKDAT},"dd.MM.yyyy");
Haben Sie das Feld RechKO.DRUCKDAT in direkt Ihrem Report, wird es automatisch entfernt! Sie müssen dann ein passendes Feld der Auftragstabellen einfügen oder die Stelle komplett entfernen.
2.4 Tabellen-Aliase ändern
Dieser Schritt ist aus technischer Sicht nicht notwendig, sollte aber trotzdem durchgegführt werden:
Die Tabellen-Namen haben wird zwar geändert, in der Report-Datei heißen die Tabellen aber immer noch "RECH...", obwohl sie auf "MAUF..." verweisen! Das ist unschön und kann bei einer späteren Bearbeitung des Reports zu Verwirrung führen! Wir werden das deshalb korrigieren.
Klicken Sie dazu auf das Menü Datenbank --> Datenbank-Assistent. Rechts werden die Tabellen-Namen angezeigt.
Klicken Sie nacheinander auf die Tabellen
- RECHFU
- RECHKO
- RECHPO
und klicken mit der rechten Maustaste. Wählen Sie aus dem Popup-Menü Umbenennen und benennen die Namen entsprechen in "MAUF..." um:
3 Fertig
Ihr Report sollte nun funktionieren. Sie müssen nun noch die kosmetischen Änderungen ausführen, also z.B. den Begriff "Rechnung" durch "Auftrag" ersetzen usw.