Kaufmännische Software für Handel, Handwerk und Produktionsbetriebe
Client.Print(Report, Data, Target, Targetinfo)
Der Name des zu druckenden Reports - nicht zu verwechseln mit dem Anzeigenamen im Menü.
Die zu druckenden Daten. Je nach verwendetem Report kann hier ein einzelnes Objekt oder eine ganze Menge von Daten angegeben werden. Andere Reports wiederum erzeugen die Daten komplett selbst. In diesem Fall wird die Angabe Data ingnoriert. Beispiele:
| Report | Type | SubType | Bemerkung |
|---|---|---|---|
| cnsoft.Adresse.Stammdaten | MULTI | LIST | Data wird als Menge von Daten interpretiert |
| cnsoft.Artikel.Stat.ErloesGr.AktuellesJahr | EMBEDDED | Data wird ignoriert. Alle Daten werden innerhalb des Reports erzeugt | |
| cnsoft.Auftrag.Auftragsbestaetigung | MULTI | SINGLEOBJECT | Data wird als einzelner Datensatz interpretiert. Bei Übergabe eines Datasets wird nur der aktuelle Datensatz gedruckt |
Mögliche Werte oder Arten von Werten für Data:
| Wert | Beschreibung | Bemerkung |
|---|---|---|
| Integer | Ganzzahlen werden als IDs interpretiert. Es wird dann ein einzelner Datensatz gedruckt - sofern dies dem Reporttyp entspricht | |
| Objekt: Dataset | Ein Objekt des Types
DATASET wird abhängig vom Reporttyp als einzelner Datensatz
oder als Menge interpretiert. Das Dataset-Objekt kann selbst
erstellt sein oder über den
Kontext eines Menü-Actions ermittelt worden sein. |
|
| Optionenstring | handelt es sich bei „DATA“ um einen String, so muss dies ein Optionen-String sein. Hier wird momentan jedoch nur ein einziger Parameter ausgewertet (siehe nachfolgende Tabelle) | ab Version 2.5 |
Einzig möglicher Parameter, wenn Data ein String ist:
| Name der Option | Beschreibung |
|---|---|
| SQL_IDs | SQL-Ausdruck, der eine Liste von IDs (Integer-Werten) zurück gibt. Beispiel: SQL_IDS=(select top 10 id from adresse)Siehe auch Beispiel E |
| Wert | Beschreibung | Bemerkung |
|---|---|---|
| "" (Leerstring) | Aufruf der Druckbox | |
| PREVIEW | Druckvorschau | ab Version 2.5 |
| PRINTER | Drucker | |
| FILE | Ausgabe als Datei | PDF, CNARP, TXT, FAX, PRN (Druckerspezifisch) |
| PDF als Email | ab Version 2.7.8 - siehe auch Beispiel G | |
| FAX | Faxausgabe | ab Version 4.0 |
| ( target1, target2 ...) | mehrere Targets in Klammern durch Komma getrennt | Anzeige der Druckbox mit lediglich den angegebenen Targets |
Zusätzliche Verarbeitungsparameter - abhängig vom gewählten „TARGET“
Es ist möglich mehrere Optionen in TargetInfo
zu übergeben. Dies erfolgt nach folgendem Muster:
entweder der Dateiname oder ein zusammengesetzter Options-String mit einem oder mehreren der nachfolgend aufgeführten Parameter.
| Name der Option | Beschreibung |
|---|---|
| FileName | Dateiname der zu exportierenden Datei |
| FileFormat | Dateiformat |
| Printername | exakter Druckername |
| Profile | Name der Druckergruppe |
entweder die Druckergruppe oder ein Optionen-String mit folgenden
möglichen Parametern:
| Name der Option | Beschreibung |
|---|---|
| Copies | Anzahl der Kopien |
| Letterhead | Formularname des Briefkopfes |
| Printername | exakter Druckername |
| Profile | Name der Druckergruppe |
| SQL_IDs | SQL-Ausdruck, der die Liste der zu druckenden IDs zurückgibt |
Ein Optionen-String mit folgenden möglichen Parametern:
| Name der Option | Beschreibung |
|---|---|
| AttachmentFilename | Name des zue generierenden Dateianhangs |
| MailBody | Text (Inhalt) des Emails |
| Subject | Betreff des Emails |
| Address | Email-Adresse des Empfängers |
| RcptName | Anzeigename des Empfängers |
| EditBeforeSend | Email soll vor dem Senden noch bearbeitet werden. Es wird dann ein Dialogfensters des jeweiligen Email-Programmes angezeigt |
Fax-Ausgabe über diese API ist ab EULAND 4.0.2 verfügbar.
Ein Optionen-String mit folgenden möglichen Parametern:
| Name der Option | Beschreibung |
|---|---|
| FaxNumber | Faxnummer des Empfängers |
Ausdruck der Auftragsbestätigung zum aktuellen Auftrags mit Anzeige der Druckbox
VBScript
Reportname = "cnsoft.Auftrag.Auftragsbestaetigung"
Client.Print Reportname, Dataset, "", ""
Ausdruck auf direkt auf den Drucker. Es werden die Einstellungen der Druckergruppe "Geschaeftspapier" verwendet. D.h. z.B. das digitale Briefpapier, die Schachtauswahl und der Drucker selbst. Wenn keine Druckergruppe angegeben wird nimmt Eulanda die Einstellungen aus der Druckergruppe, die dem Report zugeordnet ist.
VBScript
Reportname = "cnsoft.Auftrag.Auftragsbestaetigung"
Client.Print Reportname, Dataset, "PRINTER", "Geschaeftspapier"
VBScript
Reportname = "cnsoft.Auftrag.Auftragsbestaetigung"
Client.Print Reportname, Dataset, "PREVIEW", ""
In diesem Beispiel wird der aktuelle Auftrag als PDF-Datei auf dem Desktop gespeichert. Zum Ermitteln des Desktop-Verzeichnisses wird das WScript.Shell-Objekt von Windows instanziert. Als Abschluss wird dem Benutzer ein Hinweis ausgegeben, wo die Datei liegt.
VBScript Kontext: Auftragsmodul DesktopFolder = Client.Properties("Folder.Desktop") Reportname = "cnsoft.Auftrag.Auftragsbestaetigung" Filename = "Auftrag" & Dataset.Values("Kopfnummer") & ".pdf" Filepath = DesktopFolder & "\" & Filename Client.Print Reportname, Dataset, "FILE", Filepath MsgBox "Die Auftragsbestätigung wurde als '" & Filename &_ "' auf dem Desktop gespeichert"
VBScript
Reportname = "cnsoft.Adresse.TelefonListe"
SelectIDs = "(SELECT TOP 10 id FROM Adresse WHERE ISNULL(Email,'')='')"
Client.Print Reportname, "SQL_IDS=" & SelectIDs, "PREVIEW",""
Hier wird zuerst der aktuelle Benutzername und der Arbeitsplatzname (PcName) aus den Windows-Umgebungsvariablen ermittelt. Je nach dem von welchem PC das Skript aufgerufen wird ermittelt es eine andere Druckergruppe über die SELECT/CASE-Struktur. Auf diese Weise kann arbeitsplatzabhängig ein anderer Drucker angesprochen werden. Der Benutzername wird in diesem Beispiel nicht weiter ausgewertet. Das kann aber analog zum PcNamen erfolgen.
Hinweis: Ab EULANDA Version 2.7 lässt sich arbeitsplatzabhängige Druckergruppen-Einstellung auch ohne Skripts über die Registry erreichen.
VBScript Kontext: Auftragsmodul option explicit 'strenge Prüfung der Variablennamen ' Ermitteln von Benutzer- und PC-Namen aus den ' Windows-Umgebungsvariablen dim WshShell, objEnv, pcname, username set WshShell = CreateObject ("WScript.Shell") set objEnv = WshShell.Environment("PROCESS") pcname = objEnv("COMPUTERNAME") username = objEnv("USERNAME") dim Druckergruppe, Reportname Reportname = "cnsoft.Auftrag.Auftragsbestaetigung" ' Für den Arbeitsplatz LAGER und EINKAUF wird eine spezielle ' Druckergruppe verwendet. Ansonsten wird die Standardgruppe ' verwendet. TIPP: In einem CASE-Zweig können auch mehrere Variablen ' gesetzt werden. select case pcname case "LAGER" Druckergruppe = "VORGANG_LAGER" case "EINKAUF" Druckergruppe = "VORGANG_EINKAUF" ' Reportname = "cnsoft.Auftrag.AuftragsKopie" case else Druckergruppe = "VORGANG" end select Client.Print Reportname, Dataset, "PRINTER", Druckergruppe
Das nachfolgende Beispiel gibt die aktuelle Auftragsbestätigung als PDF per Email aus. Alle relevanten Email-Felder können beeinflusst werden. Das Skript kann im iScript-Editor im Auftragsmodul direkt ausgeführt werden. Ebenso kann es als Menüaktion dauerhaft hinterlegt werden.
VBScript Kontext: Auftragsmodul option explicit sub MailAB dim ReportName, AttachmentName, MailBody, Options, Email, Subject, Nr ' Berichtsname ReportName = "cnsoft.Auftrag.Auftragsbestaetigung" ' Auftragsnummer Nr = CStr(Dataset.Values("KopfNummer")) ' Emailadresse des Kunden ermitteln Email = Client.ExecuteSql("SELECT Email FROM Adresse WHERE id = " &_ CStr(Dataset.Values("AdresseId"))).Fields("Email") ' Der im Email angezeigte Name der PDF-Datei AttachmentName = "AB_" & Nr ' Email-Betreff Subject = "Auftragsbestätgung " & Nr ' Haupttext des Email MailBody = "Anbei die angeforderte Auftragsbestätigung" ' Die Parameter nun als Optionen-String zusammengebaut Options = "AttachmentFilename=" & AttachmentName & ";MailBody=" &_ MailBody & ";Address=" & Email & ";Subject=" & Subject ' Auftragsbestätigung per Email versenden Client.Print ReportName, Dataset, "EMAIL", Options end sub If Dataset.State = 3 Then MailAB Else MsgBox "Bitte wählen Sie zuerst einen Auftrag aus" End If
Mit diesem Beispiel wird die Liste der offenen Aufträge als MDI-Datei auf dem Desktop ausgegeben und angezeigt. Eine entsprechende Microsoft-Office-Version wird dabei vorausgesetzt. Über das Dateiformat „PRN“ wird Eulanda angewiesen die Daten im Druckerspezifischen Format auszugeben.
Der Befehl ist unabhängig von einem bestimmten Programmmodul und kann dementsprechend an beliebiger Stelle im iScript-Editor ausgeführt oder als Menü-Action fest hinterlegt werden.
VBScript Kontext: allgemein option explicit dim fn, options ' Ermitteln des Dateinamens fn = Client.Properties("Folder.Desktop") & "\OffeneAufträge.mdi" ' Ausgabeparameter zusammensetzen options = "FILENAME=" & fn & ";FILEFORMAT=PRN;PrinterName=Microsoft Office Document Image Writer" ' Ausdruck als Datei unter Angabe von Optionen Client.Print "cnsoft.Auftrag.OffeneAuftraege", 0, "FILE", options