![]() |
wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Hallo,
Habe mich nun wütend von Qutckreport getrennt und FastReport installiert, und weiss natürlich nicht wie das geht. Den Preview von Fastreport habe ich schon gefunden frxreport1.ShowReport; Nun will ich aus Delphi heraus aus einer Variable A:='aaa' deren Wert in ein Memo1 von frxreport1 bringen. Wie geht das? Vielen Dank E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Da gibt es viele Möglichkeiten.
Ich verwende ein 'UserDataset'. Das ist so etwas wie ein TDataset, nur eben ohne Datenbankanbindung. Du sagst dem Teil, welche Daten wohin kommen. Schmeiss mal so ein TFrUserDataset auf die Form und definiere die Feldnamen (Fields). Dann schreibst Du dir den Eventhandler 'OnGetValue'. Dann ein TFrReport. Doppelklick und erstmal das Dataset registrieren (Menü 'Report'=>'Data'). Rechts siehst Du nun das Dataset. Nun einfach die Felder auf das Papier ziehen, fertig. Eine andere Möglichkeit gibt es, indem Du das TfrMemo Objekt suchst und die Eigenschaft 'Text' selber setzt. Das TFrMemo ist aber kein VCL-Objekt, sondern im TFrReport zu suchen (FindObject). |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Hallo und danke,
kannst Du mir nicht einen Beispielcode zeigen, ich habe keine Ahnung, wie ich den EventHandler schreiben soll Danke E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Ok,
habe ich dann doch alleine geschafft mit dem EventHandler. Vielen Dank trotzdem. Mit einzelnen Variablen und Feldern denke ich kein Problem. Wie geht es aber mit Tabellen und Arrays? Wie geht es mit Diagrammen und Kurven? Wie geht es mit der Formatierung von Tabellenzellen und Diagrammeigenschaften? Vielen Dank im Voraus E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Wie geht das mit dem FastReport-Support?
Wie geht das mit den Demos? Schau einfach rein. So habe ich es auch gemacht. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Vielen Dank,
aber ich arbeite nicht mit Datenbanken Ich will z.b. Zwei Arrays in ein Diagramm bekommen der Art Y = f(X) var X, Y : array[100] of single; ---> FastReport Dieses soll in einer Diagrammkurve ausgedruckt werden. Bis dann E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
alzaimar hat ja geschrieben, dass es sich beim UserDataset um eine DataSet handelt ohne Datenbankanbindung handelt.
FastReport seitig wird es aber wie eine Datenbank behandelt. ![]() |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Bei den Demos ist soetwas dabei. Bischen Lesen muss man schon.
|
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Danke alzaimar und mkinzer,
hatte die Demos vor Aufregung nicht gefunden. Mit den Arrays ist es so einigermassen klar. Bleibt nun nur noch die Frage, wie ich diese Arrays in eine Line Series eines Diagramms bekomme, leider kein Demo dazu dabei gewesen. Vielleicht finde ich etwas - mal sehen. Danke und viele Grüße aus der Provence E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Die TFrChart-Komponente müsste sowas wie eine LineSeries haben. Spiel mal mit der TChart-Komponente (nicht TFRChart!) herum. Das sind substantiell die gleichen Komponenten, aber es geht schneller, und außerdem gibts TChart-Demos im Delphi-Demo Ordner.
|
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Hallo Alzaimar,
Danke danke! TChart kenne ich schon zur Genüge, und nach LineSeries u.ä. habe ich schon gesucht, aber nichts gefunden. Dann hatte ich aber auf Eure Empfehlung mal in den Frx-Demos umgedehen und den Array-Adapter oder den StringGrid-Adapter "TfrxCrossView" gefunden. Dabei dachte ich mit, mit den Diagrammen müsse es genauso gehen, so verwendete ich "TfrxChartView" Wie ich es probiert habe (leider ohne Erfolg, haber ich mal angehangen. Vielleicht erkennst Du einen Fehler.
Delphi-Quellcode:
Dann nochmals Danke und Grüße
procedure TForm1.frxReport1BeforePrint(c: TfrxReportComponent);
var Cross: TfrxCrossView; Diag: TfrxChartview; i, j: Integer; begin if c is TfrxCrossView then begin Cross := TfrxCrossView(c); for i := 1 to 16 do for j := 1 to 16 do Cross.AddValue([i], [j], [StringGrid1.Cells[i - 1, j - 1]]); end; if c is TfrxChartView then begin Diag := TfrxChartView(c); for i := 1 to 16 do //Diag.SeriesData.Add.XValues(IntToStr(i)); ??? //Diag.SeriesData.Add.YValues(IntToStr(i)); ??? end; end; E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Liste der Anhänge anzeigen (Anzahl: 1)
Du kannst Userdataset verwenden. Schau mal hier. Geht bestimmt einfacher, aber so eben auch.
|
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Vielen Dank alzaimar,
habe mir den Code angesehen und ausprobiert. Funktioniert sehr gut. UserDataSet erinnert mich sehr an ein AsapterPattern oder BridgePattern, kann das sein? Bei QuickReport ist man ohne eines solchen Adapters ausgekommen. Etwas gewöhnungsbedürftig, aber bei Wiederverwendung angenehmer als QuickReport. Nun mal eine andere Frage, ich will mir nun das FastReport 4 kaufen, Es gibt das Base Package, das Standard Package, das Professional Package und das Enterprise Package. ich programmiere mit RAD 2007 Architect nur No-DataBase und nur Win32. Mache aber viel mit farbigen Tabellen, Bildern und Diagrammen. Welches Package würdest Du mir empfehlen (PrivatKauf). Danke nochmal und Tschüß E. B. PS: Habe soeben auch kapiert, wie man statische Arrays in das Diagramm bringt. Tolle Methode, wenn man daran denkt, DiagrammCode aus seinen ProgrammCode fernzuhalten. Nun aber noch eine abschliessende Frage: Ich Habe versucht, verschiedene Kurven Y(X) in ein Diagramm zu malen, so Y1(X1) und Y2(X2). Dabei habe ich bemerkt daß er in dem Disgramm statt Y1(X1) und Y2(X2) die Kurven Y1(X1) und Y2(X1) malt. Er malt also die Kurven Y1 und Y2 auf die selben X-Werte von X1, also auf die Abzisenwerte von X1 Gibt es einen Weg, die Kurven Y1(X1) und Y2(X2) in X zu entkoppeln? Nochmals Danke und Tschüß E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Hallo Alzaimar,
habe die Lösung mit dem TfrxCrossView auch schon selbst gefunden (mit Hilfe der Demos), trotzdem nochmal herzlichen Dank, ist eben am Anfang alles ein wenig tricky. Jetzt aber die Frage: Im Demo PrintStringGrid ist im FastReport4 ein CrossView als Objekt mit einer Zelle in einem MasterData Bereich eingesetzt worden. Erst im ProgrammCode
Delphi-Quellcode:
wird dieses CrossView in FastReport4 zu einem mehrzeiligen/mehrspaltigen Gebilde aufgebläht.
procedure TForm1.frxReport1BeforePrint(c: TfrxReportComponent);
var Cross: TfrxCrossView; i, j: Integer; begin if c is TfrxCrossView then begin Cross := TfrxCrossView(c); for i := 1 to 16 do for j := 1 to 16 do Cross.AddValue([i], [j], [StringGrid1.Cells[i - 1, j - 1]]); end; end; Nun will ich diese Tabbelle CrossView aber schon vorher in der Entwurfsansicht formatieren (WhatYouSeeWhatYouGet), da ich verschiedene Zellfarben, Zellschriften, Spaltenbreiten verwenden will, da diese "FastReport Tabelle" mit anderen "FastReport Elenemten" per Sicht harmonieren soll. Daher brauche ich eine Anleitung, wie ich eine Tabelle nach Sicht im FastReport4 vorher entwerfen kann und im Code mit Inhalt füllen kann. Ist das in dieser Form mit FastReport4 möglich? Also nochmal Dank und Grüße E. B. E. B. schrieb vorhin: Hallo Alzaimar, ausgehend von Deinem gut funktioniertenden Code für ein TFrxChartView im FastReport nun eine Datenübergabe für ein TFrxCrossView. Wie bekomme ich aus dem Programm die Werte eines StringGrids oder die Werte von x,y: array[1..12] of single; in ein TFrxCrossView? Danke und Grüße E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Hallo
ich fummele immer noch an der ScriptFormatierung von TfrxCrossObject. Habe dazu im FastReport UserManual folgenden Code gefunden
Delphi-Quellcode:
Nun finde ich nicht die Stelle wo das hin kommt.
procedure Cross1OnPrintCell(Memo: TfrxMemoView;
RowIndex, ColumnIndex, CellIndex: integer; RowValues, ColumnValues, Value: Variant); begin if ColumnIndex = 2 then Memo.Color := clRed; end; Packe ich das in den Quellcode meines Programmes dann passiert nichts. Nicht einmal meckert der Compiler bei groben Schreibfehlern der Procedure. Ich verstehe einfach diese Codesequenz nicht, ein Cross1 gibt es als Object im Unit nicht, nur ein frxCrossObject1. Und wenn ich in den Formularentwurf auf das TfrxCrossObject-Symbol gehe, finde ich im Objectinspector keinerlei Einträge. Weiss hier jemand weiter? Danke E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Du musst das Ereignis im Objektinspektor des fr-Designers deinem Crossview OnPrintCell zuweisen. Hierbei handelt es sich nicht um Delphi Code sondern FastScript!
|
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Danke Union,
ich habe einen FrxDesigner und eine Menge Fs... Aber nirgens habe ich im ObjectInspector ein OnPrintCell-Ereignis gefunden. Ich habe die FrxDesigner und Fs...Komponenten versuchsweise nacheinander in die Entwurfssicht des Form1 gesetzt. Irgendwie muß ich falsch liegen! Danke für weitere Tips Grüsse E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Ich meinte nicht in TFrxDesigner, sondern im fr-Designer. Wenn Du auf einen tfrxReport-Komponente doppelklickst, öffnet sich doch ein Designer. Dort definierst Du ja auf der Seite Dein Crossview-Objekt. In dem Designer gibt es einen eigenen OI, und in dem kannst Du Eigenschaften der jeweils selektierten Element festlegen. Auf der Registerseite "Code" kannst Du den Code bearbeiten.
|
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Vielen Dank,
da lag ich wirklich ganz schön falsch, aber was will man erwarten, wenn die Ausfertigung einer Tabelle an vielen unerklärlichen Stellen verstreut liegt. Vielen Dank E. B. |
Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
Habs selber gefunden
Danke E. B. EccoBravo schrieb: Hallo Folgefrage: Kann ich das Masterband um 90grd drehen, sodass die Daten nicht mehr als Reihen untereinander sondern wie Tabellenspalten nebeneinander gedruckt werden? Danke E. B. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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