Print Job
Zuletzt geändert: 14.03.2026 11:04

PrintJob #

Nach jedem Druck- oder Dateiausgabevorgang wird ein PrintJob-Objekt mit den relevanten Druckdaten erzeugt. Es steht über den Event-Mechanismus der SQL-Registry zur Verfügung (siehe Beispiel unten).

Eigenschaften #

EigenschaftTypBeschreibung
VersionStringVersion des PrintJob-Objekts (immer "1.0")
ReportNameStringName des Berichts
PrinterNameStringName des Druckers im Betriebssystem
FileformatStringDateiformat der Druckausgabe
FilenameStringDateiname (sofern zutreffend)
CopiesIntegerAnzahl der Kopien
PreviewBooleanTrue, wenn der Bericht in der Druckvorschau angezeigt wurde
UsernameStringBenutzername des Anwenders
PcNameStringComputername
PrinterProfileStringVerwendete Druckergruppe
ObjectIdIntegerID des Datenobjekts (0 bei Listenausgabe)
ObjectClassStringObjektklasse des Datenobjekts
LetterheadStringName des verwendeten Briefpapiers
TargetDeviceStringAusgabegerät (z.B. "PRINTER" oder "FILE")

Integration #

Um nach jedem Druckvorgang automatisch ein Script auszuführen, wird eine Prozedur in der Script-Bibliothek hinterlegt und in der SQL-Registry verknüpft:

  1. Prozedur in der Bibliothek anlegen (z.B. unter \SYSTEM\LIBS\user.userlib.ReportLog)
  2. In der Registry unter \MODULES\Grundwerte einen Wert ReportAfterPrint mit dem Inhalt LIBCALL:userlib.UserLogPrintJobs anlegen

Beispiel #

Jeder Rechnungsdruck wird im Info-Feld der Rechnung protokolliert:

Sub UserLogPrintJobs(job)
  Dim sql
  If job.ObjectClass = "Eulanda.Rechnung" And job.ObjectId > 0 Then
    sql = "UPDATE Rechnung SET Info = " & _
          "ISNULL(CONVERT(varchar(7000),Info)+CHAR(13)+CHAR(10),'') + " & _
          "'Gedruckt von " & job.Username & " am " & CStr(Date()) & "' " & _
          "WHERE id = " & CStr(job.ObjectId)
    Context.Client.ExecuteSql sql
  End If
End Sub

Siehe auch #