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 #
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
Version | String | Version des PrintJob-Objekts (immer "1.0") |
ReportName | String | Name des Berichts |
PrinterName | String | Name des Druckers im Betriebssystem |
Fileformat | String | Dateiformat der Druckausgabe |
Filename | String | Dateiname (sofern zutreffend) |
Copies | Integer | Anzahl der Kopien |
Preview | Boolean | True, wenn der Bericht in der Druckvorschau angezeigt wurde |
Username | String | Benutzername des Anwenders |
PcName | String | Computername |
PrinterProfile | String | Verwendete Druckergruppe |
ObjectId | Integer | ID des Datenobjekts (0 bei Listenausgabe) |
ObjectClass | String | Objektklasse des Datenobjekts |
Letterhead | String | Name des verwendeten Briefpapiers |
TargetDevice | String | Ausgabegerä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:
- Prozedur in der Bibliothek anlegen (z.B. unter
\SYSTEM\LIBS\user.userlib.ReportLog) - In der Registry unter
\MODULES\Grundwerteeinen WertReportAfterPrintmit dem InhaltLIBCALL:userlib.UserLogPrintJobsanlegen
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 #
- Client.Print – Berichte drucken
- Report – Berichtsverwaltung