AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

FastReport ohne Datenbank

Ein Thema von Friday · begonnen am 15. Apr 2021 · letzter Beitrag vom 16. Apr 2021
Antwort Antwort
Friday

Registriert seit: 6. Mai 2008
97 Beiträge
 
Delphi 11 Alexandria
 
#1

FastReport ohne Datenbank

  Alt 15. Apr 2021, 12:34
Hallo,
mit Delphi 10.4.2 und dem darin enthaltenen FastReport 6 möchte ich meinen ersten Report erstellen.
Eine Datenbank ist nicht vorhanden, auch keine Dateien, sondern Daten die im Programm generiert werden, sollen als Report ausgegeben werden.
Meinem Verständnis nach geht das mit TfrxUserDataSet, bei dem im Ereignis
Code:
procedure TForm1.TfrxUserDataSet1GetValue(const VarName: string; var Value: Variant);
oder
Code:
procedure TForm1.TfrxUserDataSet1NewGetValue(Sender: TObject; const VarName: string; var Value: Variant);
programmatisch Value der gewünschte Wert in Abhängigkeit von VarName und der Anzahl wie oft das Ereignis bereits aufgerufen wurde zugewiesen wird.

Meine Frage dazu: Gibt es auch eine Möglichkeit die Daten im Vorfeld alle in ein bzw mehrere DataSets zu füllen (ohne extra eine xml Datei oder Datenbank zu erstellen)?
Leider gibt es von FastReport keine Samples in der mitgelieferten Version und auch die Hilfe ist zu diesem Thema dürftig.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: FastReport ohne Datenbank

  Alt 15. Apr 2021, 12:58
Ich bin kein FastReport-Experte, traue mich aber zu sagen "Ja, die UserDataSets sind der richtige Weg dafür".

Ich persönlich habe die am Schluss trotzdem nie genutzt da mein Anwendungsfall eher war "Mach ein schönes A4-Blatt" statt "Band-Reports mit dynamischer Länge". Ich gehe dann einfach hin, suche mir auf dem Report die Komponenten (Textfelder) mit dem jeweiligen Namen (z.B. clientAddressTextbox), und setze den Inhalt per Code. Das geht natürlich immer ��
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#3

AW: FastReport ohne Datenbank

  Alt 15. Apr 2021, 13:03
Delphi-Referenz durchsuchenTClientDataSet
MemoryDataSet
VirtualDataSet
oder wie auch immer ein Hesteller es nennt

* Columns erstellen
* Dataset aktiv setzen
* und dann viele Insert+Post, bis voll
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.449 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: FastReport ohne Datenbank

  Alt 15. Apr 2021, 13:36
mit Delphi 10.4.2 und dem darin enthaltenen FastReport 6 möchte ich meinen ersten Report erstellen.
Eine Datenbank ist nicht vorhanden, auch keine Dateien, sondern Daten die im Programm generiert werden, sollen als Report ausgegeben werden.
Meinem Verständnis nach geht das mit TfrxUserDataSet, bei dem im Ereignis
Code:
procedure TForm1.TfrxUserDataSet1GetValue(const VarName: string; var Value: Variant);
oder
Code:
procedure TForm1.TfrxUserDataSet1NewGetValue(Sender: TObject; const VarName: string; var Value: Variant);
programmatisch Value der gewünschte Wert in Abhängigkeit von VarName und der Anzahl wie oft das Ereignis bereits aufgerufen wurde zugewiesen wird.
Soweit korrekt. Machen wir seit Jahren so - allerdings mit der Vollversion von Fastreport.

Zitat:
Meine Frage dazu: Gibt es auch eine Möglichkeit die Daten im Vorfeld alle in ein bzw mehrere DataSets zu füllen (ohne extra eine xml Datei oder Datenbank zu erstellen)?
Leider gibt es von FastReport keine Samples in der mitgelieferten Version und auch die Hilfe ist zu diesem Thema dürftig.
Das wiederum geht nicht mit frxUserDataSet. Dazu muss man ein anderes Dataset verwenden, das man so fuellen kann, TMemTable oder sowas.
Thomas Mueller
  Mit Zitat antworten Zitat
softwarejunk

Registriert seit: 14. Apr 2021
6 Beiträge
 
#5

AW: FastReport ohne Datenbank

  Alt 15. Apr 2021, 16:18
Ich bin ebenfalls kein Experte, kann aber Günther in seiner Meinung nur bestätigen. Ich hoffe dir hilft es. Du kannst von weiteren Fortschritten gerne berichten.


Liebe Grüße
Katharin
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.163 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: FastReport ohne Datenbank

  Alt 15. Apr 2021, 16:19
Ich hab das mit einer StingList() mal so gemacht

Delphi-Quellcode:
TYPE
  Tfrm_Main = class(TForm)
    ...
    frxReport1: TfrxReport;
    StringDS: TfrxUserDataSet;
    

 
PROCEDURE Tfrm_Main.frxReport1GetValue(
  CONST
  VarName:
  STRING;
  VAR
  Value:
  Variant );
BEGIN
  IF CompareText( VarName, 'element' ) = 0 THEN Value := sl[StringDS.RecNo];
END;
 
 


 Procedure....
.....
      Screen.Cursor := crSQLWait;
    TRY
      BEGIN
        StringDS.RangeEnd := reCount;
        StringDS.RangeEndCount := sl.Count;
        frxReport1.ShowReport;
      END;
    FINALLY
      Screen.Cursor := crDefault;
    END;


Edit: Das ist in der Demo von FastReport auch so beschrieben (...FastReport6\Demos\PrintStringList\)
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (15. Apr 2021 um 21:14 Uhr) Grund: Code war nicht vollständig, danke an TurboMagic!
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.772 Beiträge
 
Delphi 12 Athens
 
#7

AW: FastReport ohne Datenbank

  Alt 15. Apr 2021, 20:43
Wo werden denn hier die Daten in das UserDataset geschrieben?
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.163 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: FastReport ohne Datenbank

  Alt 15. Apr 2021, 21:17
@TurboMagic,
Danke für den Hinweis!
Ich hatte das Event GetValue() vom frxReport1 ganz vergessen.
Habe das in meinem Code-Ausschnitt ergänzt.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Friday

Registriert seit: 6. Mai 2008
97 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: FastReport ohne Datenbank

  Alt 16. Apr 2021, 07:29
Danke für die Hinweise, vielleicht bleibe ich dann doch erstmal beim frxUserDataSet. Bis auf Bilder in Bands (also Zuweisung des Bildes über Ereignis OnGetBlobValue) klappt das so auch.
Aber aktuell reicht mir auch die Zuweisung einzelner Bilder.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:24 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