Autor Beitrag
Bruce
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 80



BeitragVerfasst: Do 24.04.03 21:15 
Hallo!

Ich habe drei Tabellen (Einnahmen / Ausgaben/ Sparen), die ich gerne in einem QReport untereinander drucken möchte.
Ich kriegs aber nicht hin. Entweder druckt er nur die erste, oder die anderen werden doppelt gedruckt.
Ein Detail-Band kann ich ja nur einmal einfügen. Habs mit Subdetail, Child-Band, "Normalem Band" und dann Eigenschaft auf Detail probiert. Composite Reports raff ich gar nicht (obwohl ich denke, die sind für so was, oder?).
Leider finde ich sämtliche Hilfen zu QReport (die wenigen, die man findet) ziemlich dürftig. Komm einfach nicht weiter.
Weiß jemand rat? Danke...

Gruß, Bruce


Zuletzt bearbeitet von Bruce am Sa 26.04.03 13:59, insgesamt 1-mal bearbeitet
kiwicht
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1021

Win 7, MacOS
Delphi x, VBA, PHP, ...
BeitragVerfasst: Do 24.04.03 21:22 
um die Daten darzustellen, fügst du doch (z.B.) die QRDBText-Kompo. ein ,oder?
Dann kann man doch jeder dieser Komponente auf deinem Formular eine gesonderte Datenquelle zu ordnen, oder?
Bruce Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 80



BeitragVerfasst: Do 24.04.03 21:33 
Klar, also der Report soll so aussehen:

Oben der Titel

Dann eine Überschrift Einnahmen(in ColumnHeader).
Darunter ein Detail-Band mit den QRDB-Text-Komp. (Die hab ich natürlich über Dataset und Field mit der Tabelle verbunden.
Das klappt ja auch.
Darunter will ich noch mal das gleiche mit Ausgaben.
Ich brauche dann aber ein zweites Detail-Band, damit alle werte gedruckt werden. Und das zweite Detail-Band krieg ich nicht hin. Hab mir auch die QR-Demos angeguckt, da ham die sowas, aber ich verstehs nicht.

Gruße, Bruce
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 25.04.03 06:43 
Hi
Am einfachsten dürfte es tatsächlich mit CompositeReport funktionieren. Dazu erstellst du erst mal 3 einzelne Reports für Einnahmen, Ausgaben und Sparen. Jeder hat eine Datenmenge und ein passendes Detailband. Zur Laufzeit werden dann die Reports der Composite Komponente mit Add hinzugefügt und anschließend der CompositeReport gedruckt.
Wenn die drei Tabellen vom Aufbau grundsätzlich gleich sind, könntest du auch ein bisschen tricksen. Du erstellst eine Query für den ABruf der Daten aus der ersten Tabelle.
Im AfterPrint Ereignis des Bandes kontrollierst du dann, wann die Query EOF ist, änderst die Query für den Abruf der zweiten Datenmenge und dann für die dritte. Ich hab das mal vor langer Zeit so hinbekommen, aber es war äusserst nervend. Im Zweifelsfall lieber die erste Variante.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Bruce Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 80



BeitragVerfasst: Fr 25.04.03 08:10 
Super!
Hab ich mir doch gedacht, mit dem Composite. Wusste nur nicht, wie man die Komp. benutzt. Hab aber jetzt noch Probleme mit der Syntax.

Ich hab jetzt zum Test Form2 mit Report Einnahmen und Form3 mit Report Ausgaben. Wie lautet die genau Syntax?

ausblenden Quelltext
1:
Comp.Reports.Add(Form2.Einnahmen)					


hab ich pobiert (Comp heisst die Composite-Komp.). Funktioniert aber nicht. Und wo adde ich genau? In der OnClick-Behandlung des Buttons, der den Druck auslöst oder in AddReports der comp.?
Und nach dem Adden sofort Comp.Preview, bzw. .print?
Viele Fragen, ich weiß, deshalb noch eine :roll:
Druckt der das dann direkt nacheinader auf ein Blatt, oder muss ich dafür noch was extra einstellen?

Danbke schon mal und
Gruß, Bruce[/code]
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Sa 26.04.03 10:45 
Hi
hab gerade noch mal nachgesehen. Du rufst die Preview oder Print Methode des CompositeReports auf und im OnAddReports Ereignis lädst du die Reports.
QR Online Hilfe hat folgendes geschrieben:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TMainForm.QRCompositeReport1AddReports(Sender: TObject);
begin
  with QRCompositeReport1 do
  begin
    Reports.Add(ListForm.QuickRep);
    Reports.Add(GrpListForm.QuickRep);
    Reports.Add(MDForm.QuickRep);
    Reports.Add(ManyGrpForm.QuickRep);
  end;
end;



Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Bruce Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 80



BeitragVerfasst: Sa 26.04.03 13:56 
Hallo Lothar,

vielen Dank!
Ich hab´s jetzt aber doch anders gelöst :oops: :
Einfach drei SubDetails einfügen (für Überschrift und Summe muss man im OI Header und Footer auf true setzten). Das hatte ich zwar schon probiert aber da ich durch das rumprobieren die Übersicht verloren hatte, hab ich wohl bei einem SubDetail die Datasorce falsch gesetzt und dann funktionierts nicht richtig (was auch logisch ist).
Jetzt hab ich meine drei Tabellen sauber untereinander und es funktioniert eigentlich so (simpel) wie ich es auch erwartet hatte.
Was ich generell noch nicht richtig verstanden habe, ist der Sinn der Datasource für den QuickReport ansich. Ich habe immer da gleiche Ergebnis, egal welche der drei Tabellen ich da einsetzte. Oder hat das erst Auswirkungen, wenn eine zweite Seite ins Spiel kommt?

Na ja, egal! Auf jeden Fall war Deine Hilfe nicht umsonst, mit den Composites wollte ich mich eh beschäftigen und blick jetzt besser durch, also noch mal Danke :beer:

Gruß, Bruce