![]() |
Datenbank: Access • Version: 2007 • Zugriff über: ADO
Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Hallo zusammen,
ich erstelle mit FastReport einen Report, in dem eine Tabelle über eine MasterDataBand angezeigt weird. Funktioniert auch echt gut. Die Tabelle die ich Anzeigen möchte, verfügt über einen Primärschlüssel, den ich nicht zur Anzeige bringen. Es gibt aber eine weiteres Feld, welches eine fortlaufende Nummerierung enthält (z.B. 1 - 100). Es kann vorkommen, das die Wert 1 - 5 enthalten sind, der Wert 6 fehlt und dann der Wert 7-22 wieder vorhanden ist. Beispiel: 1 Feld(1) Feld(2) Feld(3) 2 Feld(1) Feld(2) Feld(3) 3 Feld(1) Feld(2) Feld(3) 4 Feld(1) Feld(2) Feld(3) 5 Feld(1) Feld(2) Feld(3) 7 Feld(1) Feld(2) Feld(3) 8 Feld(1) Feld(2) Feld(3) Bei der Ausgabe kann man somit nicht auf einen Blick erkennen, das Zeile 6 noch zur Verfügung steht. Wie kann ich hier im Report eine Leerzeile generieren lassen. So sollte es dann aussehen: Beispiel: 1 Feld(1) Feld(2) Feld(3) 2 Feld(1) Feld(2) Feld(3) 3 Feld(1) Feld(2) Feld(3) 4 Feld(1) Feld(2) Feld(3) 5 Feld(1) Feld(2) Feld(3) 7 Feld(1) Feld(2) Feld(3) 8 Feld(1) Feld(2) Feld(3) Vorab vielen Dank und Gruß Jens |
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Du musst diesen "leeren" Datensatz dem Report zur Verfügung stellen. Also einfach vor dem Report aktiv werden.
|
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Nur eine Idee, und dafür müsstest Du im Report ein wenig programmieren: Definiere Dir eine lokale Variable für die fortlaufende Nummer. Bei jedem Datensatz schaust Du nun, ob dessen Nummer der gemerkten + 1 entspricht. Falls nicht, müsste die Höhe aller Komponenten der Zeile des Bandes verdoppelt und die Ausgabe am unteren Rand ausgerichtet werden. Falls doch, dann wieder auf Standard zurückstellen. Anschließend die Variable in jedem Fall mit der aktuellen Nummer belegen.
|
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Zitat:
Zitat:
|
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Code:
So könnte man die Reportquelle erweitern, so daß Lücken entstehen. Ich persönlich bevorzuge die Variante, so wenig wie möglich Logik im Report selbst zu haben. Der ist für die Formatierung zuständig. Wobei...hmmm.. die Leerzeichen auch eine Formatierung sein könnten.
select n.LaufendeNummer, d.*
from AlleNummern n left join MeineDaten d on n.LaufendeNummer = d.Nummer where n.LaufendeNummer between :Anfang and :Ende In jedem Fall ist imho o.g. Variante die einfachste. @DeddyH: Bei deinem Lösungsansatz müsstest Du eventuell aus dem 'verdoppeln' ein 'ver-N-fachen' machen, denn wenn z.B. die Eintrage 6-123 fehlen, sind das dann u.U. mehr Lücken. Kommt aber drauf an. Allgemein würde ich sagen: Eine Lücke konstanter Größe, egal wie viele Nummern fehlen => DeddyH. Für jede fehlende Nummer eine Lücke => vielleicht meine. |
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Der Ansatz von Dejan Vu scheint mir auch am sinnvollsten und kann notfalls auch so aufgeblasen werden, dass große Lücken wieder auf eine Zeile eingedampft werden.
Aus der Anforderung ist mir allerdings nicht klar, was "am Ende" der Liste geschehen soll, hier ist ja auch eine "Lücke" bis 512. Davon abhängig müsste man sich überlegen, wie man "AlleNummern " aus dem Beispiel SQL befüllt bzw handhabt. |
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Die Variante von Dujan Vu werden ich mal probieren. ich persönlich würde das auch gerne aus dem Report rauslassen und im Programm verarbeiten.
Ich benötige eigentlich egal wie groß die Lücke ist nur einen einzige Leerzeile. Sinn ist es nur auf einen Blick erkennen zu können, ob noch Reserve Meldungen vorhanden sind. Wie viele, spielt hier erstmal keine Rolle. Gruß Jens |
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Meiner Meinung nach ist es schlecht den Report dafür derart zu verbiegen. Da ist es besser zwischen der Abfrage und dem Report diese Lücken, je nach Gusto, in die Datenmenge einzufügen. Dadurch ergibt sich der geringste Aufwand bei der Abfrage und der Report-Gestaltung.
|
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Der Report wird ja mit eine geänderten Datenquelle nicht verbogen.
2 verschiedene Datenquellen (Views) 1 Report Je nach Datenquelle zeigt er Lücken an oder nicht. |
AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz
Zitat:
Das Verbiegen bezog sich auf den Vorschlag von DeddyH, wo der Report umständlich dahingehend programmiert werden muss. Das würde ich nur dann in Erwägung ziehen, wenn ich nur Zugriff auf den Report und nicht auf die Datenmenge habe. Das scheint hier aber nicht der Fall zu sein. Und eine andere View muss es nicht sein, geht aber logischerweise auch. Je nach Datenbank kann das von trivial bis schwierig sein. Darum wäre mein Favorit ein Vorbereiten der Datensätze in der Anwendung selber und diese dann dem Report zu übergeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz