DocumentPrint()
DocumentPrint() – Druck eines Individualbelegs
Die Funktion druckt einen Individual-Beleg, welcher dann im Belegarchiv abgelegt ist.
Hinweis
Es handelt sich hierbei um eine einfache Umsetzung des Belegdruckes, erweiterterte Möglichkeiten zum Belegdruck (z.B. Stapeldruck) bietet die Klasse "TBeIndiPrintData".
DocumentPrint() sollte nicht mehr für den Druck von Standardbelegen verwendet werden. Verwenden Sie stattdessen die jeweilige Druck-Klasse des Belegs (z.B. "TBeDelivData" für Lieferscheine).
Bei Verwendung eines Standard-Belegtyps haben alle Parameter nach nPersNo keine Bedeutung. Als nDocType sind folgende Standard-Belegtypen erlaubt:
- 40 = Kommissionierschein (nicht in beas)
60 = Lieferschein
Parameter | Beschreibung |
---|---|
nPrintMode:N | Druckmodus entsprechend ReportPrint() RM_LAYOUT und RM_PRINT |
nDocType:N | Indi.Dokument-Typ (entspr. Archiv-Belegart), 900-999, |
nDocNo:N | Dokument-Nr. frei zu vergeben |
nPersNo:N | Pers.Nr. frei zu vergeben |
aTables:A | Array mit Tabellen, die beim Belegdruck bzw. Design zur Verfügung stehen |
oPrintConnect:O | ADS-Connection auf der die Belegverarbeitung laufen soll; default = Standard-Connection |
dPrintDate:D | Druckdatum des Beleges; default = Buchungsdatum |
lProcessDataOnly:L | Verarbeitung ohne Druck; default = false |
evOnProcDataBefore:C | Event zur Datenverarbeitung vor Belegdruck; default = Leerstring |
evOnProcDataAfter:C | Event zur Datenverarbeitung nach Belegdruck; default = Leerstring |
Rückgabewert
Keiner
Beispiel
| oDab010, oConnect, oDM, arrArt, nDocNo, nMode |
// In diesem Beispiel wird ein einfacher Einzel-Belegdruck ausgeführt
// Events ----------------------------------------------------------------------
// Events zur Datenverarbeitung des Beleges
function ProcessDataBefore(aSender)
// Verarbeitung der Belegdaten (VOR dem Druck)
// Achtung ! Transaktion auf oConnect und somit oDab010 ist aktiv !
Meld('ProcessDataBefore'),
end,
function ProcessDataAfter(aSender)
// Verarbeitung der Belegdaten (NACH dem Druck)
// Achtung ! Transaktion auf oConnect und somit oDab010 ist aktiv !
Meld('ProcessDataAfter'),
end,
// Hauptprogramm ---------------------------------------------------------------
// WICHTIG: Folgende Zeilen erstellen ein TBeDBGet-Objekt, sowie eine Tabelle
// welche auf der Connection des TBeDBGet-Objektes läuft !
// Die Connection wird an die DocumentPrint()-Funktion weitergegeben und somit
// kann die oDAb010 in den ProcessData-Events transaktionsgestützt(!) eingesetzt werden !!
oDM := CreateObject("TBeDBGet"),
oDab010 := DbGetTable(oDM, waDAB010),
startseq,
DBScope('A', 'A', oDab010),
nMode := RM_LAYOUT,
//nMode := RM_PRINT,
DocumentPrint( nMode, 901, 6000, 4713, {oDab010}, oDM.AdsConnection,
DATE(), false, "ProcessDataBefore", "ProcessDataAfter"),
always,
DestroyObject(oDab010),
DestroyObject(oDM),
stopseq,