19.04.2013 Aufrufe

KURZBESCHREIBUNG VERIFIER - Ct-pen.com

KURZBESCHREIBUNG VERIFIER - Ct-pen.com

KURZBESCHREIBUNG VERIFIER - Ct-pen.com

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>KURZBESCHREIBUNG</strong> <strong>VERIFIER</strong><br />

CT-PEN Plug & Play für Digital Pen & Paper Systeme<br />

Funktionsübersicht<br />

Der FormVerifier ermöglicht die komfortable Bearbeitung und Verifizierung der vom CT-PEN<br />

DPP System erstellten Formulare. Diese werden vom DPP Server im Rohformat als PDF und<br />

XML Datei geliefert und müssen in der<br />

Regel von Sachbearbeitern noch<br />

überprüft und korrigiert werden. Der<br />

FormVerifier ist in der Lage auch<br />

komplexe Workflows für die Bearbeitung<br />

abzubilden und über die integrierte<br />

Scriptsprache sehr flexible<br />

konfigurierbar.<br />

Formulare können für die Bearbeitung<br />

beliebig gefiltert werden, über eine<br />

Volltextsuche können z.B. nur alle<br />

Formulare welchen einen bestimmten<br />

Text in einem beliebigen Feld enthalten<br />

dargestellt werden.<br />

Die Darstellung erfolgt in einem Dialog mit dem resultierenden PDF auf der linken Seite sowie<br />

dem Eingabedialog rechts. Im<br />

Splitmodus wird in einem Fenster<br />

nur der Eingabedialog und in<br />

einem anderen Fenster das PDF<br />

Formular dargestellt. Damit kann<br />

auch auf zwei Monitoren<br />

komfortabel gearbeitet werden.<br />

Da für detaillierte Analysen und<br />

Korrekturen die Vektordaten der<br />

Formulare mit Anpressdruck und<br />

Zeitstempel herangezogen<br />

werden, sind sehr komplexe<br />

Analysen und Korrekturen möglich. Das System ist in der Lage verschiedenste Fehler beim<br />

Schreiben und der Texterkennung zu analysieren sowie logische Überprüfungen und Korrekturen<br />

nach frei definierbaren Regeln über die Scriptsprache durchzuführen. Fehler wie z.B.<br />

nicht vorhanden Artikelnummern können am PDF Formular rot eingerahmt werden, fehlende<br />

Eingaben automatisch am PDF ergänzt sowie ungenau markierte Checkboxen korrigiert<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 2<br />

werden. Es kann damit z.B. bei einem Verkaufsformular die Summe der Einzelpositionen<br />

überprüft werden, wenn keine Summe manuell eingetragen wurde, wird diese vom System<br />

anhand der Einzelpositionen automatisch berechnet und eingetragen. Sollte die Summe<br />

vom Anwender falsch berechnet und eingetragen worden sein, wird diese rot umrahmt.<br />

Im Beispiel wird die Summe der<br />

Stunden rot eingetragen, da diese nicht<br />

vom User eingegeben wurde.<br />

In diesem Beispiel wurde die Summe<br />

vom Anwender falsch berechnet und<br />

daher rot eingerahmt.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m<br />

Mit den zusätzlichen GPS<br />

Daten und Zeitstempel<br />

lassen sich Routen in<br />

Google Maps oder MS<br />

Mappoint darstellen (nur<br />

wenn der User die<br />

Freigabe der GPS Daten<br />

am Mobiltelefon erlaubt).<br />

Mittels der Vektordaten und Zeitstempel ist auch ein Echtzeit Playback des Formulars oder<br />

einzelner Felder (z.B. Unterschriften) möglich. Dabei kann für Unterschriftenvergleiche auch<br />

der Anpressdruck in Farbstufen oder als entsprechende Linienstärke dargestellt werden.<br />

Damit lassen sich Unterschriften sehr zuverlässig biometrisch verifizieren.<br />

Über sog. Lookup Tabellen ist es möglich kundenspezifische Daten zu importieren und diese<br />

für die logische Überprüfung heranzuziehen. Als Beispiel kann der Artikel- und Kundenstamm<br />

importiert und die Formulardaten damit überprüft werden. Bei der manuellen Korrektur<br />

der Formulare sind diese Daten als Auswahlliste in der jeweiligen Feldern im Bearbeitungsdialog<br />

verfügbar.


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 3<br />

Bei der Bearbeitung können<br />

einzelne Wörter oder Begriffe<br />

in Wörterbücher übertragen<br />

werden, diese können von uns<br />

zur Optimierung der<br />

Schrifterkennung ins DPP<br />

System übertragen werden.<br />

Formulare können in einer<br />

Baumstruktur miteinander<br />

verknüpft werden. Es kann z.B.<br />

ein mehrseitiges<br />

Verkaufsformular mit einem<br />

oder mehreren zusätzlichen Formularen mit internen Informationen zum Vorgang<br />

kombiniert werden. Jedes Formular kann dabei einem übergeordneten Formular zugeordnet<br />

werden. Bei Bedarf lassen sich mehrseitige Formulare verknüpfen und zu einem Formular<br />

kombinieren (z.B. eine beliebige Anzahl von Verkaufsformularen). In einer zukünftigen Version<br />

lassen sich Formulare auch mit anderen Dokumenten wie Fotos, Word und Excel Dateien<br />

verknüpfen.<br />

Der Export nach der Verifizierung kann frei konfiguriert werden. Dabei können Formulare<br />

oder Formulargrup<strong>pen</strong> in andere Verzeichnisse kopiert, als Mail versendet, an einen FTP<br />

Server oder mittels Webservice gesendet oder in andere Datenbanken exportiert werden.<br />

Als Exportformate stehen grundsätzlich PDF, XML, CSV, Excel, SQL, DBF (Foxpro), alle Grafikformate<br />

für Formulare zur Verfügung. Beliebige kundenspezifische Formate sind ebenfalls<br />

möglich. Für Kunden mit hohem Sicherheitsbedarf können Daten und Formulare nach<br />

AES256 Standard verschlüsselt werden.<br />

Eine detaillierte History speichert sämtliche Änderungen an Formularen mit User, Datum<br />

und Zeit. Damit wird der komplette Bearbeitungsverlauf vom Einlesen, konvertieren, korrigieren<br />

bis zum Export detailliert erfasst und protokolliert.<br />

Die Formulardefinitionen für die Darstellung der Dialoge werden vom System direkt aus den<br />

Konfigurationsdaten des DPP Systems automatisch erstellt und können noch individuell mittels<br />

integrierten Designer angepasst werden. Die Unterstützung für Full Dynamic Formulare<br />

ermöglicht die Bearbeitung auch bei Anwendungen, bei denen jedes Formular unterschiedlich<br />

gestaltet und vom Anwender individuell definiert wird (z.B. Verträge). Jedes Formular<br />

wird dabei als XML Datei im FormCommander importiert und enthält die Feldbeschreibung<br />

sowie den Hintergrund des jeweiligen Formulars. Formulare können vom IT System des<br />

Kunden komplett selbst gestaltet werden. Eine spezielle Importschnittstelle ermöglicht eine<br />

sehr einfache Formulardefinition durch den Kunden. Damit kann ein Formular z.B. als einfache<br />

PDF Datei (z.B. original Lieferschein aus dem Kunden ERP System) mit einer CSV Datei<br />

für Feldbeschreibung verarbeitet werden. Die relativ komplexe XML Definitions- Datei wird<br />

dann vom FormCommander auf Grund dieser Daten erstellt.<br />

Das System ist sprachunabhängig, netwerkfähig und kann über die lokale Datenbank oder<br />

über die MySQL Datenbank am DPP Server verwendet werden.<br />

Die Berechtigungsstruktur für die Bearbeitung der Formulare ist userspezifisch konfigurierbar,<br />

Berechtigungen können von Grup<strong>pen</strong>- bis auf detaillierte Funktionsebene vergeben<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 4<br />

werden. Ebenso kann die Bearbeitung auf bestimmte Formularty<strong>pen</strong> oder Formularstatus<br />

für die jeweiligen User eingeschränkt werden.<br />

Die Entwicklung eines solchen Systems durch den Kunden selbst ist mit erheblichen Aufwand<br />

und Kosten verbunden, der FormVerifier ermöglicht die schnelle, kostengünstige Integration<br />

des CT-PEN DPP Systems in die eigene IT Struktur.<br />

Mit diesem System lassen sich auch kundenspezifische Lösungen von uns einfach, schnell<br />

und kostengünstig erstellen.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 5<br />

Konfiguration der Userberechtigungen<br />

Anmeldungsüberprüfung über LDAP und Einstellung des Basisverzeichnisses des FormComannders<br />

In der Datei SYSTEM.INI im Verzeichnis des Verifiers muss der Domainname eingetragen<br />

werden:<br />

[LDAPDOMAIN]<br />

NAME=domain<br />

In der Datei <strong>VERIFIER</strong>.INI muss noch der Programmpfad des FormCommanders eingetragen<br />

werden:<br />

[PATH]<br />

DATA=Root Pfad für FormCommander<br />

Konfiguration der Useranmeldungen<br />

Bei Anmelden im System können Sie mit der Eingabe von „#“ beim Usernamen und dem<br />

Systemcode „170260“ beim Passwort in der Usertabelle User anlegen, konfigurieren und<br />

löschen.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 6<br />

Wenn Sie unter Control ADMIN eingeben, erhält dieser User die Möglichkeit sämtliche Konfigurationen<br />

zu bearbeiten. Für die weiteren Einstellungen müssen Sie sich als Administrator<br />

im Verifier anmelden, um alle notwendigen Menüpunkte zu aktivieren.<br />

Melden Sie sich jetzt mit Ihrem User als Administrator an, Sie sehen alle Menüpunkte im<br />

Verifier für die Konfiguration des Systems.<br />

Als erstes wählen Sie die User Login Verwaltung im Menü User rechts oben und definieren<br />

alle User. Dazu können Sie einzelne User kopieren und Username, Passwort und Berechtigungscode<br />

abändern. Das Datenverzeichnis entspricht jeweils dem Ordner DATEN im Programmverzeichnis<br />

des FormCommanders bzw. in der Datei <strong>VERIFIER</strong>.INI -> PATH -> DATA.<br />

In der Stift User Verwaltung werden für den Verifier die Usergruppe, Control (ADMIN,<br />

CLERK etc.), Usergruppe, Username und Passwort für Webinterface, und Systemgruppe<br />

verwendet.<br />

Für detaillierte Berechtigungen ist zusätzlich noch für jeden User im Unterverzeichnis USER<br />

eine Definitionsdatei vorhanden. Für den User MAKA z.B. wird ein File mit dem Dateinamen<br />

.\USER\MAKA_FORMDIALOG.MDF erstellt.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 7<br />

Diese Datei hat folgendes Format:<br />

USERGROUP=AUSSENDIENST<br />

PROJECT=1,3,4<br />

STATUS=VDE<br />

SCOPE=<br />

GROUP=ADMIN<br />

SORT=dtos(datum)+zeit<br />

BUTTONS=JJJJJJJJJXXXJJJJ<br />

LANGUAGE=DE<br />

*---------------------------------------------------------------------------------------------<br />

id |8 |IDY| |<br />

auftrag |7 |Auftrag| |browcolor(alltrim(mord->auftrag) # "?")<br />

bmp_status(status) |1.5|S |BMP|<br />

bmp_valid(status) |1.5|V |BMP|<br />

bmp_gps() |1.5|G |BMP|<br />

bmp_chain(status) |1.5|C |BMP|<br />

datum |7 |Datum |<br />

zeit |5 |Zeit |<br />

projekt |3 |Proj. |<br />

ntrim(propar(projekt,"FORMID")) |2 |F.Id |<br />

subject |20 |Subjekt|<br />

userid |3 |UserID |<br />

dp_<strong>pen</strong>user(userid) |15 |Name |<br />

status |5 |Status | |browcolor("V" $ status .or. "S" $ status)<br />

trackingid |9 |Seite |<br />

version |3 |Vers. |<br />

dp_routing() |50 |Routing|<br />

<strong>pen</strong>_id |15 |Pen ID |<br />

attachpdf |3 |PDF |<br />

connect |4 |Connect|<br />

getformstatus(xml,.t.) |30 |Doc Status |<br />

Die Definition unterteilt sich in den Berechtigungskopf und der Definition der Tabellenzeilen.<br />

Bei den Tabellenzeilen können Inhalt, Überschrift, Farbe und Tooltip userspezifisch je nach<br />

Berechtigung definiert werden. Im Berechtigungskopf werden Berechtigungsgruppe, Projekt<br />

Filter, Status Filter, Tabellen Subfilter, Bearbeitungssprache, Sortierung, Gruppe, Buttons<br />

für die Bearbeitung sowie die Berechtigung für jeden einzelnen Menüpunkt definiert. Wenn<br />

Sie den Bereich der Tabellenzeilen löschen, wird die Standarddarstellung verwendet.<br />

Grundsätzlich gibt es verschiedene Definitionsstufen. Wenn Sie z.B. lediglich in der User<br />

Login Verwaltung beim Control ADMIN eintragen, werden Basisadminberechtigungen gesetzt,<br />

bei CLERK die die Basisberechtigungen für einen Sachbearbeiter.<br />

Wenn Sie die Definitionsdateien für die Details verwenden, überschreiben diese die Basisdefinitionen.<br />

Sie können dann jedes Detail der Bearbeitung definieren. Wählen Sie dazu im<br />

Menü oben rechts den Punkt „User Definitions- Verwaltung“. Wenn keine Definition vorhanden,<br />

können Sie mit „set default“ eine neue Basisdefinition zur Detailbearbeitung eintragen.<br />

USERGROUP<br />

Dieser Eintrag überschreibt alle anderen Definitionen wie z.B. beim Login. Hier können Sie<br />

z.B. einzelnen Usern Admin Status mit ADMIN verleihen unabhängig vom Login.<br />

BUTTONS<br />

Sie können hier die einzelnen Buttons rechts für die Bearbeitung sperren. Jede Position dieser<br />

Zeichenkette entspricht einem Button in der Reihenfolge von oben nach unten, ausgenommen<br />

die ersten beiden Navigationsbuttons, diese können nicht gesperrt werden.<br />

Z.B. die Zeichenkette JJXJJJJ sperrt den 3. Button von oben für den Druck von markierten<br />

Formularen.<br />

PROJECT<br />

Durch eintragen einzelner Projektnummer, getrennt mit Komma, kann für diesen Bearbeiter<br />

die Tabelle auf einzelne Projekte eingeschränkt werden.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 8<br />

SORT<br />

Die Standardsortierung kann durch einen beliebigen gültigen Ausdruck in der XBase Scriptsprache<br />

ersetzt werden. Es können dabei alle Datenbankfelder sowie alle Funktionen der<br />

Scriptsprache kombiniert werden.<br />

STATUS<br />

Hier kann die Bearbeitung auf Status Kennzeichen eingeschränkt werden.<br />

Folgende Status Kennzeichen werden verwendet:<br />

D Formular gelöscht<br />

V Formular verifiziert<br />

E Formular exportiert<br />

P Gedruckt<br />

S Storniert<br />

- Status leer (Neu)<br />

ALL Alle Status, ausgenommen gelöschte<br />

Wenn kein Status eingetragen wird, hat ein Standard Sachbearbeiter keine Berechtigung<br />

Formulare mit dem Status E für exportiert, V für verifiziert und E für exportiert und D für<br />

zum löschen markiert zu bearbeiten.<br />

Ein Eintrag von ? werden nur nicht exportierte Formulare angezeigt.<br />

Wenn das erste Zeichen ein Rufzeichen ist, dann wird der Statusfilter umgekehrt, bei !E<br />

werden also alle nicht exportierten Formulare angezeigt.<br />

GROUP<br />

Damit lässt sich die Tabelle auf alle Formulare einer oder mehrerer Usergrup<strong>pen</strong> einschränken.<br />

Sie können damit Formulare von Arbeitsgrup<strong>pen</strong> zusammenfassen und dem entsprechenden<br />

Sachbearbeiter zuordnen. Tragen Sie dazu in der Stift User Verwaltung bei den<br />

entsprechenden Usern im Feld "Systemgruppe" die Gruppe ein.<br />

LANGUAGE<br />

Damit können einzelnen Usern, z.B. bei internationalen Unternehmen, einen länderspezifische<br />

Bearbeitungssprache und Codepage für Sonderzeichen zugeordnet werden. Die Texte<br />

befinden sich in der Datei LANGUAGE.TXT und können beliebig angepasst werden. Das<br />

Landssprachenkürzel muss den Einstellungen für die Sprache entsprechen. Grundsätzlich<br />

sind die Sprachen deutsch, englisch und italienisch bereits vorhanden.<br />

Bei Aufruf der Bearbeitungstabelle sehen Sie oben in der Titelzeile die jeweiligen Einstellungen<br />

für die Filter und den Userstatus.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 9<br />

Tabellenspalten Definition<br />

Die dargestellten Spalten können mittels der Scriptsprache beliebig gestaltet werden. Jede<br />

Zeile wird durch Inhalt, Header, Breite, Farbcodeblock und Tipcodeblock definiert. Die Definitionen<br />

werden durch | (pipe) getrennt.<br />

Beispiel:<br />

status |5 |Status | |browcolor("V" $ status .or. "S" $ status)<br />

Spalte<br />

Hier können alle Datenbankfelder sowie sämtliche Funktionen der Scriptsprache verwendet<br />

werden.<br />

Breite<br />

Breite der Spalte<br />

Header<br />

Tabellenüberschrift<br />

Typ<br />

Wenn Bitmap Symbole dargestellt werden (Beispiel GPS Symbol wenn Koordinaten verfügbar<br />

sind), dann Typ BMP.<br />

Farbcodeblock<br />

Funktion für die Darstellung der Spalte in einer speziellen Farbe.<br />

Beispiel:<br />

Wenn der Status V oder S ist, dann wird die Spalte grün dargestellt.<br />

browcolor("V" $ status .or. "S" $ status)<br />

Tipcodeblock<br />

Funktion für die Darstellung zusätzlicher Informationen wie z.B. Formularvorschau als Bitmap<br />

oder Dokumentenhistory, wenn der Mauszeiger über dem entsprechenden Tabellenfeld<br />

steht.<br />

Beispiele:<br />

Formular als GIF Datei einblenden wenn Mauscursor über der entsprechenden Spalte<br />

_formtip(gif_ref())<br />

Formularhistory anzeigen _formtip2(xml,history)<br />

User Menue<br />

Sie können für jeden User ein eigenes Startmenü festlegen. Diese Menüs werden wie die<br />

Userdefinitionsfiles verwaltet. Wenn keine spezielle Menüdefinitionsdatei für den User nach<br />

dem Login gefunden wird, dann verwendet das System die Datei MENUE.MDF.<br />

Beispiel für den User MAKA: .\USER\MAKA_MENUE.MDF<br />

Mit dem Button "User Menue" in der Userdefinitionsverwaltung können Sie diese Datei anlegen<br />

und bearbeiten.<br />

Beispiel für eine Menü Definitionsdatei:<br />

[MAIN]<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 10<br />

*------------------------------------------------------------------------------------------------------<br />

[STANDARDMENUE]<br />

*------------------------------------------------------------------------------------------------------<br />

:System |Systemfunktionen<br />

*------------------------------------------------------------------------------------------------------<br />

Systemfunktionen | |syscontrol()<br />

*------------------------------------------------------------------------------------------------------<br />

[BUTTONS]<br />

*------------------------------------------------------------------------------------------------------<br />

[SIZE=35,2]<br />

[POSITION= 10,85,2.5,37,1]<br />

>Formulare lokal | |edit_o<strong>pen</strong>order()<br />

>Formulare SQL Server | |_tab_auftrag()<br />

>Formidable Viewer | |goweb_formidable()<br />

>CT-PEN Support Webseite |Homepage |winapio<strong>pen</strong>("http://www.ct-<strong>pen</strong>.<strong>com</strong>/support.htm")<br />

>Support Mail |Anfrage |supportmail()<br />

>Export | |callextproc("export.jar")<br />

>Interne Dokumentation | |winapio<strong>pen</strong>(".\doc\interndocu.pdf")<br />

In der Regel müssen Sie lediglich jene Programmpunkte mit einem "*" am Anfang markieren,<br />

welche Sie dem User nicht zur Verfügung stellen wollen. Wenn Sie eigene Files wie interne<br />

Doku, EXCEL oder Word Dateien einbinden wollen, dann müssen Sie diese mit der<br />

Funktion winapio<strong>pen</strong>() öffnen. Die angegebene Datei wird je nach Dateiendung mit einer<br />

Anwendung verknüpft.<br />

Mit callextproc() können Sie externe Programme wie z.B. Batchfiles ausführen.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 11<br />

Tabellenspalten im Viewer<br />

ID ID des Datensatzes, laufende Nummer<br />

Auftrag Variable Bezeichnung für das Formular, kann über Script gesteuert<br />

werden<br />

Status Bitmap Verarbeitungsstatus des Formulars als Bitmap Symbol, siehe<br />

oben<br />

Bei den drei oben genannten Spalten wird das Formular als Vorschau<br />

angezeigt, wenn Sie mit dem Cursor in einer dieser Spalten<br />

stehen, ebenso wenn Sie über der Spalte PDF stehen<br />

Valid Bitmap Ergebnis des Gültigkeits- Scripts, wenn z.B. ein Artikel aus einem<br />

Verkaufsauftrag falsch erkannt wurde<br />

GPS Wenn GPS Koordinaten mit dem Formular gesendet wurden<br />

Verkettung Wenn dieses Formular mit anderen Formularen verkettet wurde<br />

Z.B. wenn zu einem Verkaufsformular ein Zusatzformular oder<br />

Folgeformular vorhanden ist<br />

Geschlossen Wenn dieses Formular abgeschlossen wurde<br />

History Wenn ein History-Eintrag für dieses Formular vorhanden ist.<br />

Wenn Sie mit dem Cursor über dieser Spalte stehen wird die<br />

History als Tooltip angezeigt<br />

Datum Datum der Erstellung<br />

Zeit Zeit der Erstellung<br />

Projekt Projekt ID des Formulars<br />

FI Formidable ID des Projektes<br />

Bezeichnung Bezeichnung, über Script gesteuert<br />

User ID ID des Users<br />

Pen User Name des Users<br />

Status Statuskennzeichen<br />

Seite Erste Seitennummer des Formulars<br />

Vers. Version des Formulars, kann auch mehrfach gesendet werden<br />

Email Routing Weiterleitungen des Formulars<br />

Pen ID Eindeutige Pen ID, steht auf jedem Stift auf dem Label<br />

Gedr. Formular wurde gedruckt<br />

Strokes Es sind Vektordaten für dieses Formular vorhanden, diese werden<br />

für diverse Korrekturen oder Spezialauswertungen verwendet.<br />

Z.B. Extrahieren von Unterschriften, auslagern in DXF Format für<br />

Autocad, Playback des Formulars zur biometrischen Verifizierung<br />

PDF Dateiname der PDF Version des Formulars<br />

Zu Form Dieses Formular ist mit einem anderen Formular verkettet<br />

Add1 – Add4 Zusätzliche Spalten die kundenspezifisch über Script mit Informationen<br />

gefüllt werden können.<br />

Orig.ID Beim zusammenführen von Formularen wird die Original ID gespeichert<br />

Doc Status Verarbeitungsstatus im Klartext<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 12<br />

Buttons rechts<br />

Diese Buttons können userspezifisch aktiviert oder gesperrt werden. Sie Sektion BUTTONS<br />

im Userdefinitionsfile.<br />

Anfang – Ende Blättern in der Tabelle<br />

F2=Details Hier wird eine Übersicht der Formulardaten angezeigt, mit der<br />

Möglichkeit diese zu ändern und Scripts zu Testen. Es wird jedes<br />

Formularfeld mit Typ, Verarbeitungskennzeichen etc. dargestellt.<br />

F3=markieren Markieren des Datensatzes zur weiteren Verarbeitung<br />

F4=markierte drucken Drucken aller markierten Datensätze<br />

F5=Mark. entfernen Alle Markierungen entfernen<br />

F6=PDF öffnen PDF mit Akrobat Reader öffnen<br />

F7=Formular Einzelnes Formular drucken<br />

F8=Status Status Details anzeigen<br />

Mail weiterleiten Weiterleiten des Formulars an eine Mailadresse<br />

Verteiler Auflösen der Verteilerlogik und vorschlagen für Mailversand<br />

Usermail Formular an User senden<br />

Report Mittels Reportgenerator erstellen Vorlagen ausdrucken oder exportieren<br />

Export Export in ein anderes Verzeichnis. Die Konfiguration erfolgt über<br />

die allgemeinen Einstellungen unter „in Ordner bei Eingang kopieren“,<br />

mehrere Ordner können mit Komma getrennt angegeben<br />

werden<br />

ALT+E CSV Standard CSV Export, die markierten Formulare werden nach Projekt<br />

gruppiert und in einzelne CSV Dateien im Unterverzeichnis<br />

EXPORT ausgelagert. Der Dateiname setzt sich aus „exp_“ gefolgt<br />

von Formulardatum, Zeit, ID und Bezeichnung zusammen.<br />

Kombinieren Die markierten Formulare werden zu einem Formular zusammengefügt.<br />

Es wird ein PDF mit einem speziellen XML File erstellt,<br />

welche die Daten der zusammengeführten Formulare kombiniert.<br />

Achtung ! das Format der XML Datei ist unterschiedlich zum<br />

Standard Format !<br />

Löschen Löschen des Formulars mit allen zugehörigen Daten und Verknüpfungen<br />

F9=Baum Baumstruktur verketteter Formulare anzeigen und bearbeiten.<br />

Dabei können Formulare in beliebiger Tiefe miteinander verkettet<br />

werden.<br />

F10=History Anzeigen der Verarbeitungs-History. Jeder Verarbeitungsschritt<br />

und jede Veränderung eines Formulars wird protokolliert<br />

GPS Position Anzeigen der GPS Position beim Ausfüllen des Formulars mit<br />

Google Maps<br />

GPS Tagesroute Anzeigen der Tagesroute des Users des gewählten Formulars. Es<br />

werden alle Formulare eines Tages für die Anzeige verwendet.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 13<br />

Pull Down Menüs<br />

Diese Menüpunkte werden je nach Status aktiviert. Als ADMIN sind alle Menüpunkt verfügbar,<br />

als CLERK (Sachbearbeiter) nur jene, welche Markierungen betreffen.<br />

Menügruppe Zusätze<br />

Selektoren Definitionen Selektoren werden für Popup Menüs im Verifier verwendet<br />

Alle Formulare komprimieren Bei mehrfach versendeten Formularen und wenn diese getrennt<br />

abgelegt werden (abhängig von der Einstellung in<br />

Basiskonfiguration „doppelte Formulare zusammenführen“),<br />

werden die einzelnen Formulare zu einem einzelnen<br />

Formular zusammengeführt. Dabei werden alle Korrekturen<br />

berücksichtigt und in ein Formular übernommen<br />

Löschen aller Formulare eines Projektes<br />

Alle Formulare eines Projektes werden mit allen zusätzlichen<br />

Daten gelöscht<br />

Script Zusatzfelder ausführen Das Befüllen der Zusatzfelder Add1-Add4 kann nachträglich<br />

über das entsprechende Script ausgeführt werden. Das<br />

Script finden Sie in der Basiskonfiguration beim entsprechenden<br />

Projekt<br />

User ID ändern Ändern der User ID des Formulars, damit können Sie es<br />

einem anderen User zuordnen<br />

Auftrag neu eintragen Das Feld „Auftrag“ kann über das Script neu befüllt werden<br />

Connector ausführen (Einlesen) Das Script welches beim Einlesen des Formulars ausgeführt<br />

wird, kann hier zu Testzwecken neu aufgerufen werden<br />

Connector ausführen (Export) Das Script welches beim Export des Formulars ausgeführt<br />

wird, kann hier zu Testzwecken neu aufgerufen werden<br />

Image Dateien erstellen Es werden die GIF Dateien für das Webinterface und diverse<br />

Vorschaufunktionen neu erstellt<br />

Formular manuell importieren Ein Formular kann als XML und PDF Datei zu Testzwecken<br />

importiert werden<br />

Formular validieren Alle Validierungs Scripts ausführen, ungültige Felder werden<br />

markiert<br />

Editierbares PDF erstellen Es wird ein PDF erstellt, welches das Original Formular<br />

enthält sowie ein PDF mit den einzelnen Felder und dem<br />

Ergebnis der Schrifterkennung. Diese Formulare können<br />

auf Anfrage nach dem Bearbeiten wieder über Webservice<br />

ins System übernommen werden. Diese Formulare können<br />

auch mit Zusatzfeldern versehen werden, um einen individuellen<br />

Workflow zu erstellen. Das Formular wird dann zur<br />

Ergänzung an die einzelnen Sachbearbeiter versendet und<br />

nach Fertigstellung wieder importiert. Dazu wird auf dem<br />

Formular unten rechts anstatt des Senden Feldes ein Button<br />

eingefügt. Dieser sendet dann das ausgefüllte Formular<br />

per Webservice an den FormCommander. Dieser liest die<br />

Felder aus und importiert sie wieder in das Formular.<br />

PDF Sicherheitsstatus Anzeigen des Sicherheitsstatus des PDF Formulars (Passwort,<br />

Verschlüsselung etc.)<br />

Displayinfo Info über die aktuelle Konfiguration des Verifiers anzeigen<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 14<br />

Menügruppe Markierungen<br />

Alle Markierungen löschen Alle gesetzten Markierungen werden wieder gelöscht<br />

Markierungsfilter setzen Datensätze auf Grund eines speziellen Filters setzen<br />

Tabelle Filter auf markierte Sätze<br />

Es werden nur die Datensätze mit einer Markierung dargestellt<br />

Tabelle Filter auf markierte Sätze löschen<br />

Es werden wieder alle Datensätze dargestellt<br />

Markierte Sätze per Email weiterleiten<br />

Alle markierten Datensätze werden per Email weitergeleitet<br />

Markierte Sätze drucken Alle markierten Datensätze werden gedruckt<br />

Markierte Sätze Status ändern Statusänderung der markierten Datensätze<br />

Markierte Sätze exportieren Standard Export von PDF und XML<br />

Markierte Sätze Import Connector ausführen<br />

Das Importscript (Basiskonfiguration -> Connectoren) wird<br />

nochmals ausgeführt<br />

Markierte Sätze Export Connector ausführen<br />

Das Exportscript (Basiskonfiguration -> Connectoren) wird<br />

nochmals ausgeführt<br />

Markierte kombinieren Die markierten Formulare zu einem PDF Formular und XML<br />

File kombinieren. Achtung ! Das Format der XML Datei ändert<br />

sich dabei !<br />

ALT+E Export CSV Standard CSV Export, siehe Buttons<br />

Report<br />

Es können verschiede Reports mit dem Reportgenerator erstellt werden, über den Designer<br />

können die Reports gestaltet werden.<br />

Testfunktionen<br />

Diese Funktionen werden nur zum Testen von Scripts und der Einstellung der Verarbeitungslogik<br />

verwendet. Nach der endgültigen Konfiguration des Systems werden diese Funktionen<br />

nicht mehr benötigt.<br />

Testmail erstellen Wenn Formulare per Email vom Server importiert werden<br />

(Standard ist SQL), kann aus dem gewählten Formular ein<br />

Testmail für den Import erstellt werden<br />

Test Korrektur von XML Variablen über Script<br />

Beim Einlesen können Felder über Scripts korrigiert werden.<br />

Z.B. das Script wctod(xvar(„datum“)) erkennt die verschiedensten<br />

Eingabefehler und Datumsformate und konvertiert<br />

das Datum in das Format TT-MM-JJJJ<br />

Connector Test Import Testen des Importscripts<br />

Connector Test Export Testen des Exportscripts<br />

Connector Test Source Testen des Basis Scripts<br />

Image mit Strokes erstellen Aus den Vektordaten wird ein Image in Kombination mit<br />

dem Hintergrund erstellt<br />

HTML Dialog Es kann aus dem Formular ein HTML Dialog aus Templates<br />

für die Bearbeitung im Webinterface oder zur externen Bearbeitung<br />

(Versand über Email und Import über Webservi-<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 15<br />

ce) erstellt werden, hier kann das Template im Browser<br />

angezeigt werden (falls vorhanden)<br />

XML Korrektur (Variablen) Den Script Codeblock des Feldes ausführen<br />

Prepop XML Anzeigen der XML Datei mit den vorausgefüllten Daten bei<br />

prepopulated Formularen. Mit diesen Daten wurde das<br />

Formular beim Druck vorab befüllt, diese Daten werden<br />

über ein zusätzliches XML File wieder eingelesen und mit<br />

dem Originalformular verbunden<br />

Verifizierungsmaske<br />

Source Test Individuellen Code eines Scripts ausführen<br />

Formularergänzungstest Test des Scripts zum Ergänzen von Formulardaten im PDF,<br />

z.B. automatisches einfügen der Artikelbezeichnung in einem<br />

Verkaufsformular wenn nur die Artikelnummer ausgefüllt<br />

wurde<br />

XML Summe Test für das Script zum Summieren von Feldern in einem<br />

Formular. Damit lässt sich z.B. die Auftragssumme unter<br />

Berücksichtigung der einzelnen Preise automatisch im PDF<br />

und XML einfügen<br />

Multistring correct Es kann in Ausnahmesituationen vorkommen, dass Formulare<br />

mehrfach am Server verarbeitet werden, und Text in<br />

Feldern verdoppelt werden. Hiermit werden die Felder automatisch<br />

korrigiert, sodass jede Variable nur einmal vorkommt<br />

Sync record Bei Verifizierung auf mobilen Geräten wie Smartphones<br />

und Tablet Computern, können die XML Variablen in einzelnen<br />

Felder in einer speziellen Datenbank gespeichert<br />

werden. Diese Datenbank wird mit der internen Datenbank<br />

synchronisiert. Diese Datenbank kann auch für Import-<br />

und Export der Software von Drittanbietern verwendet<br />

werden sowie für Individuallösungen zur gemeinsamen Bearbeitung<br />

des Datenbestandes.<br />

XML definition Es wird ein PDF Formular erstellt mit den jeweiligen XML<br />

Knoten Bezeichnungen. Dieser Ausdruck dient zur Kontrolle<br />

der Feldpositionen und Bezeichnungen der XML Knoten<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 16<br />

Die Verifizierungsmaske<br />

Mittels Doppelclick auf die Tabellenzeile öffnet sich der Dialog für die Verifizierung. Dieser<br />

wird automatisch beim ersten Einlesen eines Formulars aus der Basiskonfiguration des DPP<br />

Systems erstellt und kann beliebig angepasst werden.<br />

Bei sog. Full Dynamic Formularen,<br />

wobei jedes gedruckte Formular<br />

unterschiedlich gestaltet werden kann,<br />

wird die Basiskonfiguration jedes Mal<br />

beim öffnen des Dialoges eingelesen.<br />

Eine Änderung der Formulardefinition<br />

ist nur für Parameter möglich, welche<br />

nicht das Format und die Position der<br />

Felder betrifft. Da der Hintergrund des<br />

rechten Teils des Dialoges immer vom<br />

PDF gerendert wird, kann die Qualität<br />

u.U. nicht optimal sein, dazu kann<br />

dann ein Standard Hintergrund für das<br />

Formular erstellt werden. Dieser wird<br />

dann in der Regel aus dem gleichen<br />

Programm als JPG File erstellt, wie<br />

das PDF gestaltet wurde. Damit entstehen<br />

keine Qualitätsverluste durch mehrfaches konvertieren. Diese Dateien finden Sie im<br />

Unterverzeichnis APPS des FormCommanders, jede Seite wird als separates JPG File abgelegt,<br />

beginnend mit bg-0.jpg für Seite 1.<br />

Wenn ein Formular im Design- und Konfigurationsmodus geöffnet wird, kann der Verifizierungsdialog<br />

individuell angepasst werden. Bestimmte Einstellungen sind userspezifisch und<br />

werden mit dem Userlogin verknüpft. Mit ALT+F9 wird der Dialog für die Einstellungen geöffnet:<br />

• Standard Aufteilung (rechts PDF, links Bearbeitungsmaske)<br />

• Splitmodus – PDF und Bearbeitungsmaske werden in verschiedenen Fenster geöffnet.<br />

Ein Dialog enthält die Bearbeitungsmaske, das andere Fenster das PDF mit Adobe<br />

Akrobat. Nach Beenden der Bearbeitungsmaske wird das Fenster mit dem Adobe Reader<br />

automatisch geschlossen. Die Position des PDF Fensters wird gespeichert und<br />

beim nächsten Aufruf des Dialoges wieder an der gleichen Stelle dargestellt. Damit<br />

kann auch auf Systemen mit zwei Monitoren übersichtlich gearbeitet werden.<br />

• Größe des Fensters<br />

• Skalierung des Dialoges, über einen Faktor kann das Fenster vergrößert und verkleinert<br />

werden<br />

• Position und Größe des Hintergrund Bildes<br />

• Schrift für den Bearbeitungsdialog<br />

• Anzeige von prepopulated Daten (Formulare mit spezifischen Daten)<br />

• Anzeige von versteckten Feldern<br />

• Anzeige oder unterdrücken der Toolbar des PDF Fensters<br />

• Hintergrundfarbe des Eingabefelder<br />

• Art der Konvertierung des Hintergrundes für den Bearbeitungsdialog<br />

In der Regel werden nur der Faktor für die Größe und die Schrift verändert.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 17<br />

Wenn der Design Modus aktiviert wurde, können<br />

über einen Designer die einzelnen Dialogfelder in<br />

der Größe und Position verändert werden. Mit<br />

ALT+D wird der Dialog für den Designer<br />

aufgerufen. Nach Bestätigung können Sie die<br />

einzelnen Felder beliebig verschieben und in der<br />

Größe ändern. Wenn Sie fertig sind, ESC drücken,<br />

die folgende Meldung bestätigen und dann unten<br />

den Button „SavePos“ anklicken.<br />

Bei mehrseitigen Formularen kann mit CTRL und<br />

Plustaste bzw. CTRL und Minustaste vor und<br />

zurück geblättert werden. Mit ALT+F6 erhalten Sie<br />

Debug Infos über den Aufbau der Maske und den<br />

gewählten Parametern.<br />

Mit der rechten Maustaste erhalten Sie ein Kontextmenü in den einzelnen Feldern. Damit<br />

lassen sich markierte Begriffe ins Wörterbuch übertragen, das Wörterbuch für dieses Feld<br />

bearbeiten, Strokes prüfen (Unterschriften-vergleich) und die Feldkonfiguration im Designmodus<br />

bearbeiten.<br />

Mit der Taste F11 wird, falls Daten vorhanden, ein Popup Menü für das Feld aufgerufen.<br />

Damit lassen sich z.B. aus einem Artikelstamm die Daten für die Verifizierung auswählen.<br />

Für jedes Feld kann ein eigener<br />

Datenbestand für Popups definiert<br />

werden. Der Import und die Verwaltung<br />

von Selektoren wird im Anhang<br />

beschrieben.<br />

Sie können hier die Selektoren auch<br />

löschen, ändern oder neu anlegen. Sie<br />

können nach dem Code (z.B.<br />

Artikelnummer) oder der Bezeichnung<br />

suchen.<br />

Diese Daten werden auch zur<br />

automatischen Vervollständigung von<br />

Formularfeldern verwendet. Wenn z.B.<br />

nur die Artikelnummer eingetragen<br />

wurde, aber nicht die Bezeichnung. Dann<br />

kann diese automatisch im PDF und XML<br />

eingefügt werden.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 18<br />

Mit der Taste ALT+F9 wird der Dialog für die Konfiguration aufgerufen.<br />

Wenn Sie die Option „Design“ wählen, wird nach dem Beenden und<br />

neu Öffnen der Maske der Designmodus aktiviert.<br />

Mit der Taste ALT+F10 wird der Dialog für die Basiskonfiguration aufgerufen<br />

Hier können Sie die wichtigsten Parameter ändern.<br />

Die Tasten + und + verändern den Faktor<br />

für die Größe des Dialoges. Bei „Hintergrund<br />

neu erstellen“ wird aus der Datei background.pdf<br />

im Unterverzeichnis der Applikation<br />

eine JPG Datei für den Dialoghintergrund<br />

erstellt.<br />

Die Testbuttons zeigen die Konfiguration in einem<br />

sog. Array detailliert an.<br />

Mit der Taste F12 kann das Feld in einem eigenen Dialog bearbeitet werden. Diese Funktion<br />

ist bei sehr kleinen Feldern hilfreich.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 19<br />

Buttons oben im Bearbeitungsdialog<br />

1 2 3 4 5 6 7 8 9 10 11 12 13 14<br />

Button 1 Druck<br />

Es kann über einen Druckdialog der Drucker gewählt werden, es wird der gesamte Dialog<br />

als Screenshot gedruckt. Wenn Sie nur das PDF drucken wollen, finden Sie den Button im<br />

PDF Dialog.<br />

Button 2 Mail<br />

Das Formular wird per Email versendet. Tragen Sie den Empfänger ein und ändern Sie u.U.<br />

den Text im Textfeld. Sie können das PDF<br />

auch gezippt senden.<br />

werden auch diese ausgewertet.<br />

Mit dem Button „Verteiler“ wird der<br />

Standardverteiler für dieses Formular<br />

ermittelt und bei der Mailadresse<br />

eingetragen. Wenn Sie z.B. bei einem<br />

Formular Checkboxen für verschiedene<br />

Mailempfänger verwenden, werden diese<br />

Checkboxen ausgewertet und wenn<br />

angewählt, die entsprechenden Empfänger<br />

ermittelt. Wenn Sie eine Verteilerzeile mit<br />

Mailadresse oder Shortcuts verwenden,<br />

Button 3 PDF Status<br />

Es wird der aktuelle Status der PDF Datei angezeigt, dieser kann auch verändert werden.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 20<br />

Button 4 Formular Bearbeitungs-Status<br />

Es wird der aktuelle Status angezeigt, dieser kann geändert werden. Im Dialog unten sehen<br />

Sie Detailinformationen zur Auslagerung, schließen des<br />

Formulars und Änderungen durch User. Details finden Sie auch<br />

in der Formular History.<br />

Button 5 Weiterleitungen<br />

Falls Weiterleitungen durch Checkboxen oder Verteilerzeilen definiert wurden, werden diese<br />

angezeigt.<br />

Button 6 Workflow Baumstruktur<br />

Die Baumstruktur des Formulars wird angezeigt und kann bearbeitet werden. Damit lassen<br />

sich Formulare verknüpfen und zu einer Struktur kombinieren.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 21<br />

Button 7 History<br />

Es wird die komplette Verarbeitungs-History angezeigt<br />

Button 8 GPS Daten<br />

Es werden die Koordinaten mittels Google<br />

Maps dargestellt. Dazu muss am Mobiltelefon<br />

im Penpusher die Option GPS aktiviert werden.<br />

Button 8 Zusatz Funktionen<br />

Dieser Button ist für kundenspezifische Zusatzfunktionen per Script verwendbar.<br />

Button 9 Konfiguration<br />

Dieser Button öffnet den Konfigurationsdialog.<br />

Buttons 11-14 Seiten Navigation<br />

Sie können bei mehreren Formularseiten zusätzlich zu den Buttons unten blättern.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 22<br />

Buttons unten<br />

1 2 3 4 5 6 7 8 9 10 11<br />

Die Buttons 5,6,7,8 sind nur im Designmodus verfügbar<br />

Button 1 Druck Dialog<br />

Es wird der Adobe Druckdialog geöffnet zum Drucken des PDF.<br />

Button 2 Formular Details<br />

Es werden alle Detaildaten des Formulars angezeigt, Werte von Felder könne geändert werden.<br />

Button 3 Abbruch<br />

Abbruch ohne Speichern<br />

Button 4 Playback<br />

Playback der Vektordaten in Echtzeit zur Verifizierung von Unterschriften<br />

Button 5 F11=Popup<br />

Öffnet den Dialog für Popup Felder, sieh oben Funktionstaste F11. Dieser Button kann über<br />

die Einstellungen unterdrückt werden.<br />

Button 6 aFields<br />

Es werden alle Felddefinitionen in einem Array angezeigt, dient zur Überprüfung der Definitionen.<br />

Button 7 SavePos<br />

Speichert die Feld Größe- und Position wenn diese mit dem Designer verändert wurden.<br />

Button 8 EditKonf.<br />

Die Konfigurationsdatei wird in einem Texteditor angezeigt und kann manuell verändert<br />

werden.<br />

Button 9 PDF Export<br />

Die PDF Datei kann in ein anderes Verzeichnis exportiert werden.<br />

Button 10 Speichern<br />

Die Änderungen der Formularfelder werden gespeichert.<br />

Button 11 Abschluss<br />

Das Formular wird abgeschlossen und falls vorhanden, das Export Script ausgeführt. Dazu<br />

muss in der Basiskonfiguration die Option „Nach Verifizieren Export“ angewählt werden und<br />

ein Connector für dieses Formular definiert werden.<br />

Beim Export können Formulare<br />

• In SQL Tabelle (ODBC) exportiert werden<br />

• Mittels FTP versendet werden<br />

• In einen Ordner als XML und PDF kopiert werden<br />

• Als Email versendet werden<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 23<br />

• Als XML mittels Webservice exportiert werden<br />

• Mittels SOAP als XML exportiert werden<br />

• In eine FOXPRO oder SQL Datenbank exportiert werden, wobei jede XML Variable in<br />

ein eigenes Datenbankfeld gespeichert wird<br />

Alle diese Exportmöglichkeiten lassen sich auch kombinieren.<br />

Beim Abschluss wird der Formular Status geändert und eine XML Variable mit Datum, Zeit<br />

und Bearbeiter angefügt.<br />

Beim Export wird eine XML Variable mit der Exportmethode angefügt.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 24<br />

Formular-Felddefinitionen für CT-PEN DPP Formulare<br />

Sie erhalten von uns zur Definition aller verwendeten Felder eine EXCEL Vorlage, in welche<br />

Sie die Definitionen für die einzelnen Felder eintragen.<br />

Die Definition für ein Formular besteht aus folgenden Elementen<br />

Index Interne Nummer des Feldes (Referenznummer)<br />

Seite Nummer der Formularseite wenn mehrere Seiten verwendet werden<br />

XML Knoten Bezeichnung des Feldnamens im XML welches die Daten im Klartext aus der<br />

Schrifterkennung<br />

enthält und die hauseigene IT übernommen werden kann<br />

Typ Typ des Feldes<br />

Subtyp Untertyp zur Verarbeitung z.B. Email, Telefonnummer, Verteilerzeile etc.<br />

Bezeichnung Infotext für das Feld<br />

Dezimale Dezimalstellen bei numerischen Feldern<br />

Max.Länge Maximale Länge des Feldinhaltes<br />

Gruppe Bei Radiobuttons der Name der Gruppe<br />

Prepop „J“ wenn beim Druck ein Wert in das Feld gedruckt wird wie z.B. Auftragsnummer,<br />

Kundendaten etc. Die Daten werden von Ihnen in Form einer XML<br />

Datei zur Verfügung gestellt (siehe Systeminfos)<br />

Datenty<strong>pen</strong> für das Feld TYP:<br />

L Logisch bzw. Checkbox<br />

R Radiobuttongruppe, nur ein Feld der Gruppe kann angekreuzt werden<br />

M Mehrzeilige freie Textfelder<br />

C Einzeilige Textfelder<br />

CB unterteilte Felder<br />

D Datum<br />

N Ziffern 0-9<br />

U Uhrzeit in Form einer Uhr (siehe unten)<br />

ZS Zeitspanne (siehe unten)<br />

T Temperatur (in Form eines Thermometers)<br />

F Foto (Das Telefon erwartet ein Foto welches mit dem Formular geschickt wird)<br />

B Barcodecheckbox (Stift liest nach dieser Checkbox einen beliebigen Barcode ein)<br />

Subty<strong>pen</strong><br />

VMAIL Mail Verteilerzeile<br />

EMAIL Email<br />

TEL Telefonnummer<br />

WB Wörterbuch wird hinterlegt, z.B. Artikelstamm<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 25<br />

Interne Felder<br />

Für interne Zwecke werden folgende Felder verwendet:<br />

SYS_DESC1 Beschreibung lt. Script<br />

SYS_DESC2 Beschreibung2 lt. Script<br />

SYS_DESC3 Kennung lt. Script<br />

SYS_USERNAME Username<br />

SYS_BASEFORM Seitennummer des Hauptformulars mit dem dieses Formular verbunden<br />

ist (variable Formularsetzs)<br />

Sonderfelder (werden zur Steuerung des Workflows verwendet)<br />

_STORNOPAGE Seite stornieren<br />

_CLOSED Seite wurde vom User über Checkbox geschlossen<br />

_NEXTPAGE Folgeseite (Radiobutton Gruppe SYSPAGE im Formidable)<br />

_LASTPAGE Letzte Seite einer Serie (Radiobutton Gruppe SYSPAGE im Formidable)<br />

_AKTPAGE Seitennummer einer Serie<br />

_STORNO_01 Checkbox Storno aller Felder mit Endung „_01“<br />

_FORMTIME 4 Stellig, boxed, Zeit, wird zur Verbindung von Formularen verwendet<br />

EVERNOTE Checkbox für autom. Export des Formulars in Evernote<br />

[var]_LD Leading decimals, Vorkommastellen um Dezimalfelder automatisch zusammenzuführen,<br />

zusätzlich ist das Feld mit anschließendem _TD notwendig.<br />

Diese beiden Felder werden automatisch zu einem Feld komibniert.<br />

Z.B. Werte aus Feld PREIS1_LD und Feld PREIS1_TD werden automatisch<br />

in Feld PREIS1 gespeichert. Diese XML Variable wird dann automatisch<br />

erstellt und muss nicht in Formidable berüchsichtigt werden<br />

[var]_TD Trailing decimals, siehe _LD<br />

_EXPORT_WORD Das Formular wird als Word Dokument weitergeleitet, Voraussetzung ist<br />

eine Vorlage im Unterverzeichnis REP oder im APPS Verzeichnis des<br />

FormCommanders<br />

Zeilen welche durch _STORNO_[n] storniert werden können, müssen am Ende die jeweilige<br />

Zahl enthalten, z.B. ARTIKEL_01 für die Artikelnummer in Zeile 1, BEZEICHN_01 für Bezeichnung<br />

01 etc.<br />

Bei fix zugeordneten Zusatzformularen muss in der Projekt Kennung „CONNECT_[nProjekt]“<br />

enthalten sein, z.B. CONNECT_1. Diese Formulare werden mit dem Feld _FORMTIME, welches<br />

die aktuelle Zeit des Hauptformulars enthält (vom User eingetragen) verbunden. Wenn<br />

also z.B. das Verkaufsformular die Projektnummer 5 hat, dann muss bei Zusatzformularen<br />

die Kennung „CONNECT_5“ eingetragen werden.<br />

Wenn kein fix zugeordnetes Formular folgt, wird das erste Formular des gleichen Tages mit<br />

dem gleichen _FORMTIME Wert gesucht und das aktuelle Formular damit verknüpft. Es<br />

können also beliebige Formulare miteinander am gleichen Tag verknüpft werden.<br />

Bei verketteten Formularen wird immer die Basis Seiten ID in der Variablen<br />

SYS_BASEFORM gespeichert, damit erhalten Sie immer eine eindeutige Referenz auf das<br />

Hauptformulare. Bei der Übernahme der Daten in Ihr System sollten Sie immer diese Referenz<br />

verwenden.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 26<br />

Kombinierte Formulare werden mit einer eigenen ID zu einem neuen Formular mit einem<br />

kombinierten XML mit den Feldern und Kopfdaten aller Formulare gespeichert. In der<br />

Baumansicht sieht man die Abhängigkeit der Formulare.<br />

_DXF_[n] Export Skizze ins DXF Format, wird als Datei mit der Formular ID und<br />

der Seitennummer mit Endung dxf im Formularverzeichnis<br />

.www_root/form/ gespeichert<br />

Checkboxen müssen unbedingt „true“ bei aktiviert zurückgeben !<br />

Wenn eine Checkbox mit dem Namen „evernote“ gefunden wird und der User in den Userverwaltungsdaten<br />

Zugangsparameter für Evernote eingetragen wurden, dann wird dieses<br />

Formular über das Commandline Interface an Evernote als PDF und im Klartext übergeben.<br />

Dazu muss jedoch Evernote auf dem FormCommander Computer installiert sein.<br />

Selektoren, Basisdaten für Popup Felder, Feldvalidierung und Autofill<br />

Felder<br />

Selektoren sind die Basis für Popup Felder, Feldvalidierung und automatischen Zusatztext in<br />

Formularen. Diese Daten werden über ein CSV File eingelesen. Die jeweilige Datei muss in<br />

den Ordner „select“ des FormCommanders kopiert werden. Nach der Übernahme wird diese<br />

wieder gelöscht. Bei bereits eingelesenen Datensätzen werden nur die Bezeichnungen überschrieben.<br />

Die Datei muss mit „SEL_“ beginnen und die Endung CSV besitzten. Beispiel:<br />

SEL_ARTIKEL.CSV<br />

Die Datei muss wie folgt aufgebaut sein:<br />

ART;CODE;BEZEICHNUGN;INFO<br />

ART Art des Popups, damit wird die Gruppe für das jeweilige Formularfeld definiert,<br />

z.B. ARTIKEL. Die Art kann dann bei den Felddefinitionen für Popup Felder im<br />

FormCommander in der Felddefintion eingetragen werden. Dabei wird zwischen<br />

Popups mit und ohne Button rechts zur Auswahl im Verifier unterschieden.<br />

Wenn z.B. bei den Felddefinitionen des Formulars unter „Popup“<br />

H_ARTIKEL anstatt nur ARTIKEL eintragen, dann wird kein Popup Button<br />

rechts neben dem Formularfeld dargestellt, stattdessen muss die Auswahltabelle<br />

mit der Funktionstaste F11 aufgerufen werden wenn der Cursor im Feld<br />

steht. Dadurch können Popups auch bei direkt angrenzenden Feldern verwendet<br />

werden bei denen kein Platz für den Popup Button vorhanden ist. Im Designer<br />

Modus (Admin Rechte erforderlich) des Viewers kann mit Klick der rechten<br />

Maustaste das Kontextmenü aufgerufen werden, über welches ebenfalls<br />

die Felddefinitionsmaske geöffnet wird. Hier kann die Art dann unter „Pupup“<br />

eingetragen werden.<br />

CODE Kurzcode wie z.B. die Artikelnummer oder Kundennummer. Der Code ist die<br />

eindeutige Referenz auf die Bezeichnung, darf also nicht doppelt vorkommen.<br />

BEZEICHNUNG Bezeichnung des Feldes, kann für automatische zusätzliche Texte auf<br />

Formularen verwendet werden. Damit können Kürzel (Feld CODE) im Formular<br />

eingetragen werden, das System druckt automatisch die Zugehörige Bezeichnung<br />

ins Formular.<br />

INFO Optionale interne Info für das Feld<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 27<br />

Selektoren können auch manuell übernommen werden. Im FormCommander -> Button unten<br />

„Konfig“ -> Menü oben „Stammdaten“ -> „Selektoren Definition“ -> Button rechts „Import“.<br />

Hier sehen Sie auch alle übernommenen Daten und können diese manuell ändern.<br />

Diese Selektoren können auch Projektübergreifend verwendet werden.<br />

Achtung: für die automatische Übernahme muss in der Konfiguration des FormCommanders<br />

-> Button unten „Konfig“ -> Tab „Einstellungen“ die Option „Selektoren automatisch importieren„<br />

aktiviert sein.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 28<br />

Popup Felder<br />

Diese Felder dienen im Verifier Popup’s beim editieren der Formulare. Dazu muss im Form-<br />

Commander in der Formularfelddefinition im Feld „Popup“ die Gruppe für das Popupfeld eingetragen<br />

werden.<br />

Feldvalidierung<br />

Felder können auf einfache Weise auf Gültigkeit überprüft werden. Dazu muss in den Formularfelddefinitionen<br />

eine Funktion im Feld „Gültig“ eingetragen werden. Wenn die Bedingung<br />

false bzw. .f. zurückgibt, wirde das Feld auf dem Formular rot umrahmt.<br />

Beispiel für die vordefinierten Funktionen val_csc() und val_csb():<br />

Ein Formularfeld (XML Variable ARTIKEL01) wird überprüft, ob der Inhalt in der Tabelle der<br />

Popup Werte enthalten ist. In der Pupudefinition muss die Artikelnummer wie folgt übergeben<br />

werden:<br />

ARTIKEL;12453789778;Rohrschelle 15mm;Rohrschelle<br />

Die Funktion im Feld „Gültig“:<br />

val_csc("ARTIKEL",xvar("ARTIKEL01"))<br />

Soll die Artikelbezeichnung validiert werden, muss die Funktion wie folgt eingetragen werden:<br />

val_csb(“ARTIKEL“,xvar("BEZEICHNUNG01"))<br />

Wenn die der Text im Formularfeld BEZEICHNUNG01 nicht gefunden wird, erscheint das<br />

Feld auf dem resultierenden PDF rot umrahmt.<br />

Die Feldvalidierungsfunktion kann auch aus jedem gültigen Scriptausdruck erstellt werden.<br />

Beispiel:<br />

upper(xvar("USERCODE")) $ {"USER1", "USER2", "USER3", "USER4"}<br />

Variable USERCODE muss im Vergleichsarray enthalten sein<br />

Beispiel:<br />

val(xvar("NUMMER")) > 10 .and. val(xvar("NUMMER")) < 100<br />

Es gibt noch eine wesentlich leistungfähigere Möglichkeit Felder bzw. komplette Formulare<br />

zu validieren, dazu werden die sog. SRC Connectoren verwendet. Diese können komplexen<br />

Sourcecode zur Kontrolle und Markierung von Felder enthalten und ermöglichen auch das<br />

Einfügen zusätzlicher Texte auf dem PDF. Dabei haben Sie tausende Scriptbefehle der XBA-<br />

SE Programmiersprache sowie sämtliche interen Funktionen des FormCommanders zur Verfügung.<br />

Beispiel:<br />

aMark := {}<br />

cXML := mord->xml<br />

nXWert1 := val(xvar("boxed105",cXML))/100<br />

nXWert2 := val(xvar("boxed106",cXML))/100<br />

nXWert3 := val(xvar("boxed107",cXML))/100<br />

nXSum := val(xvar("boxed108",cXML))/100<br />

nSum := nXWert1+nXWert2+nXWert3<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 29<br />

cXML := put_xmlvar(cXML,"boxed105",ntrim(nXWert1,2))<br />

cXML := put_xmlvar(cXML,"boxed106",ntrim(nXWert2,2))<br />

cXML := put_xmlvar(cXML,"boxed107",ntrim(nXWert3,2))<br />

if nXSum = 0 // wenn leer<br />

cXML := put_xmlvar(cXML,"boxed108",ntrim(nSum,2)) // Berechneter Wert<br />

aadd(aMark,{"boxed108",ntrim(nSum,2)}) // Wert ins PDF eintragen da Feld nicht ausgefüllt<br />

if mord->(rec_lock())<br />

mord->xml := cXML // Summe korrigiert<br />

endif<br />

else<br />

if ntrim(nXSum,2) # ntrim(nSum,2)<br />

aadd(aMark,{"boxed108","#","1,0,0"}) // Feld rot umranden, 1,0,0 = Farben RGB<br />

endif<br />

endif<br />

cstat("PDFCORRECT",aMark)<br />

In diesem Beispiel werden die Felder boxed105 bis boxed107 überprüft und bei Bedarf die<br />

Summe in Feld boxed108 eingetragen bzw. das Feld bei falscher Summe rot umrandet.<br />

Beispiel Artikelnummern aus verschiedenen Feldern verbinden und prüfen ob vorhanden<br />

bzw. gültige Nummer<br />

x := 0<br />

cXML := mord->xml<br />

aMark := {}<br />

aSel := saveo<strong>pen</strong>("SEL")<br />

sel->(setorder("CODE"))<br />

for x := 1 to 20<br />

cVar1 := "ANDM_" + strzero(x,2)<br />

cVal1 := xvar(cVar1)<br />

if !empty(cVal1)<br />

cVal1 := padr(cVal1,5,"0")<br />

cXML := put_xmlvar(cXML,cVar1,cVal1)<br />

//dcqdebug cVal1<br />

end<br />

cVar2 := "ANFAM_" + strzero(x,2)<br />

cVal2 := xvar(cVar2)<br />

if !empty(cVal2)<br />

cVal2 := padr(cVal2,5,"0")<br />

cXML := put_xmlvar(cXML,cVar2,cVal2)<br />

//dcqdebug cVal2<br />

end<br />

cVar3 := "ANEN_" + strzero(x,2)<br />

cVal3 := xvar(cVar3)<br />

if !empty(cVal3)<br />

cVal3 := strzero(val(cVal3),3)<br />

cXML := put_xmlvar(cXML,cVar3,cVal3)<br />

//dcqdebug cVal3<br />

end<br />

cVar4 := "BEMERK_" + strzero(x,2)<br />

cVal4 := xvar(cVar4)<br />

cVar5 := "PREIS_" + strzero(x,2)<br />

cVal5 := xvar(cVar5)<br />

if !empty(cVal5)<br />

if !"." $ cVal5 .and. !"," $ cVal5<br />

cVal5 := ntrim(val(cVal5)/100,2)<br />

cXML := put_xmlvar(cXML,cVar5,cVal5)<br />

//dcqdebug "var5"<br />

end<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 30<br />

end<br />

cArtikel := cVal1 + cVal2 + cVal3<br />

if !empty(cArtikel)<br />

if !sel->(seek(padlen("ARTIKEL",10) + cArtikel))<br />

aadd(aMark,{cVar1,"#","1,0,0"}) // Feld rot umranden, 1,0,0 = Farben RGB<br />

aadd(aMark,{cVar2,"#","1,0,0"})<br />

aadd(aMark,{cVar3,"#","1,0,0"})<br />

end<br />

end<br />

//dcqdebug cArtikel<br />

next x<br />

if mord->xml # cXML .and. mord->(rec_lock())<br />

mord->xml := cXML<br />

end<br />

saveo<strong>pen</strong>(aSel)<br />

cstat("PDFCORRECT",aMark)<br />

Hinweis: Auch wenn die XBase Sprache ein "endif" erlaubt, erlaubt der Scriptinterpreter nur<br />

"end"<br />

Text in PDF über Selektor Tabelle<br />

Über die Funktion val_addtext(cArt,cVar,cTarget,[cColor],[cFont],[cPos]) im Feld Gültig in<br />

der Felddefinition kann der Text (Bezeichnung) eines Selektor Codes ins PDF Formular eingetragen<br />

werden.<br />

Beispiel: ins Feld Bezeichnung des PDF automatisch den Text in Rot anhand der Artikelnummer<br />

eintragen<br />

val_addtext("ARTIKEL","ARTIKEL01","BEZEICHNUNG01","1,0,0","10.Arial")<br />

Die Variable cColor definiert die Farbe in den Anteilen in Prozent von Rot, Grün und Blau.<br />

Die Variable cFont enthält einen gültigen Windows Font.<br />

Die Variable cPos enthält die Position links,oben , z.B. "30,50" = 30mm vom linken Rand,<br />

50mm vom oberen Rand.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 31<br />

Verfügbare Formularelemente<br />

Die Formulare können vielseitig bis zur Größe A3 gestaltet werden, anbei ein paar<br />

Beispiele für Formularelemente.<br />

Standardfelder für Text<br />

und Zahlen (Typ CB)<br />

Jedes Zeichen muss in eine Box<br />

geschrieben<br />

werden<br />

Datumsfelder Typ D<br />

Radiobuttons Typ R<br />

es wird nur eines der Felder mit<br />

einem Kreuz markiert, bei<br />

Mehrfachmarkierung (Fehler beim<br />

Ankreuzen) wird nur die letzte Wahl<br />

registriert.<br />

Checkboxen Typ L<br />

zum Anhaken<br />

einzeln wählbar.<br />

Uhrzeit wählbar Typ U<br />

Zeitspanne Typ ZS von – bis, die<br />

Dauer wird automatisch<br />

berechnet<br />

Temperatur Typ T<br />

Email Typ C Subtyp<br />

EMAIL<br />

Zeiten erfassen<br />

Verteiler Mail Typ E<br />

Subtyp VMAIL<br />

es können sog. Shortcuts<br />

verwendet werden.<br />

(einstellbar im Webinterface) oder direkte Emailadressen<br />

7:00<br />

11<br />

10<br />

12<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m<br />

9<br />

1<br />

2<br />

3<br />

8 4<br />

7 6 5<br />

8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00 19:00<br />

Beginn Ende<br />

36 37 38 39<br />

°Celsius


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 32<br />

Checkboxen Typ L Subtyp<br />

EMAIL<br />

z.B. für Emailverteiler, die<br />

entsprechenden Adressen können im<br />

Webinterface definiert werden.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


FormVerifier by Rudolf Reinthaler Softwareentwicklung Seite 33<br />

Folgende Punkte sind bei der Gestaltung von Formularen zu beachten:<br />

Genügend große Felder für Buchstaben, optimal ab 8mm Höhe und 7mm Breite<br />

Genügend Abstand der Zeilen, optimal ab ca. 2mm<br />

Verwenden Sie geschlossene Boxen für jedes Zeichen, damit wird die Schreibdisziplin<br />

des Users entsprechend verbessert.<br />

Verwenden Sie vorzugsweise Zahlenfelder und Checkboxen, diese werden mit<br />

fast 100%iger Genauigkeit erkannt.<br />

Halten Sie einen ausreichenden Abstand zwischen Checkboxen, der User könnte<br />

andernfalls mehrere Checkboxen gleichzeitig ankreuzen.<br />

Jedes Formular welches mobil versendet wird, muss eine Senden-Box unten<br />

rechts enthalten.<br />

Halten Sie mindestens 15mm Abstand zwischen Formularfeldern und der Senden-Box<br />

unten rechts.<br />

Erstellen Sie nach Möglichkeit Wörterbücher für Felder oder Feldgrup<strong>pen</strong> zur<br />

Optimierung der Schrifterkennung<br />

Jede Seite mit der DPP Funktionalität muss ein sog. Anoto Statement (Anoto ist<br />

der Lizenzgeber für das patentierte Raster) und ein CT-PEN Statement enthalten.<br />

Beide Statements müssen mindestens 4mm vom Seitenrand entfernt platziert<br />

werden.<br />

Format von Wörterbüchern für die Optimierung der Texterkennung<br />

Sie können Wörterbücher als ASCII im UTF-8 Format an an CT-PEN senden oder ab<br />

Mitte 2010 direkt über einen Webservice. Wir hinterlegen diese Wörterbücher auf<br />

unserem Server beim entsprechenden Formularfeld um die Schrifterkennung zu optimieren.<br />

Vergessen Sie bitte nicht auch das entsprechende Feld bzw. die Feldgruppe<br />

für das Wörterbuch bekanntzugeben. Wörterbücher sollten nur sinnvolle Wörter enthalten,<br />

also keine einzelnen Zeichen und kurze Zeichengrup<strong>pen</strong> welche nicht eindeutig<br />

zuordenbar sind.<br />

Folgende Sprachen bei der Schrifterkennung werden derzeit unterstützt:<br />

• Arabic<br />

• Chinese (Simplified)<br />

• Chinese (Traditional)<br />

• Danish<br />

• Dutch<br />

• English (Canada)<br />

• English (GB)*<br />

• Eng<br />

lish<br />

(US<br />

)<br />

• Finnish<br />

• French (Canada)<br />

• French (France)<br />

• German<br />

• Greek<br />

• Italian<br />

• Japanese<br />

• Korean<br />

• Norwegian<br />

• Portuguese (Portugal)<br />

• Portuguese (Brazil)<br />

• Russian<br />

• Spanish (Mexico)<br />

• Spanish (Spain)<br />

• Swedish<br />

• Turkish<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 34<br />

Konfiguration von Formularfeldern für die Verarbeitung<br />

Jedes Formularfeld kann auf verschiedene Weise für die Verarbeitung konfiguriert werden.<br />

Dabei wird unterschieden zwischen der einmaligen Verarbeitung beim Einlesen ins<br />

System und der Verifzierungskontrolle. Die Einstellungen setzen sich aus Parametern und<br />

Scripts zusammen. Über die Projekteinstellungen -> „Zusätze“ -> „Auto fill fielddef.“<br />

Wählen Sie zuerst die Felder zur Verarbeitung aus der Tabelle.<br />

Sie können mit STRG+Links Klick und SHIFT<br />

mehrere Sätze markieren.<br />

Danach wählen Sie die zu ändernden Parameter. Es kann immer nur ein Wert in der gewählten<br />

Gruppe in einem Vorgang verändert werden.<br />

Hide / Unhide in Viewer<br />

Felder könnnen zur Anzeige im Viewer<br />

unterdrückt werden<br />

TTyp<br />

Verarbeitungstyp, z.B. EMAIL, VMAIL<br />

(Verteilerzeile). Damit werden zusätzliche<br />

Funktionen und Kontrollen ausgelöst.<br />

Art<br />

Die Verarbeitungsart kann kundenspezifisch<br />

definiert werden und wird in der<br />

Standardkonfiguration nicht verwendet.<br />

Page<br />

Formularseite für das Feld<br />

Picture<br />

Es können Eingabemasken für den Verifier<br />

definiert werden.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 35<br />

Beispiele:<br />

99-99-999 Datumsfeld<br />

99999.99 Zahlenfeld mit zwei Nachkommastellen<br />

!!!!!!!!!! 10 Zeichen in Grosschrift<br />

!XXXXX 6 Zeichen, das erste immer Gross<br />

@S30 Beliebig lange Zeichenkette in einem 30 Zeichen langen Eingabefeld (scrollend)<br />

@R 99-99/99 Sonderzeichen – und / anzeigen im Eingabefeld, aber nicht speichern<br />

Im Anhang finden Sie einen ausführlichen Auszug aus der Originaldokumentation<br />

Group<br />

Feldgruppe, wird nur in kundenspezifischen Sonderfällen verwendet<br />

Im Textfeld Codeblock script können komplette Funktionen in der XBase Programmiersprache oder<br />

Script Shortcuts eingetragen werden.<br />

Beispiel für ein Script:<br />

Hiermit wird ein Datumsfeld korrigiert<br />

// Datumsfeldkorrektur<br />

=<br />

cTmp := substr('',1,2)<br />

cTmp += '-' + substr('',3,2)<br />

cTmp += '-' + alltrim(token('',' ',2))<br />

cTmp := wctod(cTmp)<br />

if empty(cTmp)<br />

return ''<br />

endif<br />

return dtoc(cTmp)<br />

beinhaltet den aktuellen Wert der XML Variablen. Der Return Wert der Funktion wird<br />

im XML File wieder eingetragen.<br />

Es wird z.B. aus dem Wert<br />

1206 2011<br />

die Datumszeichenkette<br />

12-06-2011<br />

Es ist auch möglich andere XML Variablen zu verändern. Im Beispiel wird entsprechend dem Inhalt<br />

der Variablen eine andere Variable verändert<br />

// Feldänderung<br />

=<br />

cTmp := substr('',1,2)<br />

if cTmp = "01"<br />

put_xmlvar((alias())->XML,"korrvar",substr('',3))<br />

endif<br />

return ''<br />

Es werden die ersten zwei Stellen auf die Zeichenkette "01" geprüft und wenn ok dann der Rest<br />

der Zeichenkette in die Variable "korrvar" gespeichert.<br />

Mit<br />

addxmlvar((alias())->XML,"korrvar","Test")<br />

Kann z.B. eine zusätzliche XML Variable eingefügt werden.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 36<br />

Script Shortcuts können zur einfachen Definition von vordefinierten Scripts verwendet werden.<br />

Diese könne wiederum auch kundenspezifisch erstellt werden. Die Scripts haben folgende Funktionen:<br />

SCRIPT:DATE<br />

Korrigiert den Wert der Variable in eine Datumszeichenkette. Es werden die verschiedensten Formate<br />

automatisch erkannt und in das Format TT-MM-JJJJ konvertiert.<br />

Beispiele:<br />

010211 -> 01-02-2011<br />

01/02/11 -> 01-02-2011<br />

2011/02/24 -> 24-02-2011<br />

01-02-11 01-02-2011<br />

20090201 01-02-2009<br />

01022009 01-02-2009<br />

SCRIPT:DEC[:nDec]<br />

Felder mit Preisen können hier automatisch korrigiert werden. Bei diesen Feldern wird in der Regel<br />

kein Dezimalpunkt vom User eingegeben, der Wert wird dann durch die vordefinierte Anzahl von<br />

Dezimalen * 100 dividiert. Wenn der Wert nDec nicht angegeben wird, dann verwendet das System<br />

die Anzahl aus der Felddefinition. Wenn Sie also SCRIPT:PRICE angeben wird der voreingestellte<br />

Wert verwendet, wenn Sie SCRIPT:PRICE:3 definieren, werden immer 3 Nachkommastellen<br />

verwendet.<br />

Z.B. der Wert 1020 mit 2 Nachkommastellen, wird automatisch zu 10.10 konvertiert. Wenn der<br />

User zur Trennung Komma oder Dezimalpunkt am Formular verwendet hat, werden diese berücksichtigt.<br />

Ebenso die Zeichenketten ,- und --.<br />

Beispiele bei der Definition von 2 Nachkommastellen:<br />

100,- -> 100<br />

100,-- -> 100<br />

10022 -> 100.22<br />

100-- -> 100<br />

100,22 -> 100.22<br />

100.22 -> 100.22 keine Änderung<br />

SCRIPT:PROPER<br />

Der erste Buchstabe wird in Großbuchstaben konvertiert, der Rest in Kleinbuchstaben. Diese<br />

Funktion ist sinnvoll bei Namen, Ortsnamen und diversen Bezeichnungen.<br />

SCRIPT:CHAR<br />

Es werden die Zahlen 2,0 und 5 in Z, O und S konvertiert und alle Zeichen welche keine Buchstaben<br />

darstellen entfernt.<br />

SCRIPT:CHAR NUM<br />

Es werden alle Zeichen welche keinen Buchstaben oder kein Zahl darstellen entfernt.<br />

SCRIPT:UPPER<br />

Die komplette Variable wird in Großbuchstaben konvertiert.<br />

SCRIPT:LOWER<br />

Die komplette Variable wird in Kleinbuchstaben konvertiert.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 37<br />

SCRIPT:TRANSFORM:[picture]<br />

Konvertiert in eine Zeichenkette welche wie im Anhang unter "Picture Definition" beschrieben über<br />

die Maske [picture]<br />

SCRIPT:LEXICON:[cVerarbeitung]:[nNäherung%]<br />

Optimierung von Variablen mit Hilfe des Lexikons für das jeweilige Feld. Details finden Sie im<br />

nächsten Abschnitt der Dokumentation.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 38<br />

FC Wörterbücher und lexikalische Analyse von Dokumenten<br />

Dieser Abschnitt befasst sich mit der Möglichkeit ein Lexikon für einzelne Felder anzulegen, zu<br />

verwalten, an den Support für die Installation am DPP Server zu senden und um Formulare im<br />

FormCommander und Verifier anhand dieser Daten zu optimieren.<br />

Das Lexikon kann entweder<br />

• Manuell über die Projektkonfiguration in Textform erfasst werden<br />

• Über den Verifier im entsprechenden Feld mit der rechten Maustaste ergänzt und bearbeitet<br />

werden<br />

• Über die Formulardetails im der Formulartabelle (F2) unten Button "Lexikon Regeln" (vorher<br />

Feld in Tabelle anwählen)<br />

• Über den FormCommander im Pulldownmenü "System" unter "Lexikon" verwaltet, analysiert,<br />

optimiert und für die Verarbeitung am DPP Server exportiert werden.<br />

Die manuelle Verwaltung erfolgt über die Konfiguration, hier wird das Lexikon als einfache Textdatei<br />

bearbeitet. Wählen Sie das Projekt und dann in den Felddefinitionen Button rechts "Lexikon".<br />

Für jedes Wort eine Zeile eintragen, die Anzahl der Wörter ist unbegrenzt.<br />

Zum Hinzufügen von einzelnen Begriffen kann im Verifier im jeweiligen Feld ein Wort oder eine<br />

Zahl markiert und dann mit der rechten Maustaste "ins Wörterbuch" übernommen werden. Falls<br />

der Begriff bereits vorhanden ist, wird dieser ignoriert. Zusätzlich ist es mit Admin Berechtigung<br />

möglich das Lexikon des jeweiligen Feldes detailliert zu konfigurieren. Normale User können nur<br />

das Textfile des Lexikon bearbeiten.<br />

Lexikonanalyse- und Verwaltung<br />

Wesentlich komfortabler ist die Verwaltung über die Lexikonanalyse. Hier können auch zusätzliche<br />

Optionen wie Scriptkorrekturen, Filter etc. definiert werden.<br />

Wählen Sie dazu die Projektnummer und falls ein<br />

einzelnes Feld analysiert werden soll den XML Feldnamen.<br />

Beim Feldtyp wird in erster Linie C=Character sowie<br />

M=Textfelder analysiert, sollten Zifferngrup<strong>pen</strong><br />

verwendet werden und das Feld ist in den<br />

Felddefinitionen als numerisch definiert, können Sie<br />

auch N=Numerisch verwenden.<br />

Die Tokens definieren die zusätzlichen Zeichen zu<br />

Leerzeichen und Zeilenumbruch welche Wörter in<br />

Texten trennen.<br />

Die Mindestanzahl gibt das minimale Vorkommen des<br />

Begriffes in den zu analysierenden Formularen an um<br />

in das Wörterbuch aufgenommen zu werden. Es<br />

werden also nur Begriffe übernommen, welche mehrfach in den Texten vorkommen.<br />

Über die Wahl eines Users können Formulare auch nur für einzelne User analysiert werden. Damit<br />

lässt sich z.B. die Qualität der Handschrift von einzelnen Usern überprüfen.<br />

Wenn Sie nur verifizierte Formulare analysieren, wird garantiert dass alle Begriffe korrekt übernommen<br />

werden.<br />

Wenn Sie Zahlen nicht berücksichtigen wollen, können Sie diese Option anwählen.<br />

Wenn Sie das vorhandene Lexikon berücksichtigen, werden die bereits definierten Begriffe ebenfalls<br />

übernommen. Damit haben Sie die komplette Lexikondefinition zur Bearbeitung zur Verfügung.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 39<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 40<br />

Beispiel einer XML Datei nach Schrifterkennung<br />

Über diese Datei können die aus der Schrifterkennung (Beispiel CT-PEN Notizblock freestyle)<br />

resultierenden Daten in ein IT System übernommen werden. Es sind jedoch bliebe<br />

anderer Formate auf Anfrage möglich.<br />

<br />

<br />

<br />

Betreffeld<br />

Firmenfeld<br />

Notiztext<br />

true<br />

false<br />

false<br />

false<br />

false<br />

<br />

<br />

RR,HK,r.reinthaler@ct-<strong>pen</strong>.<strong>com</strong><br />

<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 41<br />

Scripting<br />

Variablen im PDF markieren aMark[1,2,3]<br />

1 XML Variable<br />

2 #=Rahmen um Feld Beispiel:<br />

aadd(aMark,{"summe","#","1,0,0"})<br />

Andernfalls Text bzw. Variable Beispiel:<br />

aadd(aMark,{"summe",ntrim(nSum,2)})<br />

3 Farbe: rot, grün, blau Anteil von 0 bis 1<br />

Summe eines Variablenbereiches berechnen getxmlsum(cVar,cXML,nLen)<br />

cVar XML Variable,z.B. wenn von preis_01 bis preis_12, dann „preis_“<br />

cXML XML Datei, default aktuelles Formular<br />

nLen Länge der Folgezahl, default 2 Stellen mit 0 links aufgefüllt, bei 0<br />

keine führenden 0<br />

Beispiel:<br />

aMark := {}<br />

cXML := mord->xml<br />

nXWert1 := val(xvar("boxed105",cXML))/100<br />

nXWert2 := val(xvar("boxed106",cXML))/100<br />

nXWert3 := val(xvar("boxed107",cXML))/100<br />

nXSum := val(xvar("boxed108",cXML))/100 // manuell eingetragenes Feld für Summe<br />

nSum := nXWert1+nXWert2+nXWert3 // berechneter Wert für Summe<br />

cXML := put_xmlvar(cXML,"boxed105",ntrim(nXWert1,2)) // Wert durch 100 dividiert speichern<br />

cXML := put_xmlvar(cXML,"boxed106",ntrim(nXWert2,2)) // wegen Nachkommastellen im Feld<br />

cXML := put_xmlvar(cXML,"boxed107",ntrim(nXWert3,2))<br />

if nXSum = 0 // wenn manuell keine Summe eingetragen wurde, vom System eintragen<br />

cXML := put_xmlvar(cXML,"boxed108",ntrim(nSum,2)) // berechneter Wert eintragen<br />

aadd(aMark,{"boxed108",ntrim(nSum,2)}) // Wert rot in PDF eintragen<br />

if mord->(rec_lock())<br />

mord->xml := cXML // Summe korrigiert // XML wieder speichern<br />

else<br />

// "Fehler")<br />

endif<br />

else<br />

if ntrim(nXSum,2) # ntrim(nSum,2) // wenn manuell eingegebene Summe falsch<br />

aadd(aMark,{"boxed108","#","1,0,0"}) // Feld mit rotem Rahmen markieren<br />

endif<br />

endif<br />

cstat("PDFCORRECT",aMark) // Markierungsarray setzen für weitere Verarbeitung<br />

Beispiel Preisfelder in einem Verkaufsformular<br />

aMark := {}<br />

cXML := mord->xml<br />

nSum := getxmlsum("preis_") // Summe aller Preisfelder<br />

nMSum := val(xvar("SummeNetto")) // manuell eingetragene Summe<br />

if nMSum = 0<br />

if nSum > 0// wenn leer, dann nachtragen<br />

cXML := put_xmlvar(cXML,"SummeNetto",ntrim(nSum,2)) // Berechneter Wert<br />

aadd(aMark,{"SummeNetto",ntrim(nSum,2)})<br />

if mord->(rec_lock())<br />

mord->xml := cXML // Summe korrigiert<br />

else<br />

//wmeld("Fehler")<br />

endif<br />

endif<br />

else<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 42<br />

if round(nMSum,2) # round(nSum,2)<br />

aadd(aMark,{"SummeNetto","#","1,0,0"}) // markieren als falsch<br />

endif<br />

endif<br />

cstat("PDFCORRECT",aMark)<br />

Basisfunktionen für die XBase Scriptsprache (Clipper) finden Sie unter:<br />

http://www.itlnet.net/programming/program/Reference/c53g01c/menu.html<br />

Es wir jedoch die Programmiersprache XBase++ verwendet, welche wesentlich mehr Funktionen<br />

und Klassen zur Verfügung stellt.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 43<br />

Auszug aus der XBase++ Doku für die Transformierung von Zeichenketten (Picture)<br />

Syntax<br />

Transform( , ) --> cFormattedString<br />

Parameters<br />

<br />

is an expression whose value can be of data type "character", "numeric", "logical"<br />

or "date".<br />

<br />

is a character string containing the specification of how the value of <br />

is formatted. can contain a formatting mask and/or a PICTURE function.<br />

Return<br />

The return value of Transform() is a character string containing the value formatted<br />

according to the specification given in .<br />

Description<br />

The conversion function Transform() accepts a value, transforms it to a character string,<br />

formats this character string according to the specification in , and returns the<br />

formatted character string. Transform() processes values of data type "character", "numeric",<br />

"logical" and "date". It is a versatile function which is often used in formatting<br />

data for output on the screen or to the printer.<br />

PICTURE function<br />

The characters for a PICTURE function must appear at the start of the character string<br />

and must be prefaced with the character @ (Chr(64)). After the character @, one<br />

or more of the characters which define specific formatting rules can be included. The valid<br />

characters are listed in the following table. Each stands for a specific formatting rule:<br />

Characters for the PICTURE function<br />

Function Data type formatting<br />

B N Displays number left justified<br />

C N Displays CR (Credit) behind positive numbers<br />

D C Displays character strings in the SET DATE<br />

format<br />

L N Fills numeric values from the left with the<br />

character <br />

R C Includes unknown formatting characters in the<br />

display<br />

X N Displays DB (Debit) behind negative numbers<br />

Z N When the value is zero, only blank places are<br />

displayed<br />

( N Displays negative numbers in parentheses<br />

with leading blank places<br />

) N Displays negative numbers in parentheses<br />

without leading blank places<br />

$ N Places country-specific currency characters<br />

in front of a number<br />

! C Transforms alphabetical characters to upper case<br />

Note: Characters for the PICTURE function are case-sensitive.<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 44<br />

Characters for a PICTURE mask can follow the characters for the PICTURE function. When a<br />

mask is also specified, the PICTURE function and mask must be separated from one another by<br />

a single blank space.<br />

PICTURE mask<br />

A PICTURE mask contains formatting rules for each individual character of the transformed<br />

value. As with the PICTURE function, formatting characters are specified which define a specific<br />

formatting rule. Each character in the PICTURE mask corresponds to a character in the<br />

return character string. The possible formatting characters for a PICTURE mask are listed in<br />

the following table:<br />

Characters for the PICTURE mask<br />

Character Formatting rule<br />

A,N,X,9,# Displays characters for each data type<br />

L Displays logical values as "T" or "F"<br />

Y *) Displays logical values as "Y", "J" or "N"<br />

! Transforms alphabetical characters to upper case<br />

$ Replaces leading blank spaces in numbers<br />

with a dollar sign ($)<br />

* Replaces leading blank spaces in numbers<br />

with a star (*)<br />

. Marks position for a decimal point<br />

, Marks position for a <strong>com</strong>ma<br />

*) Display is country-specific, see SetLocale()<br />

Any characters in the PICTURE mask which are not listed in this table are copied into the<br />

return character string. When the PICTURE function @R is used, these characters are inserted<br />

into the return character string, otherwise they replace characters in the return character<br />

string.<br />

Country-specific formatting of numbers<br />

When transforming numbers to character strings, Transform() uses the number format set by<br />

the system configuration which results in a decimal point or <strong>com</strong>ma after each setting. When<br />

converting a numeric to a string and a decimal point is desired instead of a decimal <strong>com</strong>ma<br />

regardless of the system configuration, the numeric value should be transformed by the function<br />

Str() instead of Transform(). Example:<br />

nNumber := 12.345<br />

cStringA := Transform( nNumber, "@N" ) // may result in<br />

// "12,345" or "12.345"<br />

cStringB := Str( nNumber, 6, 3 ) // is always "12.345"<br />

nNumberA := Val( cStringA ) * 10 // may result in<br />

// 120 or 123.45<br />

nNumberB := Val( cStringB ) * 10 // is always 123.45<br />

When using Transform() to perform conversions and the <strong>com</strong>ma is defined as the delimiter for<br />

decimal places in the system settings, a <strong>com</strong>ma is inserted into the formatted result string.<br />

Changing the character string back to a numeric value using the function Val() may then lead<br />

to erroneous results since Val() only works with a decimal point and not with a decimal<br />

<strong>com</strong>ma.<br />

Example<br />

// Transform()<br />

// The example demonstrates how various values can be<br />

// formatted by Transform().<br />

PROCEDURE Main<br />

LOCAL xValue<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m


CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 45<br />

xValue := "Xbase++"<br />

** result<br />

? Transform( xValue, "@!") // XBASE++<br />

? Transform( xValue, "@R X-X-X-X-X-X-X") // X-b-a-s-e-+-+<br />

xValue := -1234.56<br />

? Transform( xValue, "99,999.99") // -1,234.56<br />

? Transform( xValue, "*********.**") // ****-1234.56<br />

? Transform( xValue, "$$$$$$$$$.$$") // $$$$-1234.56<br />

? Transform( xValue, "@(" ) // ( 1234.56)<br />

? Transform( xValue, "@$ 999,999.99" ) // $ -1,234.56<br />

? Transform( xValue, "@Lx 999,999.99") // xx-1,234.56<br />

xValue := 123456<br />

? Transform( xValue, "@C" ) // 123456 CR<br />

? Transform( xValue, "99 - 99 - 99") // 12 - 34 - 56<br />

xValue := .T.<br />

? Transform( xValue, "L" ) // T<br />

? Transform( xValue, "Y" ) // Y<br />

RETURN<br />

© b y R u d o l f R e i n t h a l e r S o f t w a r e e n t w i c k l u n g • A l t e r b a c h s t r a s s e 6 • A - 5 0 2 0 S a l z b u r g<br />

w w w . c t - p e n . c o m • K O N T A K T : r . r e i n t h a l e r @ c t - p e n . c o m

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!