Seite 1 von 1

Textfelder zusammenführen für Formular

Verfasst: Mi 14. Okt 2020, 09:14
von Ulf

Hallo, ich möchte für ein Formular den Textinhalt mehrerer TextField zusammenführen. Dabei mache ich vermutlich irgendwas mit dem value={this.getField... nicht richtig. Kann mir jemand einen Hinweis geben, wie das richtig aussehen muss?

Danke und Grüße!

Code: Alles auswählen

\documentclass[ngerman]{scrartcl}
\usepackage[utf8]{inputenc} 	
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[pdftex]{hyperref}

%%%%%
\begin{document}
\begin{Form}

\ChoiceMenu[combo]{Frage1}{Male,Female, Other}

\ChoiceMenu[radio, radiosymbol=\ding{96}, name=Frage2]{}{Option 1, Option 2, Option 3:} % Warum sieht das radiosymbol so komisch aus?

\TextField[name=Info1,width=3cm]{\mbox{Info 1:}}
\TextField[name=Info2,width=3cm]{\mbox{Info 2:}}

% Was ich will
% Textfeld: {value[Frage1]}-{value[Frage2]}-{value[Info 1]}-{value[Info2]}
% In rein Text: [Male-Option 1-Info 1-Info2]
\TextField[readonly=true,name=Zusammengesetzt,value={this.getField("Frage1")-this.getField("Frage2")-this.getField("Info1")-this.getField("Info2")}]{String} % das ist vermutlich falsch

\CheckBox[name=Frage2]{Eins?} % so ungefaehr sollten die radio buttons aussehen

\end{Form}
\end{document}

Re: Textfelder zusammenführen für Formular

Verfasst: Do 15. Okt 2020, 18:23
von Ulf

Hallo,
das scheint leider eine exotische Frage zu sein. Gibt es für diesen Anwendungsfall bessere Lösungen als ein LaTeX-pdf-Dokument?


Re: Textfelder zusammenführen für Formular

Verfasst: Fr 16. Okt 2020, 17:11
von u_fischer

du musst calculate nicht value verwenden, wenn du javascript einbauen willst.


Re: Textfelder zusammenführen für Formular

Verfasst: Mo 19. Okt 2020, 06:35
von Ulf
u_fischer hat geschrieben:
Fr 16. Okt 2020, 17:11

du musst calculate nicht value verwenden, wenn du javascript einbauen willst.

Danke für den Hinweis. Wie würde dann die entsprechende Code-Zeile aussehen?


\TextField[readonly=true,name=Zusammengesetzt,calculate={this.getField("Frage1")-this.getField("Frage2")-this.getField("Info1")-this.getField("Info2")}]{String}

Grüße.


Re: Textfelder zusammenführen für Formular

Verfasst: Di 20. Okt 2020, 06:48
von Ulf

Dank des Hinweises und mit ein Bisschen Suchen und Probieren bin ich auf folgende Lösung gekommen.

Code: Alles auswählen

\documentclass{article}
\usepackage{hyperref}

\begin{document}
\begin{Form}

\TextField[
maxlen=40,
align=2,
height=10pt,
width=45pt,
name=alpha
]{Alpha}

\bigskip
\TextField[
maxlen=40,
align=2,
height=10pt,
width=45pt,
name=beta
]{Beta}

\bigskip
\ChoiceMenu[
combo,
name=combo1
]{Frage 1}{Male\_,Female,Other}

\bigskip
\ChoiceMenu[
combo,
name=combo2
]{Frage 2}{Eins,Zwei,Drei}

\bigskip
\TextField[
  maxlen=40,
  calculate={%
    var f_alpha = this.getField("alpha");
    var f_beta = this.getField("beta");
    event.value = f_alpha.value + f_beta.value;
  },
   align=2,
   height=10pt,
   width=45pt,
   name=gamma1,
   readonly=true
   ]{Gamma 1}


\bigskip
\TextField[
  maxlen=80,
  calculate={
    var f_alpha = this.getField("combo1");
    var f_beta = this.getField("combo2");
    event.value = f_alpha.value + f_beta.value ;
  },
   align=2,
   height=10pt,
   width=45pt,
   name=gamma2,
   readonly=true
   ]{Gamma 2}


\bigskip
\TextField[
  maxlen=400,
  calculate={
    var f_gamma1 = this.getField("gamma1");
    var f_gamma2 = this.getField("gamma2");
    event.value = f_gamma1.value + f_gamma2.value ;
  },
   align=2,
   height=10pt,
   width=100pt,
   name=gamma3,
   readonly=true
   ]{Gamma 3}


\end{Form}
\end{document}

Allerdings habe ich noch das Problem, dass das pdf nur im Adobe Reader funktioniert, nicht in Apples Vorschau. Hat da jemand eine Idee, woran das liegen kann?


Re: Textfelder zusammenführen für Formular

Verfasst: Mi 21. Okt 2020, 07:51
von Ulf

Manche Formularfunktionen nutzen Java Script und laufen daher nicht in Mac Vorschau.