![]() |
Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Hallo,
ich prüfe gerade, ob ich Fastreport verwenden kann/sollte, um damit meine Rechnungen, Rechnungslisten usw. in meinem Rechnungsprogramm drucken zu können und zwar unter FMX, für Windows und MAC. Bislang (alte VCL-Version / aktuelle FMX/VCL-Mixversion) verwende ich keinen Reportgenerator, sondern drucke das (verhältnismäßig mühselig) selber mit eigenen Druckroutinen über den Canvas. Ich habe hier im Forum schon ein paar nützliche Code-Schnipsel für die Verwendung von Fastreport gefunden (also Anzeige des Reports, externe Reportdatei laden, usw). Ich verwende allerdings keine Datenbank im Delphi klassischen Sinne, sondern habe die Daten lediglich im CSV-Textformat vorliegen. Kann das Fastreport irgendwie direkt verarbeiten? Und wenn ja: Wie? Wenn nein: Dann müsste ich wohl doch eine Delphi-Datenbank-Komponente verwenden und diese mit den CSV-Daten füllen. Als in Sachen Delphi-Datenbank Unkundiger hätte ich dann die Frage, welche (FMX-)Datenbank-Komponente ich hier am besten verwenden sollte (diese sollte das Programm nicht so aufblähen und einfach zu handhaben sein)? Kann man den Report auch sozusagen zur Laufzeit generieren? Ich habe hier mal was über Scripte gelesen. Werden die auch in der EMBA-Version unterstützt? Ich denke daran, aus Gründen der Rückwärtskompatibilität die Werte und Positionen, welche die User bisher für den Ausdruck eingegeben haben, zur Laufzeit auf den Fastreport umzumünzen (zusätzlich aber auch den Fastreport-Designer mitzugeben, wenn das geht). Bei Youtube habe ich nur Demo-Videos von einem verhältnismäßig schlecht englisch sprechenden Japaner gefunden. Gibt es wirklich keine vernünftige Videoanleitung zur Verwendung von Fastreport (vielleicht sogar noch in Deutsch)? |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Falls es unter FMX sowas wie ein ClientDataSet gibt, ist im Grunde nichts einfacher als das Einlesen einer CSV-Datei. Dieses ClientDataSet kannst du dann genau so verwenden wie ein normales DataSet, außer daß du nicht vergessen darfst, Änderungen zu speichern.
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Zusätzlich zum ClientDataSet gibt es bei FastReport auch noch das
Delphi-Quellcode:
, wo man beliebige Daten von beliebigen Orten dem FastReport zuführen kann.
TfrxUserDataSet
Das erfolgt über Events, wo dann die Werte der einzelnen Sätze übergeben werden. |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Danke für Eure Hinweise! :-D
Das sieht ja wirklich schon mal recht gut aus. Das TfrxUserDataSet hat eine Eigenschaft "Fields", die kann ich nach meinen Bedürfnissen mit Feldnamen belegen und dann gibt's die Events, wo man über "OnFirst" ein Startereignis setzen kann (z.B. einen Counter auf Null setzen), bei "OnNext" den Counter um 1 erhöhen, bei "OnGetValue" die Daten für das jeweilige Feld von Datenzeile[Counter] liefern, und dann bei "OnCheckEOF" prüfen, ob der Counter das Ende der Datenliste erreicht hat). Und man kann ja mehrere TfrxUserDataSets verwenden, je nachdem, welche Art von Daten gedruckt werden sollen (Rechnung, Rechnungsausgangsliste, Mehrwertsteuerübersicht, was auch immer). Also das sollte schon mal soweit funktionieren. Jetzt müsste ich mal sehen, ob ich quasi so eine Rechnungsmaske mit dem Report-Designer hinbekomme und die Frage, ob man das auch zur Laufzeit generieren könnte, wäre noch zu klären. |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Klar kriegst Du das hin. Ist aber nicht der Sinn vom Ganzen. Für das Design ist ja der Reportdesigner gedacht. Mit reinem Source ist es schwierig das Layout zufriedenstellend zu gestalten. Interessant ist dass Du den Designer mitgeben kannst. Dan könntest Du Deine Standards in einer Datenbank oder als Dateien mitliefern und der Benutzer kann sich das anpassen.
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Zitat:
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Noch bequemer als
Delphi-Quellcode:
dürfte ein Memory-Dataset sein.
TfrxUserDataSet
![]() Viele Komponentensammlungen wie z.B. von DevArt ( ![]() Das kann man vor dem Drucken des Reports mit Daten befüllen und das Dataset lässt sich auch über ein DBGrid anzeigen und zu Testzwecken auch über das Grid editieren. |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Zitat:
Insofern wäre es eine Überlegung, aus den aktuellen Einstellungen des Anwenders eine Reportbeschreibung zu generieren, die er dann aber (auch) mit dem Designer bearbeiten und sozusagen verfeinern kann. Wie mache ich dass denn zur Laufzeit? Über frxReport1.objects ? Ist das die Liste, welche die im Report enthaltenen Datenobjekte beschreibt? Ich würde also gerne zur Laufzeit entsprechende Datenobjekte erzeugen (z.B., ein Textfeld oder eine Textliste), die in der Reportseite positionieren und entsprechend verwenden. Edit: Ich sehe gerade, dass die gespeicherte Reportdatei eine einfache XML-Datei ist. Dort stehen die ganzen Objekte drin, deren Positionen usw., d.h. ich mache also einmal so einen Standard, speichere das ab und kann diesen Standard an die bisherigen Einstellungen des Users anpassen. Dann brauche ich auch den Report nicht mehr zur Laufzeit generieren und der User kann das mit dem Report-Designer weiterbearbeiten. |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Du müsstest Dich zunächst mit der internen Struktur von frx etwas beschäftigen, um das erfolgreich zu machen. Du hast ganz allgmeine TFrxReport->TfrxPage->TFrxBand->TFrxxxxxView. Wobei xxxx Memo, Picture, Barcode uvm. sein kann (Das sind dann die "objects").
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Zitat:
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
So, die Doku ist gar nicht so schlecht.
Nun wollte ich loslegen und Fastreport verwenden (noch in XE5), als ich aber mein Projekt öffnete, in dem ich auch die TChart-FMX-Komponente von Steema verwende, wurde diese nicht gefunden. Besteht hier ein Konflikt mit der Tchart-Komponente in Fastreport? Nachdem ich Fastreport deinstalliert hatte und das Projekt aufrief, ging es seltsamer weise immer noch nicht, erst nachdem ich ein neues Projekt anlegte und dort die TChart-Komponente einfügte, wurde beim erneuten Öffnen meines eigentlichen Projektes die TChart-Komponente wieder gefunden. Hat da jemand evtl. vergleichbare Probleme gehabt und kennt eine Lösung? |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Hatte kürzlich
![]() |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Hi,
Ich habe mir die "richtige Version" vom Fastreport FMX gekauft und habe sie z.Z. als nicht benutzbar unter MAC eingestuft! Ich habe das Gefühl das das noch nie einer richtig benutzt hat! V1.1 habe ich noch unter XE4 das geht noch von der Qualität. V2.0 unter XE5 da reagieren die Menüs oft nicht auch ein einfacher Druck/Preview das kommt mir alles sehr instabil vor... Mal abgesehen davon das man wahrscheinlich ein Programm mit Fastreport nicht durch einen Review bekommen wird: entspricht in kleinster Weise den Apple Designvorgaben! |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
So, habe Fastreport einfach noch mal neu installiert, jetzt geht es seltsamerweise...
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Allerdings... Ich habe die Fastreport-Komponenten auf ein Datamodule gelegt. Ist das ein Problem?
Beim nächsten Öffnen des Projekts meckert Delphi rum, dass mal wieder irgendwelche Eigenschaften nicht erkannt werden... Wenn ich dann versuche zu compilieren, kommt der Hinweis: [dcc32 Fataler Fehler] fs_isysrtti.pas(26): F1026 Datei nicht gefunden: 'C:\Program Files (x86)\madCollection\Plugins\win32\Dialogs.dcu' ??? |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Na, ich kann das jetzt nur so sehen, dass TChart von Steema und Fastreport nicht zusammen verwendet werden können (innerhalt eines Projektes in XE5).
Schade eigentlich... Ich versuche noch mal ein wenig mit dem Support von Fastreport was zu klären, aber wenn die nicht weiter wissen, wäre das insgesamt schon traurig. |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Zitat:
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Ich bin jetzt mit dem Support von Fastreport in Kontakt und beantworte alle möglichen Fragen und gebe Infos, hoffe, die bekommen das hin. Denn zumindest mal richtig ausprobieren, um mir selber mal ein Bild zu machen, würde ich schon gerne.
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Ich finde, ein TfrxReport gehört in ein Datenmodul. Warum? weil es mit einem Formular nicht viel zu tun hat. Ich habe zwar kein XE2 (die letzte Version, mit der ich gearbeitet habe, war 2009), aber ich kann mir nicht vorstellen, was das für einen Unterschied machen sollte, ob ein TfrxReport nun auf einem Formular oder einem Datenmodul liegen sollte.
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
ist wie alles eine Ansichtssache. Wie gesagt z.Z. habe ich irgendwie mit dem Datenmodul ein komisches Verhalten, was nur auf einen Bug hindeuten kann. Es kann aber auch Ursache darin haben, das ich z.B. den IDE Fixpack installiert habe oder mit sonstigen, da das Projekt schon ein Jahr alt ist und es früher nicht gezickt hat.
Aber ohne IDE Fixpack könnte ich nicht arbeiten, seitdem bin ich echt glücklich: alles ohne Wartezeiten :thumb: Zum Datenmodul selbst: das ist nur für kleine Projekte geeignet, wenn man größere Projekte mit vielen Forms und Datentabellen hat, ist es schnell ungeeignet, da man nur eine begrenzte Componentenanzahl drauf hat. Dies ist bei dynamisch Erzeuten Formularen, die ihre eigenen Datasets haben nicht der Fall :wink: |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Achso, ich habe natürlich beliebig viele Datenmodule. Eins für jede Aufgabenstellung. Ein zentrales Modul für die Connection und ein paar Lookuptabellen. In einem Uraltprojekt habe ich noch ein Datenmodul mit so ca. 100 Tabellen. Was für ein Blödsinn, im Nachhinein.
|
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Also ich verwende schon in vielen anderen Fällen Datenmodule und hatte dabei bislang keine Probleme.
Aus Gründen der Transparenz und klarer Trennung der einzelnen Aufgaben würde ich schon ganz gerne auch im Fastreport (wenn ich es hier denn mal überhaupt zum Laufen kriege), Datenmodule verwenden. Ich habe mal den Fastreport Support gefragt, mal sehen, was die Antworten. |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Zitat:
Genauso wie Formulare und alle anderen Komponenten kann man auch Datenmodule dynamisch erstellen. So könnte sich jede Form ihr eigenes Datenmodul erzeugen und weg ist das Problem. Das Ganze kann man durch diverse Methoden optimieren, wie z.B. durch Listen oder selbstverwatete Pools. |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Kannst du nochmal erklären was du mit dem Report und dem Chart vorhattest? Welche FR und welche TeeChart-Versionen?
Ich habe momentan die gleiche Geschichte- Es gibt das Problem, dass sich bestimmte (neuere) TeeChart-Versionen mit FR beißen. Das ist in der aktuellen 2014.11.140512-er Fassung wohl behoben. Kannst du etwas mehr erzählen? Ich bin momentan genau in der gleichen Situation- Fast Report mit einem Chart und ohne dahinter stehendes TDataSet. Ich grübele noch drüber nach ob ich über das schicke UserDataSet von FastReport gehe, mir selbst ein "echtes" TDataSet bastele (MemTable) oder über Variablen von meinem Report gehe- Die kann man auch "von außen" in seinem Code beschreiben. Ich bin momentan noch gezwungen auf einer älteren 2013er TeeChart-Version zu bleiben. Wahrscheinlich werde ich den Chart einfach als Vektorgrafik an FastReport übergeben und NICHT die FR/TeeChart-Integration nutzen... |
AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Ich wollte das TChart gar nicht im einem konkreten Zusammenhang mit Fastreport verwenden, da ja das TChart eine eigene Möglichkeit des Ausdrucks, Kopie in Zwischenablage usw. verfügt.
Aber beides zusammen im Projekt führt halt zu den Schwierigkeiten. Ich habe das ja inzwischen ausführlich bei Fastreport gemeldet und weil die nicht mehr reagierten eine Quality-Central Meldung gemacht: ![]() Wenn Du auch das Problem hast, wäre es nicht schlecht, da einen Kommentar zu hinterlassen und das Problem nochmal zu bestätigen / bekräftigen. Ich arbeite momentan dennoch mit Fastreport. Ich habe den Weg noch nicht genau raus, mit einem Dummy-Projekt und einer Kombination von verschiedenen Schritten schaffe ich es dann doch, dass TChart und Fastreport zusammen nutzbar ist. Die Schritte (nicht konkret reproduzierbar, irgendwann klappt es): * Deaktivieren des TChart-Packages in den Projekt-Optionen (dabei weitere Units nicht automatisch rausnehmen lassen) und Bestätigung mit OK * und einer anschließenden Aktivierung. * Ebenfalls Deaktivierung unter Aktivierung unter Menü "Komponente" Packages installieren. * Delphi beenden, neu starten: Nun kann man das TChart einfügen und auch in seinem Projekt verwenden. Das geht aber nur solange man Delphi nicht beendet bzw. einen Neustart des PC durchführt. Beim nächsten Start wird dann wieder gemeldet, dass TChart nicht gefunden werden kann. Das ist natürlich völlig Gaga, geht aber momentan leider nicht anders. Werde mir auf jeden Fall die Vollversion von Fastreport holen (alleine schon, um alle Dialoge in Deutsch zu haben), da hatte ich mit der Demoversion zumindest weniger Probleme. Fastreport finde ich ansonsten super, auch unter MAC funktioniert es und macht, was es soll. Ich verwende das Standard-TChart aus Delphi XE5 bzw. die Version aus dem Link der o.g. QC-Meldung und die Fastreport-Version, die im EDN-Downloadbereich zur Verfügung steht (vom 24. September 2013). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 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