TCbReport
TCbReport
Dient zum Erstellen und Drucken von Reports.
Erstellen des Reports:
Ein TCbReport-Objekt wird im Codeblock mit der Funktion ReportInit() erzeugt. Es ist auch möglich, den Report mit der Funktion CreateObject('TCbReport') zu erzeugen, jedoch kann man dann keine Tabelle als Datenquelle übergeben.
Designen des Reports:
Vor dem Druck des Reports muss noch ein Layout erstellt werden, dies geschieht mit dem Aufruf von ReportPrint(), wobei als Modus rm_Print übergeben wird.
Drucken des Reports:
Gedruckt wird der Report ebenfalls mit der Funktion ReportPrint(), wobei als Modus rm_Print übergeben wird.
Unterschiede zu TBeCbArchive:
Anders als die TBeCbArchive-Klasse wird bei TCbReport kein Beleg aus dem Belegarchiv geladen sondern ein neuer Report erstellt. Außerdem gibt es hier keine Möglichkeit bereits im Codeblock einen E-Mail-Anhang oder den E-Mail-Text zu setzen. Dies muss dann alles an der Oberfläche durch den Benutzer geschehen.
Dummy-Reports:
Da man dem TBeCbArchive-Objekt nur den Papierschachtnamen übergeben kann, wird das TCbReport-Objekt als sogenannter "Dummy-Report" verwendet. Damit kann dann mithilfe der Liste aller vorhandenen Papierschächte (OrgBins bzw. CopyBins) und über die Druckerzuweisungen (DabR30) der passende Schachtname ermittelt werden.
Eigenschaften
Eigenschaft | Beschreibung |
---|---|
RParams:U | Report-Parameter oder Array mit Parametern |
TestPrint:L | (default) False = Normaler Druck |
OrgPrinting:L | Gibt an, ob gerade ein Original oder eine Kopie gedruckt wird (Ist nur im OnSelectBin-Event valide) |
SaveSetupDlg:L | (default) False = Einstellungen, die auf dem Druck-Dialog gesetzt werden, nicht gespeichert |
CanFax:L | (default) False = Report kann nicht per Fax versandt werden |
CanMail:L | (default) False = Report kann nicht per E-Mail versandt werden |
AlwaysPrint:L | True = Führt einen zusätzlichen Druck mit dem normalen Drucker aus, auch wenn der Report bereits per E-Mail oder Fax versandt wird |
UsePrintDlg:L | (default) True = Druck-Dialog wird angezeigt |
UseTransaction:L | (default) False = Der Druck wird nicht in einer Transaktion ausgeführt |
SelectLayout:L | (default) True = Das Report-Layout kann im Druck-Dialog gewählt werden |
OrgPrinterName:C | Name des Druckers für das Original |
OrgBinP1:N | Papierschacht für die erste Seite des Originals |
OrgBinPx:N | Papierschacht für die anderen Seiten des Originals |
OrgCount:N | Anzahl der Originale (default = 1) |
CopyPrinterName:C | Name des Druckers für die Kopie(n) (Standardmäßig OrgPrinterName) |
CopyBinP1:N | Papierschacht für die erste Seite der Kopie(n) |
CopyBinPx:N | Papierschacht für die anderen Seiten der Kopie(n) |
CopyCount:N | Anzahl der Kopien (default = 0) |
ReportNo:N | Nummer des Report-Layouts |
DocNo:U | Beleg-Nummer (frei zu vergeben) |
KeyNo:U | Auftrags- bzw. Vorgangs-Nummer. Wird beim Versand per E-Mail an das BatchMail-Objekt übergeben (frei zu vergeben werden) |
PersNo:N | Kunden-Nummer oder Vertreter-Nummer, etc. Wird beim Versand per E-Mail an das BatchMail-Objekt übergeben (frei zu vergeben werden) |
LockStr:C | Durch setzen dieser Eigenschaft wird beispielsweise beim Stapel-Druck verhindert, dass andere Benutzer auf die gleichen Datensätze zugreifen können und somit der Druck-Vorgang unterbrochen wird |
DefPrinterName:C | (readonly) Name des Standard-Druckers |
PrinterList:U | (readonly) Liste aller verfügbaren Drucker |
OrgBins:U | (readonly) Liste der Papierschächte für den Druck des Originals |
CopyBins:U | (readonly) Liste der Papierschächte für den Druck der Kopien(n) |
Done:L | (readonly) True = Druck wurde abgeschlossen |
Page:O | (readonly) Aktuelle Seite des Reports als Objekt (Ist nur im OnSelectBin-Event valide) |
Verfügbare Ereignisse
Ereignis | Beschreibung |
---|---|
OnNewDocNo | Beim Vergeben einer neuen Dokumenten-Nummer |
OnInitPrintValues | Beim Initialisieren der Print-Values |
OnFillPrintValues | Beim Füllen der Print-Values |
OnDetailPrinted | Nach dem Druck des Detail-Bereiches für einen Datensatz auf dem Report |
OnSetLocks | Beim Setzen der Sperren |
OnResetLocks | Beim Zurücksetzen der Sperren |
AfterPrint | Nach dem Druck |
OnProcessData | Beim Verarbeiten der Daten |
OnSelectBin | Beim Auswählen des Papierschachtes |
Beispiel
//##############################################################################
//##############################################################################
// Beschreibung: Online-Hilfe Beispiel für die Klasse 'TCbReport'
//##############################################################################
//##############################################################################
| oReport, DAB010:DB:='waDab010, Dab011' |
oReport := ReportInit('Test-Report', DAB010),
startseq
// Faxen und Mailen des Reports ermöglichen
oReport.CanFax := True,
oReport.CanMail := True,
if Jn('Report-Layout bearbeiten?', False) then
ReportPrint(oReport, rm_Layout), // Report designen
else
ReportPrint(oReport, rm_Print), // Report drucken
endif,
always
DestroyObject(oReport),
stopseq,