Announcement

Collapse
No announcement yet.

procedure -Aufruf, aber wie?

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

  • procedure -Aufruf, aber wie?

    Hallo,
    ich habe folgende procedure:
    <pre>
    procedure TDruck.BtnPDFClick(Sender: TObject);
    var
    AFilter: TPsQRPDFFilter;
    begin
    AFilter := TPsQRPDFFilter.Create(Pfad + 'Transport.pdf');
    try
    Transportauftrag.QuickRep1.Prepare;
    Transportauftrag.QuickRep1.ExportToFilter(AFilter) ;
    finally
    Transportauftrag.QuickRep1.QRPrinter.Free;
    Transportauftrag.QuickRep1.QRPrinter := nil;
    AFilter.Free;
    end;
    end;
    </pre>

    da ich mehrere verschiedene Formulare habe, möchte ich das ganze mit diesem Aufruf machen:

    procedure DruckPDF(Transportauftrag);
    <pre>
    procedure TDruck.DruckPDF(??);
    var
    AFilter: TPsQRPDFFilter;
    begin
    AFilter := TPsQRPDFFilter.Create(Pfad + 'Transport.pdf');
    try
    ??.QuickRep1.Prepare;
    ??.QuickRep1.ExportToFilter(AFilter);
    finally
    ??.QuickRep1.QRPrinter.Free;
    ??.QuickRep1.QRPrinter := nil;
    AFilter.Free;
    end;
    end;
    </pre>
    Leider fällt mir im Moment nichts ein, womit ich die Fragezeichen ersetze.
    Kann mir jemand auf die Sprünge helfen?

    Danke.
    Rolf


  • #2
    Du könntest entweder direkt den Report übergeben, so daß das ganze dann so aussieht:
    <br>
    <pre>
    procedure DruckPDF(AReport:Tquickreport);
    var AFilter: TPsQRPDFFilter;
    begin
    AFilter := TPsQRPDFFilter.Create(Pfad + 'Transport.pdf');
    try
    AReport.Prepare;
    AReport.ExportToFilter(AFilter);
    finally
    AReport.QRPrinter.Free;
    AReport.QRPrinter := nil;
    AFilter.Free;
    end;

    Der aufruf erfolgt dann über DruckPDF(Transportauftrag.QuickRep1).
    Wenn Du es aber mit gleichen Formularen zu tun hast, machst kannst Du es folgendermaßen machen:

    procedure TDruck.DruckPDF(AForm:TTransportauftrag);
    var AFilter: TPsQRPDFFilter;
    begin
    AFilter := TPsQRPDFFilter.Create(Pfad + 'Transport.pdf');
    try
    AForm.QuickRep1.Prepare;
    AForm.QuickRep1.ExportToFilter(AFilter);
    finally
    AForm.QuickRep1.QRPrinter.Free;
    AForm.QuickRep1.QRPrinter := nil;
    AFilter.Free;
    end;
    end

    Comment


    • #3
      @Frank

      vielen Dank für die Hilfe.
      Ich habe mich für die erste Variante entschieden.

      Gruß
      Rol

      Comment

      Working...
      X