Help

Die Möglichkeiten und Tücken von Formularen
Antworten
nikki1982
Beiträge: 13
Registriert: 08.12.2020, 09:03

Help

Beitrag von nikki1982 » 24.01.2021, 13:40

Hallo zusammen,


leider bin ich in kleiner newbi,

Ich bin dabei ein Formular zu erstellen, und nun probiere ich schon die ganze Zeit an einer Funktion herum.
Leider erfolglos.
Ich möchte das wenn in Spalte1 ein bestimmte Wörter wie Material oder Arbeitszeit eingetippt wird dann eine Aufforderung kommt bzw. eine messagebox ausgeführt wird.

Ich weiß leider nicht wie ich ansetzten soll

Würdet ihr das so lösen`?

if (event.value == "Material") {
app.alert("Bitte weitere Angaben machen!");
}


über einen Tipp wäre ich sehr dankbar!

Liebe Grüße

nikki1982
Beiträge: 13
Registriert: 08.12.2020, 09:03

Re: Help

Beitrag von nikki1982 » 25.01.2021, 21:04

Guten Abend,

kann mir keiner einen Rat geben?

Gruß

Benutzeravatar
Menni
Beiträge: 65
Registriert: 18.12.2019, 14:47

Re: Help

Beitrag von Menni » 04.02.2021, 11:32

Hi nikki,

du könntest es z.B. mit "indexOf" realisieren.
Kannst ja mal folgenden Code, zum Test an einem Textfeld, ausprobieren:
(Textfeld Eigenschaften -> Validierung -> Benutzerdefiniertes Validierungsskript ausführen)

Code: Alles auswählen

var specWords = ["Arbeitszeit", "Material"];

searchWords(specWords[0], specWords[1])
function searchWords(w1, w2){
	var tf = event.value.toLowerCase();
	
	w1 = w1.toLowerCase();
	w2 = w2.toLowerCase();
	
	w1 = tf.indexOf(w1);
	w2 = tf.indexOf(w2);

	if((w1 !== -1) || (w2 !== -1)){
		app.alert("Bitte weitere Angaben machen!", 3);
	}
}
Gruß
Menni

nikki1982
Beiträge: 13
Registriert: 08.12.2020, 09:03

Re: Help

Beitrag von nikki1982 » 09.02.2021, 06:57

Hey guten Morgen und vielen Dank!

Es Funktioniert, nur leider habe ich nun das Problem das bei allen anderen Pflicht Feldern nun die Meldung erscheint mit "Bitte weitere Angaben machen"!

Ich hatte es zuvor so versucht-

var a = this.getField("Bezeichnung1").value;

if (a=="Material"){
app.alert("Bitte weitere Angaben machen!");
}
else
if(a=="Arbeitszeit"){
app.alert("Bitte weitere Angaben machen!");
}

Es Funktioniert auch aber, da bekomme ich auch bei jedem Pflichtfeld die Meldung "Bitte weitere Angaben machen".

Kann ich das noch konkretisieren ?

Gruß Nikki

nikki1982
Beiträge: 13
Registriert: 08.12.2020, 09:03

Re: Help

Beitrag von nikki1982 » 09.02.2021, 07:11

Ah Menni,

es hat sich geklärt, ich hatte es nicht bei Validierungsskript sondern bei Berechnungsskript hinterlegt.
Und ich habe es nun als Dropdown gemacht da es für den User einfacher ist. Und somit ist dann auch die Case sens egal, oder?
Leider bekomme ich nun aber auch bei anderen Begriffen die ich per freie Eingabe in das Feld schreibe eine Aufforderung um weitere Angaben zu machen.
Ich habe es auch um einen Begriff erweitert -
nun sieht das so aus

var specWords = ["Material", "Arbeitszeit", "ABC"];

searchWords(specWords[0], specWords[1])
function searchWords(w1, w2, w3){
var tf = event.value.toLowerCase();

w1 = w1.toLowerCase();
w2 = w2.toLowerCase();

w1 = tf.indexOf(w1);
w2 = tf.indexOf(w2);

if((w1 !== -1) || (w2 !== -1) || (w3 !== -1)){
app.alert("Bitte weitere Angaben machen!", 3);
}
}

Warum bekomme ich denn nun bei allem Begriffen eine Aufforderung?

Danke vorab und Gruß

Gruß Nikki :)

Benutzeravatar
Menni
Beiträge: 65
Registriert: 18.12.2019, 14:47

Re: Help

Beitrag von Menni » 09.02.2021, 08:05

Und ich habe es nun als Dropdown gemacht da es für den User einfacher ist. Und somit ist dann auch die Case sens egal, oder?
Leider bekomme ich nun aber auch bei anderen Begriffen eine Aufforderung um weitere Angaben zu machen.
Also mit dem von mir gezeigten Code, bezogen auf ein Textfeld passiert das nicht.
Wenn du jetzt einen anderen Weg über ein Dropdown genommen hast, kann man es natürlich auch wieder ganz anders angehen. Ist anhand deiner kurzen Erwähnung aber nicht möglich. Müsste man mal sehen oder du beschreibst es genauer.
Was hat es denn eigentlich mit den Schaltflächen auf sich die beim betätigen kurz Grün Leuchten?
Ich habe da ein einfaches Skript hinterlegt zum versenden der Mail.
Auch dazu kann man nur schwer etwas sagen, wenn man sich das Verhalten nicht ansehen kann und weder dein hinterlegtest Skript, noch eventuelle Einstellungen kennt.

nikki1982
Beiträge: 13
Registriert: 08.12.2020, 09:03

Re: Help

Beitrag von nikki1982 » 12.02.2021, 09:47

Hey Menni,

sorry das ich jetzt erst antworte. Und danke erstmal das du dir die Zeit genommen hast!#

Egal was ich nun mit dem Feld anstelle es kommt immer wieder die Aufforderung!

Ich möchte aber gerne das die Aufforderung nur bei den Schlagwörtern " Material" "Arbeitszeit" oder "XYZ" erscheint, ggf noch weitere Wörter. Ich habe das Skript selbstständig um einen Begriff erweitert. Erst seitdem bekomme ich die Aufforderung. Wo liegt denn mein Fehler?

Selbst wenn ich einen anderen Begriff eingebe erscheint die Aufforderung.
Könntest du mir die Funktionen dahinter ein wenig genauer erklären?

Anbei mal der Test

Danke vorab
Grüße Nikki
TEST.pdf
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
Menni
Beiträge: 65
Registriert: 18.12.2019, 14:47

Re: Help

Beitrag von Menni » 15.02.2021, 10:38

Weil das Skript nicht für den Abgleich/Werteänderung eines Dropdown-Feldes gedacht war, sondern für die Suche nach einem "Textschnipsel" innerhalb der Freitexteingabe, z.B. eines ganzen Satzes innerhalb eines Textfeldes. Das Skript wirft die Meldung aus, wenn eine der Variablen (w1-3) NICHT dem Wert -1 entspricht. Da du ein Dropdown benutzt hast, funktioniert das wie gesagt in der Form nicht, da dieses Feld niemals diesen Wert annehmen wird und darum kommt die Meldung bei jeder Auswahl hoch.

Ein einfaches Beispielskript für das Dropdownfeld wäre das hier:

Code: Alles auswählen

if(event.value == "Material" || event.value == "Arbeitszeit"){
	app.alert("Bitte weitere Angaben machen!", 3);
}
Jetzt kommt die Meldung nur hoch, wenn du im Dropdownfeld in deinem Test-PDF "Material" oder "Arbeitszeit" auswählst. Nicht aber wenn "Auswahl" oder "XYZ" ausgewählt ist.

nikki1982
Beiträge: 13
Registriert: 08.12.2020, 09:03

Re: Help

Beitrag von nikki1982 » 18.02.2021, 21:07

Hey Menni,
vielen Dank dir.
Hat super geklappt.

Könntest du mir auch mit der Überprüfung der Pflichtfelder aus beim Speichervorgang nen tipp geben! Es gibt 4 Pflichtfelder die vor dem Speichervorgang geprüft werden sollen. Ich habe allerlei Skripte ausprobiert - leider bekomme ich es nicht hin.

Und noch eine Frage habe ich - Wenn ich das Dokument digital signiere kann ich es vollständig abschließen. So das es für niemanden weiter zu bearbeiten ist.
Nun wenn ich das ganze aber Mobil verwenden möchte - dann klappt das leider nicht mehr. Ich habe es mit dem Acrobat Reader für Android probiert.
Wichtig wäre hierbei dass das Dokument abgeschlossen ist und im nachhinein nichts mehr daran verändert werden kann.
Hast du hierzu einen Rat? Bzw kennst du dich damit aus?

Danke Gruß Nikki

Benutzeravatar
Menni
Beiträge: 65
Registriert: 18.12.2019, 14:47

Re: Help

Beitrag von Menni » 19.02.2021, 10:09

Nur kurz vorweg: das Speichern über den Menüeintrag lässt sich niemals unterbinden. Speichern ist immer möglich.
Könntest du mir auch mit der Überprüfung der Pflichtfelder aus beim Speichervorgang nen tipp geben! Es gibt 4 Pflichtfelder die vor dem Speichervorgang geprüft werden sollen. Ich habe allerlei Skripte ausprobiert - leider bekomme ich es nicht hin.
Zum Besipiel so:

Dokument-Aktionen -> Speichert Dokument -> Bearbeiten

Code: Alles auswählen

fieldsFilled();
function fieldsFilled(){
	var fRempty = "";
	
	for(var i = 0; i < this.numFields; i++){
		var fName = this.getNthFieldName(i);
		var f = this.getField(fName);
		
		if(f.type != "button" && f.required == true && f.value == ""){
			fRempty += f.name + "\n";
		}
	}
	
	if(fRempty != ""){
		app.alert(unescape("Bitte alle Pflichtfelder ausf%FCllen!\n\n" + fRempty), 3);
	}
}
Wenn ich das Dokument digital signiere kann ich es vollständig abschließen.
Wie machst du das denn?

Antworten