Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ? (https://www.delphipraxis.net/108386-wie-aus-delphi-wert-aaa-ein-memo1-von-fastreport.html)

EccoBravo 12. Feb 2008 22:01


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.

alzaimar 13. Feb 2008 06:10

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).

EccoBravo 13. Feb 2008 09:44

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.

EccoBravo 13. Feb 2008 10:04

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.

alzaimar 13. Feb 2008 10:06

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.

EccoBravo 13. Feb 2008 10:39

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.

mkinzler 13. Feb 2008 12:04

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.

http://www.fast-report.com/en/downlo...-download.html

alzaimar 13. Feb 2008 12:12

Re: wie aus Delphi Wert 'aaa' in ein Memo1 von Fastreport ?
 
Bei den Demos ist soetwas dabei. Bischen Lesen muss man schon.

EccoBravo 13. Feb 2008 20:03

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.

alzaimar 14. Feb 2008 06:57

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.

EccoBravo 14. Feb 2008 09:47

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:
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;
Dann nochmals Danke und Grüße

E. B.

alzaimar 14. Feb 2008 10:25

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.

EccoBravo 14. Feb 2008 15:07

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.

EccoBravo 3. Mär 2008 14:01

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:
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;
wird dieses CrossView in FastReport4 zu einem mehrzeiligen/mehrspaltigen Gebilde aufgebläht.

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.

EccoBravo 3. Mär 2008 23:39

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:
procedure Cross1OnPrintCell(Memo: TfrxMemoView;
    RowIndex, ColumnIndex, CellIndex: integer;
    RowValues, ColumnValues, Value: Variant);
begin
    if ColumnIndex = 2 then
        Memo.Color := clRed;
end;
Nun finde ich nicht die Stelle wo das hin kommt.
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.

Union 4. Mär 2008 07:24

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!

EccoBravo 4. Mär 2008 09:07

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.

Union 4. Mär 2008 09:11

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.

EccoBravo 4. Mär 2008 12:12

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.

EccoBravo 4. Mär 2008 13:00

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 17:53 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