AGB  ·  Datenschutz  ·  Impressum  







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

Unterbricht FastReport Synchronize?

Ein Thema von Markus Effenberger · begonnen am 18. Apr 2019 · letzter Beitrag vom 18. Apr 2019
Antwort Antwort
Markus Effenberger

Registriert seit: 2. Jul 2014
44 Beiträge
 
Delphi 10.3 Rio
 
#1

Unterbricht FastReport Synchronize?

  Alt 18. Apr 2019, 20:43
Hallo Experten

In einem Projekt wird in einem OnGet in einem HTTPServer ein Ausdruck eines FAstReport angestoßen.
Weil auf das GUI zugegriffen wird, soll immer nur EIN ONGet gleichzeitig ausgeführt werden. Es darf NIEMALS zwei GLEICHZEITIG!
In einem anderen Thread gab mir schon jemand den Tipp, alles in einem Synchronize zu kapseln. (siehe Codeschnippel)


Code:
procedure TfrmMain.HTTPServerCommandGet(AContext: TIdContext;
                                        ARequestInfo: TIdHTTPRequestInfo;
                                        AResponseInfo: TIdHTTPResponseInfo);
begin

  try

    TThread.Synchronize(nil,
       procedure
       begin

         if druckerindex > -1 then
           begin
             frxReportServiceDruck.PrintOptions.Printer := Printer.Printers[druckerindex].Device;

             if frxReportServiceDruck.PrepareReport
               then         frxReportBestellDruck.Print;
           end;

         ANTWORTEN_ERZEUGEN(AContext, ARequestInfo, AResponseInfo);
         // -> AResponseInfo.ContentText

       end
    );

  except
    on e:exception do
      begin
        AResponseInfo.ContentText := 'Systemfehlermeldung vom Server: ' + e.Message;
      end;
  end;

end;
Weiß jemand, ob das Drucken mit dem FastReport wieder irgendwie in einen Thread abkapselt?
Ich habe irgendwie den Eindruck, als wenn es möglich ist, dass ein OnGet gerade ANTWORTEN_ERZEUGEN abarbeitet, während ein anderes OnGet gerade den Report druckt.

Ist das möglich?

Markus
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: Unterbricht FastReport Synchronize?

  Alt 18. Apr 2019, 21:36
Weiß jemand, ob das Drucken mit dem FastReport wieder irgendwie in einen Thread abkapselt?
Ich habe irgendwie den Eindruck, als wenn es möglich ist, dass ein OnGet gerade ANTWORTEN_ERZEUGEN abarbeitet, während ein anderes OnGet gerade den Report druckt.

Ist das möglich?
FastReport ruft intern gelegentlich Application.ProcessMessages auf. Also: Ja, das ist möglich!

Du kannst das vielleicht etwas entschärfen, wenn du bei den EngineOptions im Report das EnableThreadSafe aktivierst:
Delphi-Quellcode:
  frxReportServiceDruck.EngineOptions.EnableThreadSafe := True;
  if frxReportServiceDruck.PrepareReport
  then
    frxReportBestellDruck.Print;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:38 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