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!
\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.
\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.