AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FastReport Anfängerfrage

Ein Thema von t2000 · begonnen am 7. Sep 2020 · letzter Beitrag vom 8. Sep 2020
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#1

FastReport Anfängerfrage

  Alt 7. Sep 2020, 17:29
Ich habe einen frxReport und ein frxUserDataSet.
Im frxUserDataSet.Fields(Stringlist) ist genau ein Eintrag drin: 'QRCode'
frxReport hat eine Seite 8x8cm und dort drin ist nur eine Element: Ein QRCode

Ziel der Sache: Ich bekomme einen String und muss dazu einen QRCode erstellen und den als Bitmap abspeichern
FastReport (Enterprise) habe ich sowieso, daher dachte ich, ich nehme das. Fange aber gerade erst mit FastReport an und habe bisher nicht ein einzigen Bericht damit gemacht

Das VCL Programm hat weiterhin eine frxPreview Komponente auf der Form, die den Code anzeigt.

Ganz simpel:

Delphi-Quellcode:
type
  TfrmMain = class(TForm)
    btnMachen: TButton;
    frxReport: TfrxReport;
    frxPreview: TfrxPreview;
    frxUserDataSet: TfrxUserDataSet;
    procedure btnMachenClick(Sender: TObject);
    procedure frxDataSetGetValue(const VarName: string; var Value: Variant);
  private
  public
    QRCode : String;
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}


procedure TfrmMain.btnMachenClick(Sender: TObject);
begin
  QRCode := 'Dies ist mein Test-QRCode';
  frxReport.ShowReport;
end;

procedure TfrmMain.frxDataSetGetValue(const VarName: string; var Value: Variant);
begin
  Value := QRCode;
end;
Wenn ich das starte, sehe ich den QRCode im Preview. Ohne separate Form, so wie ich es möchte. Aber das Programm lässt sich nicht mehr beenden. Ich vermute, da ist ein unsichtbares Fenster aktiv.
Weiterhin glaube ich, das mein Vorgehen mal so gar nicht in Ordnung, geschweige denn gut und sinnvoll, ist.

Hat jemand dazu einen Vorschlag?
Also mal eben ganz simpel aus einem String ein QRCode-Bitmap machen und als Datei speichern.

Dank euch.

Gruß Thomas
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Der schöne Günther
Online

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

AW: FastReport Anfängerfrage

  Alt 7. Sep 2020, 17:31
Die Previews in FastReport habe ich nie genutzt, aber du hast doch einen Debugger. Wenn sich das Programm beim Verlassen aufhängt drück im Debugger doch einfach mal auf Pause ⏸ und schaue wo er genau hängt.
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#3

AW: FastReport Anfängerfrage

  Alt 7. Sep 2020, 17:49
in der ntdll. In einem UserThread. Habe dort keine 10 Zeilen asm-code zum debuggen.

Aber ich denke, hier geht es um eine grundsätzliche Sache. Wie man mit FastReport und Preview arbeiten kann.
Ich werde es wohl herausfinden, aber die Zeit drängt gerade sehr.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#4

AW: FastReport Anfängerfrage

  Alt 7. Sep 2020, 19:24
Ab FastReport Version 5 gibt es die BarCode Komponente. Lass erst einmal die Datenbindung weg. Erstelle einen neuen Report im Designer. Schiebe die gewünschte BarCode Komponente auf die leere Seite. Mach einen Doppelklick auf die Komponente und trage im Editor unter Code (erste Zeile) z.B. "<Date>" ein. Dann zeigt dir das Preview das aktuelle Datum als BarCode an. Du hast dabei die Variable "Date" mit der BarCode Komponente verbunden. Auf gleiche Weise kannst du das auch mit allen anderen Datenquellen machen.

Du musst den Report immer erst zusammenstellen. Entweder durch ein ShowReport(), oder ohne Anzeige der Vorschau mit einem PrepareReport().
Zum Speichern kann man eine Export Klasse verwenden. Zum Beispiel als PDF speichern:
Delphi-Quellcode:
var
  memStream: TMemoryStream;
  pdfExport: TfrxPDFExport;
begin
  memStream := TMemoryStream.Create;
  try
    pdfExport := TfrxPDFExport.CreateNoRegister;
    try
      pdfExport.Stream := memStream;
      pdfExport.Compressed := True;
      pdfExport.ShowDialog := False;
      pdfExport.ShowProgress := False;
      frxReport.Export(pdfExport);
    finally
      pdfExport.Free;
    end;
...
Oder es gibt auch noch die IOTransport Klassen. Da musst schauen, was für dich günstiger ist.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#5

AW: FastReport Anfängerfrage

  Alt 8. Sep 2020, 07:54
Das hatte ich ja gemacht.
Ich habe ein BarCode Element genommen. Und einen Text zugewiesen. Danach anstelle der direkten Zuweisung ein UserDatenSet genommen, damit ich den Wert VON HAND setzen kann. Ich bekomme den ja einfach als String von extern übergeben.
Das ist alles gut und schön.
Aber wie rufe ich den Bericht auf? Als Preview in meiner Form. Egal ob ich ShowReport oder PrepareReport aufrufe, der Bericht bleibt in genau dieser Funktion hängen und kommt nicht wieder.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#6

AW: FastReport Anfängerfrage

  Alt 8. Sep 2020, 08:00
Es muss am UserDataSet liegen. Ein ganz simples Beispiel ohne funktioniert.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#7

AW: FastReport Anfängerfrage

  Alt 8. Sep 2020, 08:09
Ich glaube, wir können hier schließen.

TfrxUserDataSetCheckEOF(Sender: TObject; var Eof: Boolean);

muss genutzt werdenn, damit das eigene DataSet ein Ende-Signal gibt.

Leider habe ich keinerlei "nutzbare" Dokumentation zu FastReport gefunden, so dass so ein kleines Problem mich über 2 Stunden gekostet hat.

Kennt jemand eine Hilfe-Quelle zu Fastreport, die neuer als von 2012 ist?

Ich meine nicht diese: https://www.fast-report.com/de/download/documentation/
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Der schöne Günther
Online

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

AW: FastReport Anfängerfrage

  Alt 8. Sep 2020, 08:19
Der Frage schließe ich mich an, mir ging es damals genauso. Bin damals auch nur durch Ausprobieren weitergekommen.
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#9

AW: FastReport Anfängerfrage

  Alt 8. Sep 2020, 13:44
Einzelne Werte kannst du auch als Variable definieren. Das geht im Designer oder per Quellcode mit:
Delphi-Quellcode:
var
  variable: TfrxVariable;
begin
  variable := frxReport.Variables.Add;
  variable.Name := 'QRCode';

  variable := frxReport.Variables.Add;
  variable.Name := 'Index';
...
Und dann vor dem Zusammenstellen des Berichts die Variable füllen:
Delphi-Quellcode:
frxReport.Variables['QRCode'] := StrSingleQuote('Mein QRCode');
frxReport.Variables['Index'] := 20;
Für FastReport gilt oft: Viele Wege führen nach Rom. Bedeutet aber gleichzeitig, dass auch Neulinge irgendwann zum Ziel kommt. Einfach loslegen, nach den ersten 100 Berichten hat man es dann drauf.

Allgemein ist es hilfreich, bei der Arbeit mit dem Designer nicht pixel- sondern vektororientiert zu denken. Erfahrungen mit einem Vektorzeichenprogramm sind sehr vorteilhaft.

Seit einiger Zeit gibt es auch Beispiele im Blog: How to create a sales receipt from a Delphi application

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
232 Beiträge
 
Delphi 12 Athens
 
#10

AW: FastReport Anfängerfrage

  Alt 8. Sep 2020, 14:25
Danke für die Infos. Das sehe ich mir mal an.
Für für das erste Adapter-Programm reicht es jetzt. Das läuft und tut was es soll. Aber die Mengen an Berichten die noch noch kommen werden, ... hoffen wir das Beste.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:35 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