FastReport Fehler, Ursachen, Behebung
Inhaltsverzeichnis
1 Fehler
Wie bei jedem umfangreichen Software-System gibt es auch bei der Report-Erstellung mit FastReport© jede Menge Fehler-Möglichkeiten.
Unserer Erfahrung nach sind die allermeisten Anwender-Fehler, nur selten ist FastReport schuld.
2 Daten, Tabellen
2.1 Tabelle wird im Report nicht angezeigt
Wenn eine bestimmte Tabelle wird im Report nicht angezeigt wird, obwohl sie eigentlich vorhanden sein müsste, müssen Sie diese Tabelle u.U. erst im Report auswählen. Siehe FastReport Dataset (Tabelle) wird im Report nicht angezeigt.
Wenn eine Tabelle nicht ausgewählt wird, kann es auch zu einer Fehlermeldung kommen:
Fehler im Ausdruck ´Tabellenname."Feld": Identifier expected
In diesem Fall wird der Report nicht ausgeführt. Anstelle der Daten kommen die Feldnamen des Reports oder auch gar nichts!
3 Bänder
3.1 Band wird nicht gedruckt, obwohl Daten vorhanden sind
Ein bestehende Report wurde geändert, z.B. ein Detail-Band wurde entfernt. Das Master-Band wird nicht gedruckt, obwohl Daten vorhanden sind.
Grund:
Das Master-Datenband wurde im Original-Report nicht gebraucht und daher dauerhaft ausgeblendet. Stellen Sie die Eigenschaft Visible von False auf True.
3.2 Im Report werden Felder gedruckt, die es gar nicht gibt
- Der Fall
- In einem Report (der einen Basis-Report benutzt), tauchen Feld mitten im Report auf, die es im Report eigentlich gar nicht gibt! Wo kommen die her?
- Ursache
- Das Problem war, dass in den Basis-Report neue Felder (Memo-Felder) eingefügt wurden. Dabei wurden die Namen der Felder von FastReport automatisch vergeben ("Memo1", "Memo2) usw.). Felder mit diesem Namen kommen jedoch auch im eigentlichen Report vor! Da kommt FastReport dann etwas durcheinander.
- Die Lösung
- Die sauberste Lösung ist, den Feldern im Basis-Report ein eindeutigen Namen zu geben, also z.B. statt "Memo1" besser "MemoBasisKopFirma". Dieser Name wird im Report sicherlich nicht vorkommen und es kommt zu keinen Namens-Kollisionen.
Siehe:
4 Felder
4.1 Anzahl Seitennummern ist 0
In einem Report gibt es ein Feld, in dem die aktuelle Seite und die Gesamt-Seitenanzahl im Kopf gedruckt werden. Die Gesamt-Seitenanzahl ist jedoch immer 0!
Das Feld hat folgenden Inhalt:
Stand: [Date] Seite [Page] von [TotalPages]
Beispiel:
Warum zeigt [TotalPages] immer 0 statt der Anzahl der Seiten?
- Grund
- Damit [TotalPages] funktioniert, muss man dem Report "sagen", dass er zuerst den Report intern durchrechnen soll. Erst danach weiß der Report, wie viele Seiten erzeugt werden!
- Dazu muss man den Report im Designer öffnen und dann auf das Menü Report⇒Optionen klicken. Dann schaltet man die Option Zweipass ein:
- Das Ergebnis:
4.2 Seitenzähler zeigt eine Seite mehr an als vorhanden sind
ACHTUNG! Wenn Sie die Top-Position im Code verschieben, kann das den Gesamt-Seitenzähler durcheinander bringen!
Angenommen, es gibt ein Feldobjekt im Detail-Band, das im Editor auf der Feldposition 3 cm liegt...
...und Sie verschieben es im Code auf "Top=0",
// Bei Mietartikeln den Mietpreisfaktor anzeigen, // bei Arbeitszeit die Stunden/Tage: // (Im Editor stehen die Felder übereinander im Band zur besseren Übersicht. Hier werden sie ganz nach oben versetzt mit .Top=0) PositionenMietFaktor.Visible := False; PositionenStundenSoll_BeiArbZeit.Visible := False; if <Positionen."Artikelart_1MT_2VK_3DL_4AZ"> = 1 then begin PositionenMietFaktor.Top := 0; PositionenMietFaktor.Visible := True; end; if <Positionen."Artikelart_1MT_2VK_3DL_4AZ"> = 4 then begin PositionenStundenSoll_BeiArbZeit.Top := 0; PositionenStundenSoll_BeiArbZeit.Visible := True; end;
...dann kann es passieren, dass der Gesamt-Seitenzähler eine Seite mehr angibt als es in Wirklichkeit sind!!!
4.3 Feld wird nicht oder irgendwo im Report gedruckt
Sie haben ein Feld-Objekt in den Report eingefügt, aber es erscheint nicht an der erwarteten Stelle?
Die wahrscheinlichste Ursache ist, dass das Feld nicht innerhalb eines Bandes positioniert wurde.
Beispiel 1:
In diesem Fall liegt das Feld außerhalb des Bandes "ChildStandardTextFuss"! Wenn man im Objekt-Inspektor genau hinschaut sieht man, dass die Top-Eigenschaft des Feldes 35,80 cm beträgt!
Da sich die Top-Eigenschaft relativ auf das Band bezieht, kann das nicht sein! Das Band ist nur 2,9 cm hoch!
Das Feld liegt also nicht auf dem Band sondern direkt auf der Seite ("Page1"). Es wird also nicht wie erwartet am Ende der Seite gedruckt sondern mitten im Report.
Beispiel 2:
Hier liegt das Feld im Kopf, aber außerhalb des Bandes:
Die Auswirkung:
5 Fehlermeldungen
5.1 Fehlermeldung "Alternativ nicht gefunden" in Rechnung
Wenn Sie einen als Auftragsformular erstellten Report kopieren und als Rechungsformular (-Grundlage) verwenden wollen, erhalten Sie eine Fehlermeldung wie diese:
Grund:
In Rechnungen gibt es kein Alternativ.
Lösung:
Entfernen Sie mit dem Report-Designer alle Verweise auf das Alternativ-Feld!
5.2 Fehler im Ausdruck ´Tabellenname."Feld": Identifier expected
Hier kann es mehrere Ursachen geben.
5.2.1 Tabelle im Report nicht ausgewählt
Wenn eine Tabelle nicht ausgewählt wird, kann es zu dieser Fehlermeldung kommen. In diesem Fall wird der Report nicht ausgeführt. Anstelle der Daten kommen die Feldnamen des Reports oder auch gar nichts!
Siehe FastReport Dataset (Tabelle) wird im Report nicht angezeigt.
5.2.2 Schreibfehler im Code
Wenn Sie im Code auf Datenbank-Felder verweisen und einen Schreibfehler haben, kommt auch diese Fehlermeldung.