KURZBESCHREIBUNG VERIFIER - Ct-pen.com
KURZBESCHREIBUNG VERIFIER - Ct-pen.com
KURZBESCHREIBUNG VERIFIER - Ct-pen.com
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<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