Seite 1 von 1

QuickPDF Eingaebfelder formatieren

Verfasst: Do, 25. Aug 2016 10:38
von Manfred
Hat jemand hier schonmal mit QuickPDF Eingabefelder formatiert?
Also z.B. PICTURE Masken für Zahleneingaben? (Nachkommastellen, Punkt/Komma bei der Eingabe usw.)

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Do, 25. Aug 2016 11:00
von brandelh
Klaus hatte vor kurzem nach den Eingabefeldern gefragt, aber numerische Eingaben wie bei einem GET Feld formatieren ... das habe ich noch nicht gesehen.

Aber es gibt ja die Hilfedatei ;-) ...

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Do, 25. Aug 2016 11:21
von brandelh
Diese Funktionen könnten damit zu tun haben ...

SetFormFieldFlags :arrow: Laut Hilfe PDF Spezifikationen nachsehen welche Flags es gibt, eventuell eine für numerische Zeicheneingabe die hoffentlich besser ist als NUMERIC bei SLE (kein , . )
SetFormFieldTextFlags :arrow: Texteinstellungen wie: Multiline, Password, FileSelect, DoNotSpellCheck, DoNotScroll * kein numerischer Eingabetyp *
SetFormFieldAlignment :arrow: Ausrichtung festlegen

... WENN keine numerische Maske möglich sein sollte - am Besten im QuickPDF Forum danach fragen - bleibt noch:

Freie Eingabe, welche mit JavaScript bearbeitet wird, entweder nur nach dem Verlassen oder eventuell bei jedem Tastendruck ?

FormFieldJavaScriptAction

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Do, 25. Aug 2016 11:55
von brandelh
Ich habe mal im QuickPDF Forum nachgefragt ...

:arrow: http://www.quickpdf.org/forum/topic3377 ... html#13412

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Do, 25. Aug 2016 11:57
von Manfred
Hi Hubert,
Hilfedatei, super. Die ist so umfangreich und wenn man keine Ahnung hat, wonach man überhaupt suchen muß....... :roll:

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Do, 25. Aug 2016 12:44
von brandelh
Wenn ich es schon mal gemacht hätte, hätte ich Quellcode veröffentlicht ;-)

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Do, 25. Aug 2016 12:54
von Manfred
nagut, Tooltips habe ich jetzt schon gefunden. Aber auch nur durch Zufall. Ist ja klar, SetFormFieldDescription kommt man ja sofort drauf. :banghead:

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Fr, 26. Aug 2016 12:32
von brandelh
Im QuickPDF Forum habe ich aus 2013 ein Eintrag gefunden, der erklärt, dass Acrobat für numerische Felder einen custom java script code nutzt.
QuickPDF selbst hat keinen eigenen Code um das zu händeln, man müsste also so einen Java Script code einbinden und dem Feld zuordnen, wie das geht weiß ich nicht.
Ich hab mal gefragt ob man ein PDF das so ein Feld in Acrobat eingefügt bekam, mit QuickPDF diesen auslesen kann.

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Fr, 26. Aug 2016 12:36
von Manfred
Danke Hubert,
aber ich meine gelesen zu haben, dass man sowas wieder in den Readern deaktivieren kann/könnte (sicherlich der Sicherheit wegen) und damit würde das dann ad absurdum geführt werden, wenn der User es dann trotzdem nicht kann. Mal sehen, was mir dazu einfällt.

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Fr, 26. Aug 2016 13:10
von brandelh
hier ist eine PDF mit einer numerischen Eingabe (erstellt mit Adobe Acrobat 9 PRO) zum testen.

Wenn ich mal wieder Zeit und Lust habe kann ich mal prüfen ob ich das in meiner Klasse direkt einbauen kann.

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Fr, 26. Aug 2016 13:47
von Manfred
es wäre ja nur die Frage, welche Funktion dafür benutzt werden müßte.

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Fr, 26. Aug 2016 15:53
von brandelh
nun die Java Script Funktionen ! Ich nutze das ja nicht, daher kenne ich den Namen nicht.

im Forum von QuickPdf schrieb einer, dass wenn man mit Foxit die Felder von Acrobat PDFs ausfüllt, löscht der Adobe Reader später die Feldeigenschaft.
Adobe mag keine fremden Sachen ...

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Fr, 26. Aug 2016 16:31
von Manfred
öhm HUbert, ist der Textanfang so gewollt? Oder fehlt da was?

Re: QuickPDF Eingaebfelder formatieren

Verfasst: Mo, 29. Aug 2016 6:58
von brandelh
wieso steht doch alles drinn, nachdem ich es verbessert habe ;-)

Insgesamt scheint es wohl nicht trivial.
Aber mal was anderes, die Anwender sollte man ja nicht für allzu blöd halten.
Wenn man das Feld rechtsbündig macht und die Zahl ordentlich eingegeben wurde (ohne Tausender-Punkt), muss man ja nur darauf achten, dass "," statt "." auch als Zahl gelesen wird.
Rechnen sollte man auch mit "." Tausender-Punkten, wenn die Anwendung nur in Deutschland läuft ist das ja eindeutig, ansonsten ....

1.222,23 => eindeutig, deutsch 1222.23
1.222 => mehrdeutig
1222,23 => eindeutig, deutsch 1222.23
22,22 => eindeutig, deutsch 22.22
22.22 => eindeutig, numerisch 22.22

Ich habe eine HB_VAL() Funktion die damit (für meine Zwecke) klar kommt:

Code: Alles auswählen

*-----------------------------------------------------------------------------
function HB_VAL(cNUM)
   local nWert, nAnzKomma, nAnzPunkt
   nAnzKomma  := CharCount(cNUM,",")
   nAnzPunkt  := CharCount(cNUM,".")
   do case
      case empty(nAnzKomma) .and. empty(nAnzPunkt)
           * nichts „ndern
      case empty(nAnzKomma) .and. nAnzPunkt=1
           * nichts „ndern
      case empty(nAnzPunkt) .and. nAnzKomma=1
           cNUM := strtran(cNUM,",",".")
      case nAnzKomma=1 .and. nAnzPunkt > 1
           cNUM := strtran(cNUM,".","")    // Tausender Trennpunkte entfernen
           cNUM := strtran(cNUM,",",".")   // Komma auf Punkt umsetzten
      case nAnzPunkt=1 .and. nAnzKomma > 1
           cNUM := strtran(cNUM,",","")    // Tausender TrennKOMMA entfernen
      case nAnzKomma=1 .and. nAnzPunkt = 1
           * was ist jetzt welches ?
           if at(".",cNUM) > at(",",cNUM)
              cNUM := strtran(cNUM,",","")    // Tausender TrennKOMMA entfernen
           else
              cNUM := strtran(cNUM,".","")    // Tausender Trennpunkte entfernen
              cNUM := strtran(cNUM,",",".")   // Komma auf Punkt umsetzten
           endif
   endcase

   nWert := VAL(cNUM)

return nWert
*-----------------------------------------------------------------------------
function CharCount(cText,cChar)
   local nAnzahl
   if len(cChar) > 0
      nAnzahl := len(cText)-len(strtran(cText,cChar,""))
   else
      nAnzahl := 0
   endif
return nAnzahl