Archivierungsschnittstelle #
Überblick #
Das „papierlose Büro“ ist eine Idee, die schon seit über zwanzig Jahren durch unsere Köpfe geistert und deren Verwirklichung wir uns mehr oder weniger erfolgreich nähern. Unbestreitbar ist, dass E-Mail und Dateiformate wie PDF das Papier immer weiter an den Rand drängen, das gedruckte Papier aber immer noch allgegenwärtig ist. Der Bedarf alle Dokumente, ob Papier oder elektronische, sinnvoll zu archivieren besteht nach wie vor. Das Ausdrucken aller E-Mails und PDF-Dateien kann natürlich nicht die Lösung dazu sein.
Hier hat sich schon seit längerem eine eigene Gattung von Software etabliert. Die sog. Dokumenten-Management-Systeme – kurz DMS. Diese Systeme ermöglichen es praktisch alle im Büroalltag aufkommenden Dokumente zu sammeln, nach Bedeutung einzuordnen und mit geringem Aufwand wiederzufinden. Papiere werden eingescannt und der Text darauf vom Computer analysiert (OCR), um später nach dem enthaltenen Text suchen zu können, der E-Mail-Verkehr kann protokolliert und relevante Dokumente ebenfalls archiviert werden etc. DMS-System können sich als virtueller Druckertreiber in Windows einbinden und dadurch quasi jedem Programm, das Drucken kann, die Möglichkeit geben Dokumente im DMS abzulegen.
Auf diese Weise lässt sich auch EULANDA in solch ein System einbinden.
Dieses Vorgehen erfordert allerdings eine Umstellung bei der Bedienung einhergehend mit einem gewissen Grad an Komfortverlust. Daneben birgt sie auch einige Fallstricke. Der Druckprozess muss eventuell doppelt durchgeführt werden – einmal das Original und einmal fürs Archiv. Der Archivdruck kann versehentlich vergessen werden. Das DMS kann die ganz genaue Bedeutung eines Dokuments nicht immer zweifelsfrei erkennen und es sind Benutzereingaben erforderlich (Verschlagwortung) usw.
EULANDA bietet natürlich die Möglichkeit spezielle Menüpunkte programmieren zu lassen, die den Druck automatisieren oder die Formulare anzupassen, um besser vom DMS verarbeitet werden zu können. Bei den etwa einhundert Standardformularen, die EULANDA mitbringt kann der Einrichtungsaufwand erheblich sein.
Über unsere flexible DMS-Schnittstelle wird der Einrichtungsaufwand deutlich reduziert, es sind keinerlei Änderungen an bestehenden Formularen notwendig und im Regelfall muss der Anwender sich an keine neue Bedienung gewöhnen.
Leistungsumfang #
Die Hauptfunktion der Archivierungsschnittstelle ist das parallele Ausgeben aller Druckvorgänge in ein archivierbare Dateiformat (PDF bzw. TIFF-Fax), ohne dass an den bestehenden Formularen etwas verändert oder ein spezieller Menüpunkt programmiert werden muss.
Über Filtermechanismen kann sehr fein gesteuert werden, welche Formulare, von welchen Benutzern, PCs etc. archiviert werden sollen (siehe „Filter“).
Neben der reinen Übergabe an externe DMS-System kann die Schnittstelle auch weitere Aufgaben bewältigen.
Anwendungsszenarien #
- Übergabe an DMS Systeme als PDF-Datei inkl. eingebetteter Steuerungsinformationen für das Ziel-DMS-System. Zum Beispiel „InfoOffice“
- Ausgabe von PDF- oder TIFF-Kopien ins Dateisystem zur einfachen Archivierung. Hierbei können Zusatzinformationen, wie Benutzername, Druckdatum oder Formularname mit in das PDF im Klartext eingefügt werden, ohne dass diese im echten Ausdruck sichtbar sind.
- Erzeugung einer Protokolldatei im CSV-Format (Text-Tabellenformat) mit den Kerndaten des Druckvorgangs
- Protokollierung von Druckvorgängen in der SQL-Datenbank
- Aufruf eines Fremdprogrammes oder VB-Skripts nach dem Ausdruck bestimmter Formulare oder gesteuert über weitere Filter
Parallel zum Ausdruck, Mailen oder Faxen kann eine Kopie jedes beliebigen Druckjobs in einem definierbaren Ordner auf dem lokalen Rechner oder einer Netzwerkfreigabe abgelegt werden.
Die Archivkopie wird hierbei direkt aus dem Druck-Zwischenspeicher entnommen. Es erfolgt also kein zusätzlicher Ausdruck. Dies ist zum einen sehr schnell. Zum anderen erhält man wirklich das gleiche Ergebnis, wie beim ursprünglichen Ausdruck. Es werden auch nicht versehentlich im Formular hinterlegte Skripts doppelt ausgeführt, die zu unerwünschten Nebeneffekten führen könnten (Die Ausgabe kann als PDF oder TIFF erfolgen).
Nach Erzeugung der Archiv-Datei kann ein beliebiges Fremdprogramm gestartet werden. Als Parameter können umfangreiche Variablen übergeben werden.
Über Einschluss/Ausschluss-Filter lässt sich steuern welche Berichte archiviert werden sollen
- Benutzer
- OC
- Zielgerät (Vorschau, Drucker, E-Mail)
- Berichtsname
- Objektklasse (Rechnung, Angebot etc.)
Zur automatischen Weiterverarbeitung durch ein angeschlossenes DMS kann in der Archiv-PDF eine Zeile mit zusätzlichen Informationen ausgegeben werden. Hierbei kann über Platzhalter etliche Parameter des Druckjobs zugegriffen werden.
Einrichtung #
Archivierungs-Profil #
Die Einrichtung einer DMS-Übergabe oder einer anderen Funktionalität erfolgt über sog. Archivierungs-Profile. Im Profil wird festgelegt, welche Druckvorgänge (Druckjobs) behandelt werden sollen und was genau nach dem Ausdruck geschehen soll. Also beispielweise, wohin die Archiv-PDF-Datei gespeichert werden soll.
Es können mehrere Profile mit unterschiedlichen Filtern und Ausgabeoptionen hinterlegt werden. Es ist explizit erlaubt, dass derselbe Druckjob von mehreren Profilen verarbeitet wird.
Die Profile-Einstellungen befinden sich in der SQL-Registry unter
\SYSTEM\ReportArchive\Profiles
Zum Erzeugen eines neuen Profils wird dort ein Unterschlüssel angelegt. Der Name des Profils muss mit dem Präfix „user.“ beginnen. Der Editor für die SQL-Registry befindet sich auf der Schnellstartleiste unter „Systemverwaltung“. Hinweise zur Bedienung des Registry-Editors finden sich im Online-Handbuch.
Die Grundeinstellungen werden direkt in diesem Profil-Schlüssel vorgenommen. Eine Liste aller möglichen Einstellungen befindet sich im Anhang.
TIPP
während der Testphase sollte das Trace-Flag 1113 aktiviert werden, um geänderte Einstellungen ohne EULANDA- Neustart testen zu können. (siehe Trace-Flags)
Beispiel 1 - Ausgabe aller Ausdrucker als PDF #
Legen Sie, wie oben beschrieben, ein Profil mit dem Namen „user.Beispiel01“ an und hinterlegen Sie nachfolgende Registry-Werte.
Bei „Active“ handelt es sich um einen Integerwert. Alle anderen Werte müssen als „Zeichenfolge“ angelegt werden.
Active | 1 | Das Profil wird aktiviert |
---|---|---|
Caption | Alles nach PDF ausgeben | Bezeichnung des Profils |
OutputBaseFolder | C:\temp\Archiv | Basis-Verzeichnis für alle Ausgaben |
OutputFolder | %yyyy%%mmm% | Unterordner (optional), unter dem die Ausgaben abgelegt werden. Dieser Ordner wird automatisch angelegt, falls er nicht vorhanden ist. |
OutputFilename | %datetimefile%%job.reportname%%counter%.pdf | |
OutputFormat | Es sollen PDF-Dateien erzeugt werden | |
PdfPreamble | %job.Reportname% gedruckt von %job.username% auf PC %job.PCName% an %job.TargetDevice% | Dieser Text wird auf der ersten Seite der Archiv-PDF-Datei ausgegeben |
PdfPreambleDrawText | font.color=brown;font.size=9 | Anpassung der Schriftart |
Filter #
Über Filter kann festgelegt werden, welche Druckjobs über das jeweilige Archivierungsprofil behandelt werden sollen. Filter lassen sich für verschiedene Eigenschaften des Druckjobs anwenden. Sie werden als Liste von zulässigen („Include“) bzw. unzulässigen („Exclude“) Eigenschaftswerden definiert.
Um einen Filter anzulegen wird ein Schlüssel Im jeweiligen Profils angelegt. Hierin kann ein mehrzeiliger Zeichenkettenwert mit dem Namen „INCLUDE“ oder „EXCLUDE“ erzeugt werden.
Jede Zeile enthält einen Eigenschaftswert, der erlaubt oder nicht erlaubt ist.
Verfügbare Filter #
Filter | Typ | Zulässige Werte |
---|---|---|
DATAOBJECTS | Objektklassen | Die Namen des jeweiligen Datenobjekts in dem der Bericht hinterlegt ist. Zum BeispielEulanda.RechnungEulanda.Adresse |
REPORTS | Einzelne Berichte | Der eindeutige interne Name des jeweiligen Berichts, unter dem der Bericht in der Registry gespeichert ist. Dieser Name wird in den Berichtseigenschaften im Kopfbereich angezeigt.Cnsoft.Rechnung.Rechnung |
USER | Benutzernamen | Der Windows-Anmeldname des Benutzers |
MACHINES | PC-Name | Der Name des Arbeitsplatzes |
PRINTERPROFILES | Druckergruppen | Die effektiv verwendete Druckergruppe. Diese ist grundsätzlich dem Bericht in den Berichtseigenschaften zugeordnet. Sie kann aber arbeitsplatzspezifisch oder benutzerabhängig auf eine andere Druckergruppe umgeleitet sein.StandardListen |
TARGETDEVICES | Ausgabeziel | PRINTERFILE FAXPREVIEWSCREEN |
REPORTTYPE | Berichtstyp | Der Berichtstyp legt u.A. fest, woher der Bericht seine Daten bezieht bzw., ob er Bezug auf aktuell angezeigte Daten hat oder komplett eigenständig ist. Den Typ kann man in den Berichtseigenschaften auf der Karteikarte „Erweitert“ sehen.EMBEDDEDMULTI.LISTMULTI.SINGLEOBJECT |
Spezifische DMS-Systeme #
InfoOffice 3.0 #
Die Anbindung erfolgt über PDF-Dateien, die auf den im Netzwerk installierten DMS-Server abgelegt werden. Zu Beginn des PDF-Dokuments werden Kundennummern, Vorgangsnummern, Vorgangsdatum und weitere Informationen in einer für das DMS-System lesbaren Form generiert. Des Weiteren können über sogenannten Dokumenten-IDs Berechtigungen für verschiedene Formulare hinterlegt werden.
Hersteller
Firma | SETRONIC® GmbHIm Ermlisgrund 20-2476337 Waldbronn1DEUTSCHLANDwww.infooffice.net |
---|---|
Die Übergabe erfolgt über PDF-Dateien.
Starke DMS #
Die Anbindung erfolgt über PDF-Dateien, die in ein Verzeichnis auf dem jeweiligen Arbeitsplatz abgelegt und von der dort installierten Client-Software entgegengenommen werden. Am Anfang des PDF-Dokuments werden Kundennummern, Vorgangsnummern, Vorgangsdatum und weitere Informationen in einer für das DMS-System lesbaren Form generiert.
Hersteller
Firma | Starke + Reichert GmbH & Co. KGKohlenstraße 49 - 5134121 KasselDEUTSCHLANDwww.starke.de |
---|---|
Registry-Einstellungen #
Beschreibung
Name | Platzhalter | Ableitbar | Typ | Beschreibung |
---|---|---|---|---|
Active | Boolean | Aktiviert oder deaktiviert das komplette Profil | ||
Caption | String | Anzeigename | ||
SingleObjectOnly | Boolean | Es werden ausschließlich Berichte akzeptiert, die ein einzelnes Daten-Objekt betreffen – wie beispielsweise eine Auftragsbestätigung, Rechnung usw. insbesondere werden also keine Listen oder andere eigenständigen Berichte archiviert. | ||
OutputBaseFolder | JA | String | Das Stamm-Verzeichnis für die Ausgabe | |
OutputFolder | JA | String | Bei Bedarf kann automatisch eine Ordnerstruktur unterhalb des „OutputBaseFolder“ angelegt werden. Diese könnte beispielsweise Rechnungen nach Jahren, Monaten und Matchcode des Kunden gruppieren, wie in folgendem Beispiel%year%%mm%%obj.match% | |
OutputFormat | PDF, TIFF, NULL | Das zu erzeugende Dateiformat. Bei NULL wird keine Datei erzeugt. Es wird aber, falls angegeben der Order angelegt. Dies ist beispielsweise sinnvoll, wenn man lediglich eine Textausgabe über „onfinit.txt“ am Ende des Druckvorgangs erzeugen möchte | ||
ExtraData.sql (verfügbar ab EULANDA 8.0) | JA | JA | Mehrzeiliger Text | Ermitteln zusätzlicher Variablen, die als Platzhalter „extra.XXX“ zur Verfügung stehen |
PdfPreamble | JA | JA | String | Der hier hinterlegte Text mit den ausgetauschten Platzhaltern wird mit in das Archiv-PDF-Dokument ausgegeben. Der Echte Ausdruck ist hiervon nicht betroffen |
PdfPreambleDrawText | Optionen-String | Hierüber kann das Aussehen und die Position der PDF-Präambel gesteuert werden. Standardmäßig wird die Präambel in 3-Punkt-Schrift am Beginn der ersten Seite ausgegeben. | ||
onFinit.Sql | JA | SQL-Befehl, der nach Erzeugung der Archiv-Datei aufgerufen wird. Hierüber können zum Beispiel Updates in Tabellen durchgeführt oder SQL-Prozeduren aufgerufen werden.Es können auch Daten über einen SELECT-Befehl an EULANDA zurückgegeben werden, die dann über „onFinit.txt“ in einer Textdatei ausgegeben werden können | ||
onFinit.txt | JA | Mehrzeiliger Text | Der hinterlegte Text wird als Textdatei im selben Verzeichnis, wie die Archivdatei und bis auf die Dateierweiterung mit dem gleichen Dateinamen ausgegeben.Das Ergebnis des „onFinit.sql“-Befehls kann über die Direktive $$SQLRESULT$$ eingefügt werden.Über erweiterte Einstellungen kann Der Dateiname der Textdatei, die zu verwendende Zeichen-Kodierung und das Format der SQL-Daten beeinflusst werden | |
onFinit.vbs | JA | Mehrzeiliger Text | VBScript-Befehl mit Zugriff auf das EULANDA-Objektmodell. Achtung: Das Skript läuft nicht im Kontext des jeweiligen Programmmoduls. insbesondere ist kein Zugriff auf „Dataset“ möglich. | |
onFinit.cmd | JA | Mehrzeiliger Text | Aufruf eines beliebigen Fremdprogramms mit der Möglichkeit Parameter des Druckprozesses zu übergeben | |
Var. |
JA | JA | String |
Das OnFinit-Ereignis #
Nach Beendigung des eigentlichen Druckauftrages und Erzeugung der Archivdatei können noch eine oder mehrere Funktionsblöcke aktiviert werden. Falls mehrere Funktionen definiert wurden, so werden diese stets in der nachfolgend aufgeführten Reihenfolge durchlaufen, da die Funktionsblöcke auf die Ergebnisse der vorangegangenen Blöcke zugreifen können:
- Ausführung eines SQL-Befehls mit eventueller Datenrückgabe mittels eines SELECT-Befehls
- Speichern einer Text- oder XML-Datei mit Möglichkeit zur Ausgabe der SELECT-Ergebnisse des vorherigen Schrittes
- Ausführung eines VB-Scripts. Falls im vorherigen Schritt eine Textdatei ausgegeben wurde, so steht der Dateiname im Skript zur Verfügung.
- Ausführung eines beliebigen Fremdprogramms – ebenfalls mit Zugriff auf den Dateinamen der Textdatei
Ausführen eines SQL-Befehls #
Wie alle OnFinit-Ereignis-Behandlungsroutinen kann auch diese Platzhalter enthalten. Hierbei werden die eingefügten Texte automatisch entsprechend den SQL-Konventionen für String-Literale formatiert. Das heißt im Text enthaltene Apostroph-Zeichen werden gedoppelt. Es ist aber zu beachten, dass numerische Werte mit Nachkommastellen als Platzhalter i.d.R. nur als Text im landesüblichen Format vorliegen. Diese können dann nicht ohne weiteres als numerischer SQL-Datentyp weiterverarbeitet werden.
Falls im SQL ein Prozentzeichen (In String-Konstanten oder im Programmcode) benötigt wird, so muss dieses gedoppelt werden. Da das Prozentzeichen ansonsten zur Kennzeichnung der Platzhalternamen verwendet wird.
Beispiel A - Anlage eines Log-Eintrags #
Hier wird in eine fiktive Tabelle „dbo.userMyReportLog“ ein Eintrag mit einigen Kerndaten der des Druckauftrags angelegt.
Insert userMyReportLog (`
`PrintDate, ReportName, UserName, PcName, Info)`
`Values(`
`GETDATE(),`
`'%job.ReportName%',`
`'%job.Username%',`
`'%job.PcName%',`
`'%job.DokumentName% ausgegeben auf %job.TargetDevice%');
Beispiel B - Setzen des “Gedrucket”-Kennzeichens in der Rechung #
Hierüber kann nach dem Rechnungsdruck das Feld „RechungGedruckt“ gesetzt werden, welches standardmäßig von EULANDA nicht verwendet wird. Über Filter-Definition ist hierbei sicherzustellen, dass der Befehl auch nur beim Drucken von Rechnungen ausgeführt wird.
UPDATE dbo.Rechnung`
`SET RechnungGedruckt = 1`
`where id = %job.ObjektId%;
Erzeugen einer Textdatei (onFinit.txt) #
Der Inhalt von onFinit.txt wird nach Ersetzung der Platzhalter als Textdatei gespeichert.
Falls in der Textdatei ein Prozentzeichen ausgeben möchten, so muss dieses gedoppelt werden. Da das Prozentzeichen ansonsten zur Kennzeichnung der Platzhalternamen verwendet wird.
Standardmäßig erhält diese den gleichen Namen und Pfad, wie die Archivdatei, aber die Erweiterung „.txt“.
Über spezielle Direktiven in den ersten Zeilen des Textes kann die Dateierweiterung, der Dateiname oder Pfad und auch der zu verwendende Zeichensatz beeinflusst werden.
Falls das Ereignis „onFinit.sql“ definiert wurde und hierüber Daten zurückgegeben wurden, können diese ebenfalls in die Textdatei geschrieben werden. Fügen Sie dazu den Spezialplatzhalter $$SQLRESULT$$ in den Text ein.
Direktive | Name | Beschreibung |
---|---|---|
#filename: | Nur Dateierweiterung | Es wird der gleiche Pfad und Dateiname, wie bei der Archivdatei verwendet und nur die Dateierweiterung ausgetauscht |
Nur Dateiname ohne Pfad | Es wird der gleiche Pfad, wie bei der Archivdatei verwendet und der hier hinterlegte Dateiname | |
Dateiname mit Pfadangabe | Die Datei wird gespeichert, wie angegeben | |
#fileoptions: | Optionen-String | Es stehen dieselben Einstellungen zur Verfügung, wie bei der iScript-Funktion Client.SaveTextDie einzelnen Eigenschaften sind im Angang erklärt.Neben der Möglichkeit den Zeichensatz (auf beispielsweise UTF-8) umzustellen, ist noch die Möglichkeit hervorzuheben, bereits vorhandene Dateien nicht zu überschreiben, sondern an diese Anzufügen. Hierdurch lassen sich fortlaufende Logdateien erzeugen.Beispiel: charset=UTF-8;append=true |
#textoptions: | Optionen-String | Einstellungen, wie die SQL-Ergebnisse formatiert werden sollen. Standardmäßig werden diese als CSV mit Semikolon-Trenner ausgegeben |
Ausführen eines VB-Scripts #
Der angegebene VBScript-wird im Prozess der laufenden EULANDA.EXE ausgeführt. Hierbei besteht Zugriff auf das EULANDA-Objektmodell.
Das Skript läuft nicht im Kontext des jeweiligen Programmmoduls, sondern im Kontext des Mandanten. Insbesondere ist kein Zugriff auf „Dataset“ möglich. Jedoch kann auf das „Client“-Objekt zugegriffen werden.
Wie in den vorangegangenen onFinit-Behandlungsroutinen können auch an dieser Stelle Platzhalter verwendet werden. Beim Einfügen von Text-Platzhaltern werden hierbei die VBScript-Konventionen für String-Literale berücksichtigt. Im Text enthaltene doppelte Anführungszeichen werden gedoppelt. Außerdem werden Zeilenumbrüche durch die VbScript-Konstanten vbCr und vbLf ersetzt.
Falls im VBScript ein Prozentzeichen (In String-Konstanten oder im Programmcode) benötigt wird, so muss dieses gedoppelt werden. Da das Prozentzeichen ansonsten zur Kennzeichnung der Platzhalternamen verwendet wird.
Dim Info, ID`
`Info = "%obj.info%"`
`ID = %job.objectId%`
`MsgBox Info
Starten eines externen Programmes #
Falls Nach Beendigung des Druckvorgangs ein externes Programm aufgerufen werden soll, kann dies hier hinterlegt werden. Man legt dazu einen „Zeichenfolge“-Wert mit dem Namen „onFinit.cmd“ an und ruft den „mehrzeiligen Editor“ auf.
Die erste Zeile interpretiert EULANDA als Dateinamen inklusive Pfad-Angabe des aufzurufenden Programms. Falls das Arbeitsverzeichnis für die Ausführung des Befehls angegeben werden muss, so kann dies in der zweiten Zeile erfolgen. Diese Zeile muss dazu mit der Direktive #dir: beginnen.
Beispiel 1
#dir:C:\temp
Alle weiteren Zeilen werden als Parameter interpretiert. Jeder Parameter wird zur besseren Übersicht in einer separaten Zeile hinterlegt.
Sowohl in dem Dateinamen, als auch in den Parametern sind hierbei wieder Platzhalter erlaubt.
Beispiel 2
C:\temp\archiv.bat
-ADD
"%filename%"
Anhang #
Trace-Flags #
Über Trace-Flags können gewisse Verhaltensweisen von EULANDA verändert werden. In der Regel handelt es sich hierbei um die Aktivierung zusätzlicher Prüfungen oder Debug-Ausgaben. Da diese Optionen mit einem höheren Rechenaufwand verbunden sind, sollten die im Normalbetrieb wieder deaktiviert werden.
Zum Aktivieren eines Trace-Flags wird in der Datei „EULANDA.INI“ eine Sektion [TraceFlags] angelegt und das entsprechende Flag auf „1“ gesetzt.
Beispiel
[traceflags]
1113=1
1112=1
Falls die Textdatei EULANDA.INI noch nicht vorhanden ist, muss diese angelegt werden.
Flag | Name | Beschreibung |
---|---|---|
1112 | TRACEFLG_LogReportArchive | Es werden etliche Statusmeldungen und Debug-Ausgaben erzeugt. Diese lassen sich über die Debug-Konsole ausgeben oder in eine vorhandene debuglog.txt (im Verzeichnis der Exe) protokollieren |
1113 | TRACEFLG_AlwaysRecreateReportArchive | Die Parameter werden bei jedem Ausdruck neu initialisiert. Dies ist während der Implementierungsphase sinnvoll, da Änderungen in der Registry direkt beim nächsten Druck verfügbar sind.Dies führt allerdings zu Performanceproblemen und sollte im späteren Echtbetrieb wieder deaktiviert werden |
1114 | TRACEFLG_DebugReportArchive | Die Archivschnittstelle wird im Debug-Modus gestartet. Gewisse Einstellungen, wie beispielsweise der Ausgabepfad können umgeleitet werden |
Platzhalter #
Einfache Datums-Variablen #
Platzhalter | Beschreibung | Beispiel |
---|---|---|
Year, yyyy | Jahr vierstellig | 2018 |
Timefile | Uhrzeit mit Sekunden ohne Punktation stets sechsstellig | 050607 |
time | Standard Zeitformatierung - Länderabhängig | 05:06 |
DateISO | 2018-01-20 | |
d | ||
dd | ||
ddd | ||
M, month | Monat als Zahl | 1 |
mm | Monat als Zahl - zweistellig vorgenullt | 01 |
mmm | Monat als Text - Kurzform | Jan |
mmmm | Monat als Text - ausgeschrieben | Januar |
yy | Jahr zweistellig | 18 |
hh | Stunde, zweistellig | 05 |
nn | Minuten, zweistellig | 06 |
Ss | Sekunden, zweistellig | 07 |
Zzz | Millisekunden | 555 |
Variablen, den den Druckjob betreffen #
Parameter | Bemerkungen |
---|---|
job.Version | aktuelle Version “1.2” |
job.OriginalReportName | interner Berichtsname, der vom Benutzer ausgewählt wurde |
job.ReportName | i.d.R. gleich mit OriginalReportName außer der Bericht wurde durch Spezialanpassungen umgelenkt |
job.PrinterName | Name des verwendeten Druckers, so wie er auch in der Druckbox angezeigt wird |
job.Fileformat | zum Beispiel “PDF” |
job.Filename | Kompletter Dateiname inklusive Pfad der erzeugten Archivdatei. Dieser Platzhalter ist nur in der Einstellung OnFinit.cmd verfügbar |
job.Username | Windows-Anmeldename des Benutzers, der den Bericht gedruckt hat |
job.PcName | Name des Arbeitsplatzes, wie er in Windows hinterlegt wurde |
job.Preview | Boolscher Wert (1 oder 0) je nah dem, ob der Bericht in der Vorschau angezeigt wurde oder nicht |
job.PrinterProfile | Name der Druckergruppe |
job.ObjectId | ID des gedruckten Datensatzes. Diese ist nur verfügbar, wenn es sich um einen Einzeldruck-Bericht handelt (zum Beispiel eine Rechnung) nicht aber bei Listen. |
job.ObjectClass | Name der DATAOBJECTCLASS zum Beispiel “eulanda.Adresse” |
job.Letterhead | Name des verwendeten Briefpapiers |
job.TargetDevice | “PRINTER”, “FAX”, “FILE”, “PREVIEW”, “SCREEN” |
job.SessionName | In der Enterprise-Version von EULANDA wird bei Terminalsitzungen der Name des Servers zusammen mit dem PC-Namen ausgegeben - zum Beispiel “notebook12@Server”. In anderen Fällen ist es identisch mit “PcName” |
job.DocumentName | Dokumentenname der in der Berichtsverwaltung hinterlegt wurde. Dieser wird bei E-Mail-Versand zum Beispiel als Name für den Dateianhang verwendet. |
Jpb.ReportType | MULTI.List, MULTI.SingleObject, EMBEDDED etc. |
Zugriff auf Felder des aktuellen Datensatzes #
Über das Präfix „obj.“ lassen sich alle verfügbaren Datenbankfelder des jeweiligen Objektes einbinden. Zum Beispiel kann im Fall einer Rechnung über %obj.Kopfnummer% die Rechnungsnummer ausgegeben werden.
Es werden hierbei die Feldnamen der jeweiligen SQL-Tabelle benötigt und nicht die in der Maske oder im Browser angezeigten Bezeichnungen.
Den genauen Namen der SQL-Tabelle und die Feldnamen kann man über die Kontext-Information (STRG+F9) ermitteln. Wenn ein Feld in der Eingabemaske angeklickt wird, steht der jeweilige Feldname im Bereich „Edit Control“:
—BILD
Über den Tabellennamen kann im SQL-Designer auch eine Liste aller Felder der Tabelle aufgerufen werden.
Optionen #
Option - Text speichern #
Wert | Standardwert | Beschreibung |
---|---|---|
Charset string | Systemstandard | Wert UTF-8 UTF-1616-Bit Codierung in Intel-Byte-Order (Little Endian)UTF-16BE16-Bit Codierung in Motorola-Byte-Order (Big Endian)ibm437MS-DOS(andere)Andere in Windows installierte Zeichensätze sind ebenfalls möglich. Typischerweise finden sich die entsprechenden Namen in der WIndows-Registry unter HKEY_CLASSES_ROOT\MIME\Database\Charset. Falls der angegebene Zeichensatz nicht unterstützt wird, wird eine Fehlermeldung ausgegeben. |
WriteBOM Boolean “TRUE”,“FALSE” | “TRUE” | Um die verschiedenen Unicode-Speicherformate UTF-8, UTF-16 und UTF-16BEBei untereinander und von normalen Ansi-Datein unterschieden zu können sieht der Unicode-Standard es vor ein ein sog. Byte-Order-Mark (BOM) an den Anfang der Datei zu schreiben. Bei Weiterverarbeitung auf Unix-Systemen kann es hier teilweise zu Problemen führen. Ebenso ist es bei UTF-8 kodierten Webseiten unüblich und führt im Browser zu Anzeigeproblemen. In diesen Fällen kann WriteBOM auf “0” gesetzt werden. |
Overwrite Boolean “TRUE”,“FALSE” | “TRUE” | nur für SaveText: Wenn Overwrite auf False steht, wird eine Fehlermeldung ausgegeben, falls die Datei bereits existiert. Ansonsten wird sie überschrieben. Falls Append auf TRUE steht, wird Overwrite nicht ausgewertet |
CheckExists Boolean “TRUE”,“FALSE” | “FALSE” | nur für LoadText: Wenn CheckExists auf True steht , wird eine Fehlermeldung ausgegeben, falls die Datei oder der Registry-Wert. Bei “FALSE” wird in diesem Fall ein Ansonsten wird in diesem Fall ein Leerstring zurückgegeben. |
Append Boolean “TRUE”,“FALSE” | “FALSE” | Falls die Datei bereits existiert, wird der Text an die Datei angehängt. Diese Möglichkeit besteht ausschließlich für Dateien. Beim Anfügen an eine vorhandene Datei ist darauf zu achten, die gleiche Charset-Einstellung, wie bei der ursprünglichen Datei zu verwenden. *Es erfolgt keine automatische Erkennung der vorhandenen Daten! *Beim Anfügen wird kein automatischer Zeilensprung angefügt. In VBScript ann dies beispielsweise über die Konstante vbCrLf erfolgen (siehe Beispiel B) |
Optionen - für CSV Ausgabe #
Vorgabe (Preset) - Name oder Optionenstring
Preset | Beschreibung |
---|---|
(leer) oder CSV | Standard = Semikolon und Doppelte Anführungszeichen |
TAB | TAB-Delimiter, keine Anführungszeichen, TABS werden durch SPACE ersetzt |
XML | |
HTMLLIST | |
HTMLROWS | |
HTMLTABLE | |
SQLSELECT | |
SQLVALUES |
Name | Typ | Standardwert | Bemerkung |
---|---|---|---|
RowDelimiter | string | CR LF | |
Delimiter | |||
NullValue | string | leer | |
ErrorValue | string | **** | |
TrueValue | string | TRUE | |
FalseValue | string | FALSE | |
QuoteChar | char | " (doppeltes Anführungszeichen) | |
IncludeHeader | bit | 1 | Spaltenüberschriften in erster Zeile ausgeben |
MaxRows | int | -1 | Maximale Anzahl von Zeilen oder “-1” für alle |
SkipColumns | int | 0 | (BETA!) Die ersten n Spalten werden übersprungen |
ClipString | bit | 0 | Beinhaltet ein Wert einen Zeilenumbruch, so wird nur der Inhalt bis zu diesem ausgegeben. Der Rest wird abgeschnitten |
MultiLine | Bit | Sonderbehandlung für mehrzeilige Daten. Diese werden auf mehrere Zeilen verteilt. Allerdings nur in der eigenen Spalte. Alle anderen Spalten werden jeweils als Leerzeilen ausgegeben | |
RepeatColumns | int | 0 | Bei Verwendung von Multiline werden die n ersten Spalten der jeweiligen Hauptzeile wiederholt |
Datums- und Zahlenformate | |||
Locale | string | En-en | |
NumberFormat | 0.00## | ||
DateFormat | Automatisch anhand “Locale” | ||
DecimalSeparator | char | dito | |
ThousandSeparator | char | dito | |
DateSeparator | char | dito | |
TimeSeparator | char | dito | |
Binärdaten | |||
HexPrefix | string | 0x | |
HexPostfix | string | leer | |
MaxBinary | int | 100 | Maximale Anzahl Bytes oder “-1”, wenn keine Beschränkung vorgenommen werden soll |
Kodierung | |||
Escape | “XML”, “PRINTF” oder leer für keine spezielle Kodierung | leer | |
FilterChars | string | leer | Alle angegebenen Zeichen werden aus der Ausgabe gelöscht |
MaskChars | string | leer | Alle hier vorkommenden Zeichen werden durch das korrespondierende Zeichen aus “MaskToChars” ersetzt |
MaskToChars | string | leer | Siehe “MaskChars” |
Trim | “RIGHT”,“LEFT”,“YES” oder “NO” | RIGHT | Entfernen von Leerzeichen am Anfang oder Ende oder beides |
ColStart | string | leer | Zeichenfolge vor jeder Spalte |
ColEnd | string | leer | Zeichenfolge nach jeder Spalte |
ColTemplate | string | leer | Vorlage für Spalten. Hierbei sind folgende Platzhalter verfügbar %name%Name der Spalte%uname%Name in Großbuchstaben%lname%Name in Kleinbuchstaben%Val%Der eigentliche Ausgabewert%cid%ID der Spalte%rid%ID der Zeile%align%“RIGHT” oder “LEFT” abhängig vom Datentyp |