![]() |
Re: Folge von Diagrammen in FastReport ?
Zitat:
Zitat:
Zitat:
DIAGRAMM ist der Variablennamen, der zur Laufzeit im onGetValue belegt wird. Wenn Du ihn in der FR-IDE nicht vorher irgendwie mit einem Dummy-Wert belegst, wird die Druckvorschau in der IDE nicht funktionieren. Überhaupt funktioniert das alles nur zur Laufzeit Deiner App. Willst Du das auch zur Designzeit haben, sehe ich einen Weg über FR-UDF, aber ich denke, da Du derzeit noch nicht die Bedeutung von FINALPASS kennst ( FR-Systemvariable, die anzeigt, dass bei einem 2-Phasen-Report der 2. Lauf läuft), kommt dieser Weg noch etwas früh für Dich. Vielleicht noch einmal zum Prinzip: FR löst im Script die Variablennamen auf. Das können Datenfelder oder lokale oder globale Variablen sein. Solange alles im FR-Report passiert, müssen alle Varibalen dort deklariert und belegt sein, ansonsten gibt's Meldungen. onGetValue stellt nun dem Programmierer einen Mechanismus zur Verfügung, bei dem zur Laufzeit des Programmes der Wert außerhalb des FR-Reports belegt, verändert, gesetzt werden kann. Damit kann man Dinge machen, die man innerhalb FR nicht kann, weil man z.B. keinen Zugriff auf andere Delphi-Komponenten usw. hat. -- Andreas |
Re: Folge von Diagrammen in FastReport ?
Hallo Andreas,
vielen Dank für Deine ausführliche Antwort, Ich will nicht nerven, bin aber ein absoluter FR-Anfänger. Daher meine weitere Fragerei: Also kann ich die Procedures ...frxUserDataSet1First, ...frxUserDataSet1Next ... usw wegschmeissen? Wie werte ich dann die RecNo / nr in OnGetValue aus, wenn ich irgendwann im Delphiptogramm eine Liste von Bmp+s derart Bild1 Bild2 ... Bild104 erzeugt habe. Vielen Dank EB. |
Re: Folge von Diagrammen in FastReport ?
Wenn Du den frxUserDataSet1 an Dein FR-Databand hängst, übernimmt FR die Steuerung für Dich und dann geht es so:
Delphi-Quellcode:
if uppercase(ParName)='DIAGRAMM' then begin
ParValue:=''; c:=Format(MainForm.AppDataDir+'Diagramm%d.bmp',[frxUserDataSet1.RecNo]); if FileExists(c) then ParValue:=c; end; -- Andreas |
Re: Folge von Diagrammen in FastReport ?
Hallo Andreas,
nimm es mir nicht übel, es läuft so noch nicht bei mir. Entsprechend meines ProgrammCodes:
Delphi-Quellcode:
kennt mein Compiler nicht die Worte ParName und ParValue.
procedure TF_Haupt.frxUserDataSet1GetValue(const VarName: string;
var Value: Variant); var i, j, k: integer; c: string; begin if UPPERCASE(VarName) = 'DIAGRAMM' then begin Value := ''; c := format('G:\Daten_XP\Eigene RAD\EB_PDF_Arc\Daten\Pat\Diagramm%d.bmp',[frxUserDataSet1.RecNo]); if FileExists(c) then Value := c; end; end; Entsprechend meines Codes habe ich dafür VarName und Value genommen. Nun kennt mein Compiler auch nicht MainForm.AppDataDir. Unter F_Haupt. kennt er auch nicht AppDataDir Also habe ich da mit
Delphi-Quellcode:
versucht = Negativ.
'G:\Daten_XP\Eigene RAD\EB_PDF_Arc\Daten\Pat\'
Dann heißen meine abgespeicherten Bilder Test1 Test2 . . . Test104 Anstelle
Delphi-Quellcode:
habe ich
'G:\Daten_XP\Eigene RAD\EB_PDF_Arc\Daten\Pat\Diagramm%d.bmp'
Delphi-Quellcode:
genommen = Negativ.
'G:\Daten_XP\Eigene RAD\EB_PDF_Arc\Daten\Pat\Test%d.bmp'
Trotz Deiner ausführlichen Hilfe bei mir noch wildes probieren. Und dann noch ein Hinweis, in der FR-IDE habe ich im Masterband4 ein Bild Picture1 platziert, das ich nutzen wollte. Letzte Frage, Wo werden denn die Bilder im FR geladen ? Ich häre Dir für weitere geduldige Hilfe dankbar EB. |
Re: Folge von Diagrammen in FastReport ?
Wahrscheinlich findet er die Datei nicht. Das kann man leicht debuggen.
Ansonsten stammt der Code-Auszug aus (m)einer App, die ich vor Jahren mit FR2 entwickelt habe. Die offensichtlichen Anpassungen wollte ich Dir überlassen. Ich kann Dir sagen, dass das, was Du willst, mit FR4 umzusetzen ist, weil etwas ähnliches seit langem bei mir läuft. Erwarte aber bitte nicht meinen Ehrgeiz, Dir eine ready-to-go-Lösung zu liefern. Dafür denke ich leider zu kommerziell ;) -- Andreas |
Re: Folge von Diagrammen in FastReport ?
nur noch eine kurze Frage:
Zitat:
Er kann dieses folgendermaßen zur Laufzeit nicht auflösen ..kann typ Array nicht als String auflösen... Irgendwie muß ich aus DIAGRAMM das DataField, das ich im unstehendem Code als c übergeben habe, herausholen. Zitat:
Andreas war mir bei aller vorher geleisteter Unterstützung nur noch die Erklärung des Klammerausdrucks [...] schuldig. Meine Bankdaten werde ich nicht preisgeben, dafür aber Lob und Wertschätzung. EB |
Re: Folge von Diagrammen in FastReport ?
Hallo,
nach langen Mühen habe ich es endlich geschafft, eine Reihe von Bildern in einem FR4 Report auszugeben. Bin mit der Lösung auch ganz zufrieden. Ich habe festgestellt, dass man dazu alles aus der Delphi IDE steuern kann, also keinerlei Code in der FR4 IDE benötigt. Den benutzten Code habe ich unten angehangen.
Delphi-Quellcode:
Dazu fiel mir nur eine alte Frage aus Studienzeiten ein:
procedure TForm1.FormCreate(Sender: TObject);
begin sl := TStringList.Create; sl.Add('G:\Path\Test1.bmp'); sl.Add('G:\Path\Test2.bmp'); sl.Add('G:\Path\Test3.bmp'); sl.Add('G:\Path\Test4.bmp'); sl.Add('G:\Path\Test5.bmp'); sl.Add('G:\Path\Test6.bmp'); sl.Add('G:\Path\Test7.bmp'); sl.Add('G:\Path\Test8.bmp'); sl.Add('G:\Path\Test9.bmp'); end; procedure TForm1.Button1Click(Sender: TObject); begin FrxReport1.PrintOptions.Printer := 'Acrobat PDFWriter'; FrxReport1.FileName := 'G:\Path\TargetDoc.pdf'; StringDS.RangeEnd := reCount; StringDS.RangeEndCount := sl.Count; frxReport1.ShowReport; end; procedure TForm1.frxReport1BeforePrint(c: TfrxReportComponent); var Pict: TfrxPictureView; Name: string; begin if c is TfrxPictureView then begin Name := TfrxPictureView(c).Name; if Name = 'Picture1' then begin Pict := TfrxPictureView(c); Pict.Picture.LoadFromFile(sl[StringDS.RecNo]); end; end; end; Wieviel Versuche benötigt ein Affe, um "Romeo und Julia" auf einer Schreibmaschine zu tippen. Vielen Dank an Euch alle, neo4a darf diesen Code auch unentgeldlich benutzen. Eine Frage habe ich trotzdem noch: Zur Laufzeit in der Reportvorschau. Wenn ich den Printdialog zum Speichern der 'TargetDOC.pdf' aus der Druckvorschau heraus öffne, wird im Speicherdialog schon der richtige Dateiname 'TargetDOC.pdf' angezeigt, jedoch nicht der richtige Pfadname 'G:\Pfad'. Stattdessen steht dort 'C:\Dokumente und Einstellungen\Benutzer\Eigene Dateien'. Wie bekomme ich dem Speicherdialog unter der Reportvorschau den richtigen Pfadnamen beigebogen ? Viel Spass beim Knobeln und Frohe Ostern EB |
Re: Folge von Diagrammen in FastReport ?
kannst du mal ein bsp posten wie der chart am ende aussehen soll?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 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