AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

Ein Thema von Harry Stahl · begonnen am 22. Apr 2014 · letzter Beitrag vom 19. Mai 2014
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.537 Beiträge
 
Delphi 11 Alexandria
 
#1

Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 19:54
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)?
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 20:08
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 20:22
Zusätzlich zum ClientDataSet gibt es bei FastReport auch noch das TfrxUserDataSet , wo man beliebige Daten von beliebigen Orten dem FastReport zuführen kann.

Das erfolgt über Events, wo dann die Werte der einzelnen Sätze übergeben werden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.537 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 21:29
Danke für Eure Hinweise!

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.

Geändert von Harry Stahl (22. Apr 2014 um 21:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 21:41
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 21:53
und die Frage, ob man das auch zur Laufzeit generieren könnte, wäre noch zu klären.
genauso, wie man eine VCL/FMX-Maske per Code zusammenstellen kann. Es mag solche Anwendungsfälle geben - in den aller meisten ist es aber zweckmäßig die vorhandenen Tools (sprich Designer) zu verwenden.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 21:59
Noch bequemer als TfrxUserDataSet dürfte ein Memory-Dataset sein.
http://www.torry.net/pages.php?id=572 (KbmMemTable ist ganz gut)
Viele Komponentensammlungen wie z.B. von DevArt ( http://www.devart.com/vtable/ ) oder JVCL enthalten ähnliche Datasets.
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.
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.537 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 22:05
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.
MMh, ja, das wäre eine interessante Variante. Wobei ich immer versuche, dass der Anwender mit einer neuen Programmversion basierend auf seinen bisherigen Einstellungen mit dem Programm weiter arbeiten kann, ich will ihm also nicht zumuten, seine eigenen Einstellungen z.B. für das Rechnungsformular noch mal vornehmen zu müssen.

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.

Geändert von Harry Stahl (22. Apr 2014 um 22:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 22:15
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").
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.537 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Fastreport (FMX-Version) ohne Datenbank (im klassichen Sinne) verwendbar?

  Alt 22. Apr 2014, 23:52
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").
OK, werde mir mal das Manual ansehen. Was ich bislang gesehen habe, gefällt mir ganz gut...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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