Entwickler-Ecke

Datenbanken - Datensatznavigation im QuickReport


bruno01 - Do 19.06.08 17:08
Titel: Datensatznavigation im QuickReport
Hallo zusammen,
ich brauche einmal Hilfe. Ich habe eine kleine DB-Anwendung mit Delphi 3 Prof und einer Paradoxtabelle geschrieben (zur Archivierung von Flugmodellen), nun soll für Ausstellungen über QuickReport von einzelnen Datensätzen eine Austellungkarte gedruckt werden. Leider kann ich nur den ersten Datensatz Drucken und die übrigen Datensätze nicht. Im Forum und in der Literatur habe ich nichts gefunden, was mir dabei hilft.
Kann mir von Euch jemand weter helfen!
Danke für eine Antwort.
Grüße
bruno01


Moderiert von user profile iconNarses: Topic aus Dateizugriff verschoben am Do 19.06.2008 um 17:52


bockwurst - Fr 20.06.08 16:53

Schau mal bitte bei der QuickRep-Komponente nach der Eigenschaft: Bands.

was steht da bei Dir?
Die ersten vier sollten auf "true" stehen.

gruß Andreas


bruno01 - Fr 20.06.08 19:27
Titel: Navigation im QR
Danke für die Antwort Andreas.
Es hat wirklich an den Bands gelegen. Jetzt druckt er mir korrekte Ausstellungsschilder, aber leider von allen Datensätzen, das soll er aber nicht.
Ich brauche ja nur ein oder zwei ausgewählte. Ich glaubte, dass das mit dem Befehl Prewiev für den Report geht, weil eine Navigation eingebunden ist. Leider aber nicht. Has Du da eine Idee?
Grüße
bruno01


bockwurst - Mo 23.06.08 13:40

Schaue mal in der hilfe unter
PrintBand
nach.

Gruss Andreas


bruno01 - Mo 23.06.08 16:15

Hallo Andreas,
in meiner Hilfe zu D3 gibt es keinen Eintrag zu PrintBand.


bockwurst - Di 24.06.08 11:37

bei Index nicht, aber bei suchen.

ich habe leider gar keine Ahnung von Qreport. Habe es auch noch nie gemacht. hatte allerdings vor Jahren mal ein Buch gelesen und da stand, daß damit die Datenzeilen gedruckt bzw. nicht gedruckt werden.

Andreas


bruno01 - Mi 25.06.08 09:58
Titel: Abfrage
Hallo Andreas,
ich danke Dir für Deine Antwort, aber bei mir taucht der Begriff "PrintBand" in der Hilfe zu D3 nicht auf. Ich versuche jetzt über eine SQL_Parameter_Abfrage weiter zu kommen, bin aber dabei noch fachlich zu "schwach". Den Parameter wollte ich über eine InputBox eingeben und dann die Abfrage durchführen:

SELECT DISTINCT Name, Typ, Spannweite, Gewicht, Motor
FROM ":Flieger:Flieger.DB"
WHERE
(Name = 'InputString')
ORDER BY Name, Typ, Spannweite, Gewicht, Motor

Dabei soll eine Antwort.db geschrieben werden ,die dann für meinen QReport benutzt wird.
Kannst Du mir da weiterhelfen? Ich welze schon D3 Bücher, aber komme nicht voran.


bockwurst - Mi 25.06.08 14:37

Aus der Hilfe von D5:
QuickReport selbst verfügt über keine Möglichkeiten, Daten zu sortieren. Daher druckt QuickReport die Daten immer in der Reihenfolge, in der sie von Delphi und der BDE geliefert werden. Wollen Sie die Sortierreihenfolge für einen Report ändern, der mit einer TTable-Komponente verbunden ist, dann müssen Sie einen Index aktivieren, der die gewünschte Sortierreihenfolge liefert.
Die Druckreihenfolge eines Reports, der mit einer TQuery-Komponente verbunden ist, ändern Sie, indem die Sortierreihenfolge in der Abfrage ändern. Schlagen Sie die dafür notwendigen SQL-Anweisungen in der entsprechenden Datenbankdokumentation nach.

Daten können auf verschiedene Weise gefiltert werden. Wenn Sie von einer TTable-Komponente aus drucken und Delphi 2.0 oder höher verwenden, können Sie die Eigenschaft TTable.Filter nutzen, um eine Filterbedingung zu definieren. Denken Sie daran, auch die Eigenschaft TTable.Filtered auf True zu setzen.
Eine andere Möglichkeit besteht darin, eine TQuery-Komponente zu verwenden und über die Where-Klausel festzulegen, welche Datensätze bezogen und ausgedruckt werden sollen. In Delphi können Sie Parameter für Abfragen definieren, wodurch die Datenauswahl bequem geändert werden kann. Weitere Informationen dazu finden Sie in der Dokumentation zu Delphi.

Ein weitere Möglichkeit ergibt sich, wenn Sie über das Ereignis BeforePrint Ihres Detailabschnitts den Ausdruck dieses Abschnitts ein- oder ausschalten. Eine solche Ereignisbehandlungsroutine könnte etwa so aussehen:

procedure TrepList.ReportDetailPrintEvent(Sender : TComponent;
PrintBand : boolean);
begin
PrintBand := CustomerTableCompany.Value > ‘H’;
end;


Andreas