Wenn ... dann ...

Die Möglichkeiten und Tücken von Formularen
marhenke2
Beiträge: 9
Registriert: 06.09.2007, 13:29

Wenn ... dann ...

Beitrag von marhenke2 » 14.09.2007, 15:37

Hallo zusammen,

vielleicht kann mir jemand helfen.
Ich bräuchte ein Script für folgende Aufgabe:

Wenn Feld A = 8 bis13:59 Stunden dann schreibe in das Feld B den Wert 6, wenn aber Feld A = 14 bis 23:59 Stunden dann schreibe in das Feld B den Wert 12, wenn aber Feld A = 24 Stunden dann schreibe in das Feld B den Wert 24.

Es soll also geprüft werden welcher Wert in das Feld A geschrieben wird und je nach dem was eingetragen wird, soll ein bestimmter Wert an das Feld B übergeben werden.

Freue mich auf Antworten ;o)

Viele Grüße
Mirko

Mike
Beiträge: 6
Registriert: 21.08.2007, 15:51

Wenn ... dann ...

Beitrag von Mike » 18.09.2007, 11:01

Hi,

grundsätzlich, wenn das Feld A ein Datums-/Zeitfeld mit Einstellung Zeit ist (Formatierung HH:MM) und B ein Numerisches Feld, sollte es so funktionieren
[font=courier new] ----- Formular1.#subform[0].B::calculate - (JavaScript, client) ---------------------[/font]

[font=courier new]var tmpTime = new Date();
tmpTime.setTime(Date.parse("Tue, 1 Jan 2000 " + A.formattedValue + ":00"));
var tmpHours = tmpTime.getHours();[/font]

[font=courier new]if (tmpHours >= 8)
{
 if (tmpHours < 14)
  6
 else if (tmpHours < 24)
  12
 else if (tmpHours == 24)
  24;
}
else 0;[/font]
Allerdings gibt es noch das Problem, dass es die Zeit 24:00 nicht gibt, sondern statt dessen 00:00. Weiterhin war nicht definiert, welcher Wert außerhalb der definierten Zeiten in B eingetragen werden soll; dafür habe ich dann "0" genommen.

Viele Grüße

Michael Rettkowitz
http://www.formular-praxis.de

marhenke2
Beiträge: 9
Registriert: 06.09.2007, 13:29

Wenn ... dann ...

Beitrag von marhenke2 » 01.10.2007, 11:44

Hallo Michael,

vielen Dank für Ihr Script. War 2 Wochen nicht da. Deshalb erst jetzt Antwort von mir. Werde das Script heute einbauen und mal durchtesten und mich dann melden.

Viele Grüße
Mirko Marhenke

marhenke2
Beiträge: 9
Registriert: 06.09.2007, 13:29

Wenn ... dann ...

Beitrag von marhenke2 » 05.10.2007, 09:20

Jetzt habe ich ein kleines Verständnisproblem. Bei welchem Feld hinterlege ich das Script? Bei A oder bei B?

Freue mich auf Antwort.

Mike
Beiträge: 6
Registriert: 21.08.2007, 15:51

Wenn ... dann ...

Beitrag von Mike » 05.10.2007, 11:46

Bei B und zwar beim Ereignis 'calculate' (siehe Kopfzeile)
 [font=Courier New]----- Formular1.#subform[0].B::calculate - (JavaScript, client) --------[/font]
 

Viele Grüße

Michael

marhenke2
Beiträge: 9
Registriert: 06.09.2007, 13:29

Wenn ... dann ...

Beitrag von marhenke2 » 08.10.2007, 07:59

Irgendwie bekomme ich es nicht hin :-(

Hier liegt mal das Beispiel zum Download bereit:
http://www.mediadesign-group.de/calculate.pdf

Mike, wären Sie so nett und schauen da mal rein?
Wäre echt klasse. Freue mich auf Antwort von Ihnen.

Viele Grüße
Mirko

Mike
Beiträge: 6
Registriert: 21.08.2007, 15:51

Wenn ... dann ...

Beitrag von Mike » 08.10.2007, 09:41

Sorry, das war mein Fehler. Ich dachte wohl irgendwie, ich wäre im LifeCycle Designer Forum.

Für Acrobat Forms müsste das Skript, das beim "B"-Feld unter "Berechnung/ Benutzerdef. Berechnungsskript" erfasst werden müsste, so lauten.
[font=courier new]var tmpTime = new Date();
tmpTime.setTime(Date.parse("Tue, 1 Jan 2000 " + this.getField("A").valueAsString + ":00"));
var tmpHours = tmpTime.getHours();[/font]
[font=courier new]if (tmpHours >= 8)
{
 if (tmpHours < 14)
  this.getField("B").value = 6
 else if (tmpHours < 24)
  this.getField("B").value = 12
 else if (tmpHours == 24)
  this.getField("B").value = 24;
}
else this.getField("B").value = 0;[/font]
 

Viele Grüße

Michael

marhenke2
Beiträge: 9
Registriert: 06.09.2007, 13:29

Wenn ... dann ...

Beitrag von marhenke2 » 08.10.2007, 11:18

Hallo Michael (Mike) ;o)

jetzt funktioniert alles. Vielen, vielen Dank!

Viele Grüße
Mirko

acronaut
Beiträge: 693
Registriert: 14.09.2006, 21:32
Kontaktdaten:

Wenn ... dann ...

Beitrag von acronaut » 18.06.2009, 11:16

Hi,

am besten machst Du das mitd er "Switch"-Funktion.

Gehen wir mal davon aus, dass Dein erstes Dropdown-Feld den Namen  "Zahl" hat und das andere Feld "Ergebnis" heißt. In dem Fall müsstest Du unter den Eigenschaften des "Ergebnis" Feldes unter "Berechnung" => "benutzerdefiniertes Berechnungsscript" folgtendes Script verwenden:

Code: Alles auswählen

var MeineZahl = this.getField("Zahl").value;
var MeinErgebnis;

switch(MeineZahl) 
{
case "1":
MeinErgebnis = "A";
break;

case "2":
MeinErgebnis = "B";
break;

case "3":
MeinErgebnis = "C";
break;
}

if(Mein Ergebnis != "")
this.getField("Ergebnis").value = MeinErgebnis;
Grüße,
Andreas Vogel

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

Wenn ... dann ...

Beitrag von armine » 04.07.2009, 09:35

Hallo Rochie,

die einfachste Lösung ist wohl, aus der Dropdown-Liste mittels "switch" ins Ausgabefeld zu schreiben.

switch (this.rawValue ) {
    case "1": Ausgabe_alpha.rawValue = "";
                break;
    case "2": Ausgabe_alpha.rawValue = "A";
                break;
    case "3": Ausgabe_alpha.rawValue = "B";
                break;
    default: Ausgabe_alpha.rawValue = "C";
}

case "1": wurde eingefügt, für denn Fall, dass eine versehenliche Auswahl auch wieder gelöscht werden kann.
Statt langer Erklärung anbei das PDF.

Gruß
armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten