AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fast Report - Leerzeile einfügen bei fehlendem Datensatz

Fast Report - Leerzeile einfügen bei fehlendem Datensatz

Ein Thema von Jens Hartmann · begonnen am 3. Dez 2014 · letzter Beitrag vom 5. Dez 2014
Antwort Antwort
Dejan Vu
(Gast)

n/a Beiträge
 
#1

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 3. Dez 2014, 08:38
Code:
select n.LaufendeNummer, d.* 
  from AlleNummern n
       left join MeineDaten d
         on n.LaufendeNummer = d.Nummer
  where n.LaufendeNummer between :Anfang and :Ende
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.

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.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 3. Dez 2014, 08:48
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 3. Dez 2014, 09:14
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
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 3. Dez 2014, 09:19
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 3. Dez 2014, 09:29
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 3. Dez 2014, 09:43
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.
Das ist doch genau das was ich sage "dem Report entsprechende Informationen liefern". Wie und wann und wieso ist egal, der Report bekommt einfach alle Informationen übermittelt.

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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 3. Dez 2014, 10:29
Ein wenig richtet sich das auch danach, wie einfach ich die Forderung umsetzen kann und wie flexibel ich auf Erweiterungen reagieren muss. Zeit ist schließlich Geld und die kürzeste Verbindung zwischen zwei Punkten ist nun einmal eine Gerade (ja ja, die Kugel, aber auch da ist es eine Gerade).

Ergo würde ich 'AlleNummern' (natürlich mit einem sinnvollen Namen) als Tabelle anlegen. Das geht ratzfatz per Hand (die 512 Nummern eingegeben -pah-) oder mit einem Skript in 1-2 Minuten. Report-SQL angepasst => fertig. Ändert sich irgend die maximale Anzahl der Störmeldungen? Tabelle anpassen.

Arbeitszeit? 10 Minuten in total.
Bietet mir das Reporting-Framework etwas ähnlich Effizientes an? Dann lieber über das Framework.

Das schöne an der SQL-Lösung ist -finde ich- das ich bei Änderungen an einer Stelle eingreife, nämlich an der Report-View (die ich ja angelegt habe).

Wenn ich natürlich eine Reporting-Server-Lösung verwende, kann ich auch den Report pimpen, neu einspielen, fertig. Kommt aufs Gleiche raus. Habe ich dagegen Client-Lösungen mit z.B. FastReport... tja, dann wird die Erweiterung des Reports schon ein kleiner Klimmzug. etc. etc.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 3. Dez 2014, 19:17
Also so richtig weiter komme ich nicht. Ich muss immer nur einen Leere Zeile zufügen, wenn die Meldenummer nicht fortlaufend ist. Irgendwie geht das mit SQL aber nicht. Daher vermute ich, muss ich das im Dataset machen. Geht das irgendwie?

Gruß jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 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-2025 by Thomas Breitkreuz