Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - ReportBuilder Digital Metaphors 10.07 - Variablen zuweisen
TiloS - Mi 21.05.08 12:13
Titel: ReportBuilder Digital Metaphors 10.07 - Variablen zuweisen
Hallo,
ich möchte während des Report-Druckes in den einzelnen Bändern Berechnungen durchführen, und zwar mit Werten aus einem vorherigem Formular.
Dazu muss ich erstmal im ReportBuilder unter Berechnungen - Global - Deklarationen - Variables die Variablen anlegen. Wie kann ich aber jetzt diesen Variablen Werte aus dem Report-Formular oder anderen Formularen zuweisen?
im ReportBuilder:
[Variables]
[procedure HeaderBeforePrint]
Delphi-Quelltext
1:
| PersID := Form1.PersID; |
im Formular:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.LeistungenBerichteBarItemClick(Sender: TObject); begin ppReport1.PersID := 'abc'; end; |
Wie kann ich Werte aus dem Formular in den ReportBuilder übergeben?
Moderiert von
UGrohne: Beitragsformatierung überarbeitet.
baka0815 - Mi 21.05.08 12:21
Du kannst im ReportBuilder mit RAP nicht einfach so auf deine eigenen Forms zugreifen und wirst ihm wohl "von aussen", also aus deinem Formular, die Werte übergeben müssen.
TiloS - Mi 21.05.08 12:34
Danke,
von außen sehe ich aber die Variablen im ReportBuilder nicht, zumindest habe ich nichts gefunden. Oder gibt es da eine Komponente des ppReport1 mit der ich auf die Variablen zugreifen kann?
TiloS - Mo 09.06.08 14:33
Ich muss leider nochmal hierauf zurückkommen.
Ich kann im Formular weder auf eine Variable des Reports noch auf ein Feld des Reports zugreifen, also kann ich im Formular auch nichts initialisieren, was den Report betrifft.
Wenn ich im Formular eine im Formular deklarierte Variable initialisiere, kann ich wiederum im Report nicht auf sie zugreifen.
Das Einzige was ich mir denken könnte, wäre vom Formular aus die Verwendung der "Parameters"-Funktionen der Report-Komponente:
Quelltext
1: 2:
| ppReport1.Parameters.Add('Param_PersID','test'); ppReport1.InitializeParameters; |
Nur wie es scheint, funktioniert das auch nicht. Ich finde im Report nichts wo ich dann auf diese Parameter zugreifen könnte.
Hat noch jemand eine Idee?
Gruß
Tilo
TiloS - Mo 09.06.08 15:42
So jetzt hab ich's endlich.
Das Problem war, dass die Syntax des Zugriffs auf den Report im Report anders ist als im Formular.
Also Parameter im Formular übergeben:
Quelltext
1:
| ppReport1.Parameters.Add('Param_PersID','test'); |
Und im Report so zuweisen:
Quelltext
1:
| PersID := Report.Parameters['Param_PersID']; |
alphaville - Mi 11.06.08 09:10
Hi TiloS,
ich hab das anders herum gelöst. Ich habe mir im Report die Variablen definiert und frage das in Delphi ab.
Dazu benutzt ich die TCommunicater Komponente. Mit der kann man dann die Variable im Report suchen.
Das Ganze erfolgt z.B. im ppGroupFooterBand1AfterGenerate
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| Communicater[1] := ppReport10.FindUserObject('Variable5'); Communicater[2] := ppReport10.FindUserObject('Variable6'); if ((Communicater[1]<>nil) and (Communicater[2]<>nil)) then begin Variable[1] := TppVariable(Communicater[1]); Variable[2] := TppVariable(Communicater[2]);
if (realAnwesenheit=0) then begin Variable[1].AsFloat := 0; end else begin Variable[1].AsFloat := 100 * realCoupon / realAnwesenheit; end; end; |
Gruß Uwe
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!