AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge [Fastreport] Benutzereinstellungen für Papier abfragen
Thema durchsuchen
Ansicht
Themen-Optionen

[Fastreport] Benutzereinstellungen für Papier abfragen

Ein Thema von joachab · begonnen am 5. Okt 2006 · letzter Beitrag vom 5. Okt 2006
Antwort Antwort
joachab

Registriert seit: 5. Okt 2006
3 Beiträge
 
#1

[Fastreport] Benutzereinstellungen für Papier abfragen

  Alt 5. Okt 2006, 08:01
Hallo,

ich habe BDS06 und FR3.24.
Ich habe ein Report designed für den Standard-Drucker.

Wenn der Benutzer das Report im Preview ansieht, kann dieser die Druckereinstellungen ändern:
Drucker / Papersize / Orientation etc.

Wie komme ich an diese geänderten Daten heran?
Mit TfrxReportPage bekomme ich nur die im Designmode vorgegebenen Daten.
Muss ich in die Untiefen von Win einsteigen?

Danke!
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#2

Re: [Fastreport] Benutzereinstellungen für Papier abfragen

  Alt 5. Okt 2006, 08:38
Abfrage sollte über Unit Printer möglich sein.
Uwe
  Mit Zitat antworten Zitat
joachab

Registriert seit: 5. Okt 2006
3 Beiträge
 
#3

Re: [Fastreport] Benutzereinstellungen für Papier abfragen

  Alt 5. Okt 2006, 09:21
Hallo,

die Klasse TPrinter stellt "nur" den Zugriff auf PaperWidth, PaperHeight, Orientation bereit.
Nicht aber auf PaperSize: Hier wird das eigentliche Papierformat ausgewählt.
Zur Entwicklungszeit kenne ich das Papierformat nicht, da auf dem Zielrechner ein spezieller Drucker eingesetzt wird (Brother Plakettendrucker).
Der Drucker verweigert den Druck mit Papersize=Custom und der passenden PaperWidth und PaperHeight.

RaveReports bietet überhaupt keinen Zugriff auf PaperSize.
FastReport schon, aber eben nicht auf die vom Benutzer ausgewählte PaperSize.

Danke.
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#4

Re: [Fastreport] Benutzereinstellungen für Papier abfragen

  Alt 5. Okt 2006, 09:28
Schau mal ob das bei Dir funktioniert.

Delphi-Quellcode:
function GetPaperSizeIndex : integer;
var p : array [0..99] of WORD;
    pDevMode : PDeviceMode;
    DefSource : Word;
    i : Integer;
    Res : DWord;
begin
  Printer.GetPrinter(ADevice, ADriver, APort, hDMode);
  if (hDMode <> 0) then
  begin
    pDevMode := GlobalLock(hDMode);
    if pDevMode <> nil then
    begin
      DefSource := pDevMode^.dmPaperSize;
      Res := DeviceCapabilities(ADevice,APort,DC_PAPERS,PCHAR(@p[0]),pDevMode);
      for i := 0 to Res-1 do
      if DefSource = p[i] then break;
    end;
    GlobalUnlock(hDMode);
    result := i; //Gibt Nr in Array (p) zurück
  end;
end;
Uwe
  Mit Zitat antworten Zitat
joachab

Registriert seit: 5. Okt 2006
3 Beiträge
 
#5

Re: [Fastreport] Benutzereinstellungen für Papier abfragen

  Alt 5. Okt 2006, 11:28
Hallo uwewo,

vielen Dank! Dein Ansatz sieht sehr vielversprechend aus.
Das Problem liegt scheinbar schon weiter vorne:

Delphi-Quellcode:
frxReport1^.ShowReport();
i:=GetPaperSizeIndex;
Schon _nach_ dem Aufruf von ShowReport hat das Objekt TPrinter nicht mehr die Printer-Einstellungen, die ich innerhalb ShowReport() eingestellt habe.
Und damit lande ich beim default-Printer mit seinen Einstellungen
Und mit dem funktioniert deine (geniale) Funktion GetPaperSizeIndex.

Problem klar?
Danke schonmal!
  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 00:13 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