CT-PEN Technische Dokumentation FormVerifier © 2012 Rudolf Reinthaler Seite 40 Beispiel einer XML Datei nach Schrifterkennung Über diese Datei können die aus der Schrifterkennung (Beispiel CT-PEN Notizblock freestyle) resultierenden Daten in ein IT System übernommen werden. Es sind jedoch bliebe anderer Formate auf Anfrage möglich. Betreffeld Firmenfeld Notiztext true false false false false RR,HK,r.reinthaler@ct-<strong>pen</strong>.<strong>com</strong> © 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 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 Scripting Variablen im PDF markieren aMark[1,2,3] 1 XML Variable 2 #=Rahmen um Feld Beispiel: aadd(aMark,{"summe","#","1,0,0"}) Andernfalls Text bzw. Variable Beispiel: aadd(aMark,{"summe",ntrim(nSum,2)}) 3 Farbe: rot, grün, blau Anteil von 0 bis 1 Summe eines Variablenbereiches berechnen getxmlsum(cVar,cXML,nLen) cVar XML Variable,z.B. wenn von preis_01 bis preis_12, dann „preis_“ cXML XML Datei, default aktuelles Formular nLen Länge der Folgezahl, default 2 Stellen mit 0 links aufgefüllt, bei 0 keine führenden 0 Beispiel: aMark := {} cXML := mord->xml nXWert1 := val(xvar("boxed105",cXML))/100 nXWert2 := val(xvar("boxed106",cXML))/100 nXWert3 := val(xvar("boxed107",cXML))/100 nXSum := val(xvar("boxed108",cXML))/100 // manuell eingetragenes Feld für Summe nSum := nXWert1+nXWert2+nXWert3 // berechneter Wert für Summe cXML := put_xmlvar(cXML,"boxed105",ntrim(nXWert1,2)) // Wert durch 100 dividiert speichern cXML := put_xmlvar(cXML,"boxed106",ntrim(nXWert2,2)) // wegen Nachkommastellen im Feld cXML := put_xmlvar(cXML,"boxed107",ntrim(nXWert3,2)) if nXSum = 0 // wenn manuell keine Summe eingetragen wurde, vom System eintragen cXML := put_xmlvar(cXML,"boxed108",ntrim(nSum,2)) // berechneter Wert eintragen aadd(aMark,{"boxed108",ntrim(nSum,2)}) // Wert rot in PDF eintragen if mord->(rec_lock()) mord->xml := cXML // Summe korrigiert // XML wieder speichern else // "Fehler") endif else if ntrim(nXSum,2) # ntrim(nSum,2) // wenn manuell eingegebene Summe falsch aadd(aMark,{"boxed108","#","1,0,0"}) // Feld mit rotem Rahmen markieren endif endif cstat("PDFCORRECT",aMark) // Markierungsarray setzen für weitere Verarbeitung Beispiel Preisfelder in einem Verkaufsformular aMark := {} cXML := mord->xml nSum := getxmlsum("preis_") // Summe aller Preisfelder nMSum := val(xvar("SummeNetto")) // manuell eingetragene Summe if nMSum = 0 if nSum > 0// wenn leer, dann nachtragen cXML := put_xmlvar(cXML,"SummeNetto",ntrim(nSum,2)) // Berechneter Wert aadd(aMark,{"SummeNetto",ntrim(nSum,2)}) if mord->(rec_lock()) mord->xml := cXML // Summe korrigiert else //wmeld("Fehler") endif endif else © 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 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