![]() |
FastReport und Objekte Entscheidungshilfe
Hallo alle miteinander... :hi:
Früher hab ich dem FastReport einfach DataSet´s übergeben... und gut. 8-) Nun habe ich ein komplexes Objekt was aus Properties und Listen anderer Objekte besteht. Dieses Objekt soll nun dargestellt werden. Für die Listen würde man normalerweise je ein DataSet benötigen und für die Properties ein weiteres. Welchen Weg würdet ihr als "optimal" vorschlagen: 1. Die Daten wegspeichern und die Daten mit Query´s holen... als DataSet übergeben 2. Virtuelle Tabellen anlegen und das Objekt auf die Tabellen aufteilen... als DataSet übergeben. 3. die Daten im OnGetValue des entsprechenden frxUserDataset einlesen PS: wenn ich die kompletten Reportsachen auf das DataModule schiebe sind die Datasets verfügbar. Beim kompletten dynamischen Erzeugen ist die Data Liste leer. Wo ist der Haken ? Danke für Info´s |
AW: FastReport und Objekte Entscheidungshilfe
Möglichkeit 4:
Wir (auf Arbeit) schieben die Klassen & Objekte in den Report. Da kann man in gewohnter Weise drauf zugreifen. |
AW: FastReport und Objekte Entscheidungshilfe
Hallo...
Zitat:
Danke...:thumb: Nachtrag: ich hab auf die schnelle das: ![]() gefunden. Ist es das was du meinst ? |
AW: FastReport und Objekte Entscheidungshilfe
Ich will doch nochmal die
![]() Man zeichnet alles wie auf ein Blatt selbst und ist dadurch sehr flexibel. Automatisierte Ausrichtungen sind möglich. Es ist natürlich auch etwas Schreibarbeit damit verbunden. Es gibt keine DB-Anbindung. Eigentlich ideal, um Daten aus Objekten auszugeben... |
AW: FastReport und Objekte Entscheidungshilfe
ein klein wenig zum Prinzip:
du benötigst ein Objekt, welches deine Daten hält. Wir nennen die Klasse mal
Delphi-Quellcode:
. Und die Instanz der Klasse
TSettings
Delphi-Quellcode:
.
Settings
Diese Klasse und deren Instanz registrierst du bei der Script Engine des Reports. Dafür brauchst du eine solche Klasse:
Delphi-Quellcode:
TSettingsFRFunctions = class(TfsRTTIModule)
public constructor Create(AScript: TfsScript); override; end;
Delphi-Quellcode:
Diese Klasse
constructor TSettingsFRFunctions.Create(AScript: TfsScript);
begin inherited; with AScript do begin AddClass(TSettings, 'TObject'); AddConst('Settings', 'TSettings', Integer(Settings)); end; end;
Delphi-Quellcode:
braucht natürlich Eigenschaften. Die Properties, die du im Fastreport sehen/nutzen möchtest müssen unbedingt
TSettings
Delphi-Quellcode:
sein.
published
Falls deine Klasse
Delphi-Quellcode:
Eigenschaften enthält, die nicht published sind, musst du sie dem Script händisch mitteilen:
TSettings
Delphi-Quellcode:
Wenn dein Objekt Methoden benötigt, die du aus dem Report aufrufen musst:
with AScript do
begin with AddClass(TSettings, 'TObject') do AddProperty('Database', 'TpFIBDatabase', GetProp, nil); end;
Delphi-Quellcode:
In OnCallMethod musst du natürlich definieren, was beim Methodenaufruf passiert.
with AScript do
begin with AddClass(TSettings, 'TObject') do AddMethod('function Items : TStrings', OnCallMethod); end; Jetzt solltest du im Report mit deinem Objekt arbeiten können. mehr dazu hier: ![]() Gruss Marco |
AW: FastReport und Objekte Entscheidungshilfe
@Stahli
Das Programm sieht nicht schlecht aus (habe es aber nicht getestet). Allerdings scheint mir, dass man das gleiche auch mit Fastreport realisieren könnte. Damit kann ich ja auch beliebige Felder auf der Seite platzieren und z.B. über Variablen oder Tabellen füllen. Werde es mir bei Gelegenheit noch mal genauer ansehen. Ralf |
AW: FastReport und Objekte Entscheidungshilfe
Liste der Anhänge anzeigen (Anzahl: 1)
Mit der VPE sind halt so hübsche Sachen möglich, wie in der Anlage (und noch viel mehr), incl. der unterschiedlichen Seitenorientierung innerhalb einer PDF.
Die kostenpflichtigen Varianten können auch ein PDF-Inhaltsverzeichnis erstellen usw. Ist halt leider recht teuer, daher werde ich jetzt bei dem Schnäppchenangebot bis Ende Juni endlich zuschlagen (immer noch 600 Eu :( ). So leistungsfähig ist aber nix, was ich mir sonst angesehen habe. |
AW: FastReport und Objekte Entscheidungshilfe
In Fastreport kann man einen Report auch programmgesteuert erzeugen
|
AW: FastReport und Objekte Entscheidungshilfe
Hallo erst mal... 8-)
Danke für Eure Tipps. Damit keine Mißverständnisse aufkommen... Es muß FastReport sein. 1. hat´s Geld gekostet 2. arbeite ich schon lange damit 3. liebe ich das Ding :zwinker: sooo... @MarcoWarm: ok soweit. Die Beispiele beziehen sich eher auf visuelle Objekte. Ich kann mir noch nicht vorstellen, daß die Daten, die teilweise in ObjectListen liegen z.B. in einem Detailband dargestellt werden können... Konkret: Object Process (TProcess)... Property Date (Masterband) Property State (Masterband) . . Property Positions (TObjectList mit Objekten TPosition) (Detailband) . kann ich nach der "Registrierung" das Objekt wie ein Dataset behandeln ? :hi: |
AW: FastReport und Objekte Entscheidungshilfe
Mit den Objekten habe ich noch nie probiert. Ich würde es so aufbereiten:
Tabellenartige Daten in ein oder mehrere Clientdataset(s), kann man dann z.B. für Masterdata nehmen. Für alle anderen Variablen im Report anlegen und diese entsprechend füllen; z.B. beim OnGetValue Event. Ist vielleicht etwas Fleißarbeit, dafür vom Prinzip her einfach. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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