Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FastReport in Konsolenanwendung (https://www.delphipraxis.net/216618-fastreport-konsolenanwendung.html)

t2000 29. Jan 2025 07:14

FastReport in Konsolenanwendung
 
Ich benötige mal einen schnellen Tipp von jemanden mit Kenntnissen in FastReport in unterschiedlichen Anwendungsfällen.

Wir haben (im REST Backend) verschiedene Server. Darunter jetzt auch einen, der mit Hilfe von FastReport Berichte erzeugen soll.
Alle Server sind Konsolenanwendungen. Zur Zeit laufen alle auf Windows, sollen aber später (zumindest teilweise) auch auf Linux laufen. (nicht der Report Server)
Der Reportserver mit FastReport ist eine VCL Anwendung, bei der die Mainform versteckt ist.
Delphi-Quellcode:
Application.ShowMainForm:= False;
Im Releasemodus laufen alle Server komplett unsichtbar. Die Steuerung erfolgt über einen Basisserver. Dieser wird auf Windows durch einen Windows-Dienst gestartet.
Im Debugmodus ist ein Konsolenfenster sichtbar. Dort laufen die Logs. Ein durch den Baasisserver gestartetes Modul nutzt das selbe Konsolenfenster, wie der Basisserver. Nur wenn ein Programm separat/manuell gestartet wird, hat es ein eigenes Konsolenfenster.
Genauso wollen wir das auch haben.

Der ReportServer hat für das Logging auch ein Konsolenfenster. Aber dies wird IMMER separat geöffnet.
Am liebsten wäre es uns, wenn der Reportserver eine "echte" Konsolenanwendung wäre. Aber ich glaube, das geht mit Fastreport nicht. Oder doch?
Wir haben noch kaum FastReport Erfahrung.

Gibt es Tipps, um einen EIGENEN Fastreport-Reportserver als REST Anwendung im Backend laufen zu lassen?

(es geht nur um das Server Programm. Formulare kommen aus der Datenbank. Das Erzeugen von Formularen erfolgt in einer separaten VCL Anwendung. Der Reportserver erzeugt als Ergebnis IMMER ein PDF, welches dann dem Nutzer über eine REST-API zur Verfüghung gestellt wird.)

Danke euch

Der schöne Günther 29. Jan 2025 10:47

AW: FastReport in Konsolenanwendung
 
Ich habe noch nicht verstanden, was das überhaupt mit FastReport zu tun hat.
Die Konsolen-Debug-Ausgabe habt ihr doch selbst gemacht, richtig?

Ihr habt da irgendwo mit
Delphi-Quellcode:
AllocConsole()
explizit eine neue Konsole angelegt? Ansonsten steuerst du in deinen Delphi-Projektoptionen OB das eine Konsolenanwendung sein soll, oder nicht.

Auch lesenswert:

https://devblogs.microsoft.com/oldne...01-00/?p=19643

Olli73 29. Jan 2025 10:50

AW: FastReport in Konsolenanwendung
 
Das geht in jedem Fall, ich habe sowas schon in Zusammenhang mit uniGUI genutzt. Es sind 2, 3 Einstellungen zu machen, ich kann dir aber nicht mehr sagen welche. Vielleicht findest du im uniGUI Forum was.

t2000 29. Jan 2025 13:57

AW: FastReport in Konsolenanwendung
 
Was das mit FastReport zu tun hat:

Wir haben FastReport VCL Enterprise oder so ähnlich lizensiert. Das bedeutet, dass die Komponenten auf der VCL aufsetzen. So vermute ich.
Was wir nicht wissen, welche VCL Units werden genutzt?
Kann ich frxReport usw. in einer Konsolenanwendung ohne Delphi VCL.* Units nutzen?
Benötigen die FastReport Komponenten etwas von Delphi, was in einer Konsolenanwendung nicht vorhanden ist?
Wir haben z.B. dort zentral in allen Servern eine eigene ProcessMessages Routine, zur Behandlung von Windows Nachrichten. (Etwas ähnliches später auch für Linux, aber das tut hier nichts zur Sache)

Ich wollte einfach nur mal so in die Runde fragen, bevor ich jetzt anfange, und alle Sourcen untersuche.

Wir stehen mit der intensiven Nutzung von FastReport noch ganz am Anfang und klopfen estmal alles ab.

peterbelow 29. Jan 2025 14:15

AW: FastReport in Konsolenanwendung
 
Zitat:

Zitat von t2000 (Beitrag 1545748)
Was das mit FastReport zu tun hat:

Wir haben FastReport VCL Enterprise oder so ähnlich lizensiert. Das bedeutet, dass die Komponenten auf der VCL aufsetzen. So vermute ich.
Was wir nicht wissen, welche VCL Units werden genutzt?
Kann ich frxReport usw. in einer Konsolenanwendung ohne Delphi VCL.* Units nutzen?
Benötigen die FastReport Komponenten etwas von Delphi, was in einer Konsolenanwendung nicht vorhanden ist?
Wir haben z.B. dort zentral in allen Servern eine eigene ProcessMessages Routine, zur Behandlung von Windows Nachrichten. (Etwas ähnliches später auch für Linux, aber das tut hier nichts zur Sache)

Eine Konsolenmanwendung kann durchaus VCL-Units verwenden, modale Fenster sind z. B kein Problem, weil sie eine interne message loop verwenden. Nicht-modale Fenster funktionieren aber nicht wie gewohnt, da der main thread in einer Konsolenanwendung keine (VCL) message loop hat. Es hängt also davon ab was Fastreport halt da nutzt.

t2000 29. Jan 2025 14:35

AW: FastReport in Konsolenanwendung
 
Zitat:

Zitat von peterbelow (Beitrag 1545750)
...
... Es hängt also davon ab was Fastreport halt da nutzt.

Genau das war meine Frage (an alle FastReport-Kenner*innen) :)

Olli73 29. Jan 2025 18:25

AW: FastReport in Konsolenanwendung
 
Du könntest es mal so ähnlich probieren:

https://forums.unigui.com/index.php?...ndComment-8850


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:41 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