Announcement

Collapse
No announcement yet.

Ansteuerung Druckerschacht mit Delphi 5 / QReport

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ansteuerung Druckerschacht mit Delphi 5 / QReport

    Hallo,

    ich verwende als Reporting Tool unter Delphi 5 Quick Report 3.0.5. und will zwei Druckerschächte betreiben. Nun funktioniert die Schachtansteuerung ja bekannterweise nicht richtig (QReport wählt immer den Standardschacht aus).
    Ich habe schon mehrere Tips probiert (QRPRNTR.PAS habe ich nicht, printersettings.outputbin, zwei unterschiedliche Druckertreiber..) , ohne Erfolg.

    Hat jemand eine Lösung ?

    Vielen Dank, Gruss

    Karl

  • #2
    Hallo,

    Erst ab der Version 3.62 ist es möglich, auf die Ansteuerung der Druckerschächte Einfluss zu nehmen. Ohne Zugriff auf die qrprntr.pas gibt es für eine Version darunter keine Lösung

    Comment


    • #3
      Hallo Bruno,

      mit dem Thema habe ich mich auch herumgeschlagen : schlechte Doku, viele bugs. Es ist zum AusderHautfahren !

      Meine Lösung sieht so aus :

      procedure drucken ...
      var MyBin : QRPrntr.Upper; // .Middle .Lower .Last
      begin
      try
      QuickRep1.Prepare;
      // Drucker auswählen (pidx:integer -> Printerindex)
      QuickRep1.QRPrinter.PrinterIndex := pidx;
      // Schacht zuordnen
      QuickRep1.QRPrinter.OutputBin := MyBin;
      // Titel zuordnen
      QuickRep1.QRPrinter.Title := 'Auftragsbeleg';
      // drucken (mit viel Vorsicht, Mühe und ProcessMessages)
      QPrint(QuickRep1);
      finally
      QuickRep1.QRPrinter.Free;
      QuickRep1.QRPrinter:=nil;
      end;
      end;

      procedure QPrint(var q:TQuickRep);
      var i : integer;
      begin
      q.QRPrinter.PaperSize:=QRPrntr.A4;
      Application.ProcessMessages;
      if q.Available then
      begin
      q.QRPrinter.Print;
      end else
      begin
      i:=0;
      repeat
      INC(i);
      Application.ProcessMessages;
      until ((q.Available) or (i>1000));
      if q.Available
      then q.QRPrinter.Print;
      else MessageDlg('Druckerfehler',mtError,[mbOK],0);
      end;
      Application.ProcessMessages;
      end;

      Gruß Volke

      Comment


      • #4
        Hallo Bruno
        Bin auch am gleichen Problem. Habe nun die neuste Version 3.6.2 gekauft aber auch da wird man nicht schlau wie man vorgehen soll?. Hat jemand ein Lösungsbeispiel?
        Vielen Dank?
        Gerry Zumbrunne

        Comment

        Working...
        X