Anzeige:
Ergebnis 1 bis 2 von 2

Thema: eforms: Textfeld mit festgelegter Anzahl an Zeichen

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.03.2010
    Beiträge
    30

    eforms: Textfeld mit festgelegter Anzahl an Zeichen

    Hallo,

    ich versuche gerade ein Formular mit dem Paket eforms zu erstellen. Nun möchte ich Textfelder, in die Zahlen mit einer gewissen Anzahl an Stellen eingetragen werden. Das kann ich mit dem Parameter \MaxLen festlegen. Nun möchte ich dem Benutzer dies durch eine gestrichelte Linie auch anzeigen. Beispielsweise ein Feld _ _ _ _ _ für eine Zahl mit 5 Stellen. 5 einzelne Textboxen halte ich hier für ungeeignet, da der Benutzer dann 5 mal mit Tab das Feld wechseln muss. Stattdessen hätte ich gerne eine Textbox eben mit 5 Unterstrichen. Alternativ: 5 Textboxen, sobald eine voll ist wechselt das aktive Feld zur nächsten Box.

    Hier der Code wie weit ich bisher gekommen bin:
    Code:
    \documentclass{article}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[pdftex]{eforms}
    \usepackage{calc}
    \usepackage{color}
    \newcounter{nameCount}
    \setcounter{nameCount}{0}
    \newcommand{\FieldFixedNrDigits}[1]{\textField[\S{U} \textSize{12}\MaxLen{#1}]{Feld \thenameCount}{{0.1in} * #1}{12bp} \addtocounter{nameCount}{1}}
    
    \begin{document}
     Testformular
    
     Nr1: \FieldFixedNrDigits{4}
     Nr2: \FieldFixedNrDigits{6}
     Nr3: \FieldFixedNrDigits{8}
    \end{document}
    Hat vielleicht jemand eine Idee wie ich das hinbekommen könnte?

    Viele Grüße
    Soldberg
    Geändert von Soldberg (27-12-2013 um 14:15 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    10.03.2010
    Beiträge
    30
    Falls diese Problemstellung irgendwann nochmal jemanden interessiert, unten ein Lösungsansatz, wenn auch kein besonders schöner.

    Zunächst versuche ich die Länge der Textbox zu berechnen als ein fester Wert plus weiteres Offset pro Zeichen das man eingeben kann. Das gefällt mir nicht sonderlich Die im \textfield angegebene Breite, bei mir "{0.1in} * #1", scheint aber nicht zu passen, genauso wenig war ich mit \widthof erfolgreich. Nachdem die Box schon gezeichnet wurde gehe ich mit hspace zurück an den Anfang der Box, um dann mit rule die Unterstriche zu zeichnen.

    Die Striche für die Zahlen sind länger als das Eingabefeld, sonst hat man aber denke ich zu wenig Platz falls man das Formular ausdrucken und von Hand ausfüllen will. Ob der Platz so reicht um es von Hand auszufüllen, muss ich noch testen.

    Code:
    \documentclass{article}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[pdftex]{eforms}
    \usepackage{calc}
    \usepackage{color}
    \usepackage{forloop}
    
    \newcounter{nameCount}
    \setcounter{nameCount}{0}
    \newcounter{iter}
    \newcounter{iterMax}
    \newlength\boxLength
    
    \newlength{\somelength}
    
    \newcommand{\FieldFixedNrDigits}[1]{\textField[\S{D} \BC{1 1 1} \textSize{12}\MaxLen{#1}]{Feld \thenameCount}{{0.1in} * #1}{12bp} \addtocounter{nameCount}{1}
    \setcounter{iterMax}{#1}
    \addtocounter{iterMax}{1}
    \setlength\boxLength{0.3in}
    \forloop{iter}{1}{\value{iter} < \theiterMax}%
    {%
    	\addtolength\boxLength{0.15in}
    }
    \hspace*{-\the\boxLength}
    \forloop{iter}{1}{\value{iter} < \theiterMax}%
    {%
    	\rule[-1.5mm]{0.08in}{1pt}
    }
    }
    
    \begin{document}
     Testformular
    
     Nr1: \FieldFixedNrDigits{4}
     Nr2: \FieldFixedNrDigits{6}
     Nr3: \FieldFixedNrDigits{8}
    
    \end{document}

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •