AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Quickreport: der gleiche Report mehrmals im Composite-Report
Thema durchsuchen
Ansicht
Themen-Optionen

Quickreport: der gleiche Report mehrmals im Composite-Report

Ein Thema von Martoeng · begonnen am 3. Nov 2004 · letzter Beitrag vom 4. Nov 2004
Antwort Antwort
Martoeng

Registriert seit: 21. Jun 2004
44 Beiträge
 
#1

Quickreport: der gleiche Report mehrmals im Composite-Report

  Alt 3. Nov 2004, 16:26
Hi mal wieder.

Habe mal wieder ein Problem:

Ich möchte, dass ein Report mehrmals zur CompositeReport-Komponente hinzugefügt wird. (natürlich mit verschiedenen Inhalten)

Klappt soweit auch ganz gut:

In der OnAddReports-Methode des CompositeReports steht also folgendes (stark zusammengefasst):

Delphi-Quellcode:
for z := 0 to m_liste.Lines.Count-1 do
begin

  frm_tba_rechn.q_needdata.SQL.Text := 'SELECT * FROM ' + unit3.einst_t_tba_rechn + ' WHERE vorgang = ' + quotedstr(t_vorgang);
  frm_tba_rechn.q_needdata.Open;
  cr_tba_rechn.Reports.Add(frm_tba_rechn.quickrep2);
end;
zur Erklärung:
- t_vorgang enthält in jedem Durchlauf den String aus einer Zeile des memos "m_liste"
- q_needdata bildet die Grundlage des Reports, der aber in der OnNeedData "bestückt" wird (also keine DB-Felder im Report enthalten)
- cr_tba_rechn ist der CompositeReport


So weit, so gut.
Der Report wird auch tatsächlich [z]-mal zum CompRep hinzugefügt, allerdings immer nur mit den Werten der letzten Abfrage gefüllt. (falls jemand versteht, was ich meine )

Warum???

Vielleicht kann ja jemand helfen...


MfG
Martoeng
  Mit Zitat antworten Zitat
Martoeng

Registriert seit: 21. Jun 2004
44 Beiträge
 
#2

Re: Quickreport: der gleiche Report mehrmals im Composite-Re

  Alt 4. Nov 2004, 08:40
So, habs nu mit sehr viel Rumprobieren geschafft:

Das Problem ist ganz einfach, dass diese OnAddReports-Funktion nur ein einziges mal aufgerufen wird, die einzelnen Reporte aber erst _nach_ dem Durchlauf dieser Funktion wirklich hinzugefügt werden. Da ist es kein Wunder, wenn die Datasource immer die "letzte" ist...

Also habe ich das alles ein bisschen verlagert... Falls irgendjemand inder grossen Welt auch mal das Problem haben sollte, hier meine Lösung:

In der OnAddReports-Funktion wird der Report jetzt nur noch [z]-mal hinzugefügt, ohne Einfluss auf die Datasource zu nehmen.

Delphi-Quellcode:
  for z := 0 to m_liste.Lines.Count-1 do
  begin
     cr_tba_rechn.Reports.Add(frm_tba_rechn.quickrep2);
  end;
Die Variable aus dem Memo wird im OnFinished-Ereignis des CompositeReports "vergeben":
Delphi-Quellcode:
procedure Tfrm_tba_rechn_setzen.cr_tba_rechnFinished(Sender: TObject);
begin
  if z_global <= m_liste.Lines.Count-1 then
  begin
    unit21.t_vorgang := m_liste.Lines.Strings[z_global];
    //showmessage(inttostr(z_global) + ' - ' + m_liste.Lines.Strings[z_global]);
    z_global := z_global + 1;
  end;
end;
Die Datasource wird nun im BeforePrint-Ereignis des Quickrep2 mittels der "t_vorgang" zusammengesetzt.

So jetzt werd ich zur Feier des Tages erstmal 'en gehn
Nee, nich wirklich....


MfG

martoeng
  Mit Zitat antworten Zitat
Antwort Antwort


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:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz