295 Aufrufe
Gefragt in SW-Sonstige von mherborn Mitglied (186 Punkte)
Hallo,

ich habe nach wie vor ein Problem. Ich habe in Adobe Acrobat in einem Formularfeld ein Berechnungsscript (Java) erstellt. Leider wird das Sript nicht ausgeführt. In einem älteren Formular funktioniert das einwandfrei. Gerne kann ich die beiden Formulare zusenden.

Viele Grüße

Michael

5 Antworten

0 Punkte
Beantwortet von mherborn Mitglied (186 Punkte)
Hi,

ich habe nachfolgend nochmal das Script reingestellt. Vielleicht findet ja jemand den Fehler. In Adobe bekomme ich die Fehlermeldung: ReferenceError: parseTime is not defined
9:AcroForm:total_1:Calculate

Hier also das Script

var cStart = this.getField("start_time_1").value;
var cStop = this.getField("stop_time_1").value;
var cPause = this.getField("pause_time_1").value;
if (cPause =="") {
cPause = "00:00"
}
cNull = "00:00"
if (cStart != "" && cStop != "") {
var tStart = parseTime(cStart);
var tStop = parseTime(cStop);
var tPause = parseTime(cPause);
tNull=parseTime(cNull);
var total = ((6*(tStop - tStart)/(1000*60*60)) - (6*(tPause - tNull)/(1000*60*60)));
event.valuee = (total < 0 ? total += 24 : total);
}
else {
event.value = "";
}
0 Punkte
Beantwortet von computerschrat Profi (32.1k Punkte)
Hallo Michael,

ich kann zwar kein Java, aber hier ist offenbar die Funktion parseTime() nicht existent. Muss es eventuell stattdessen heißen

tStart = Time.parse(cStart)

Gruß computerschrat
0 Punkte
Beantwortet von mherborn Mitglied (186 Punkte)
Hi,

witzigerweise funktioniert das Script in einer älteren pdf Datei einwandfrei. Meine Feldnamen sind:

- start_time_1

- stop_time_1

- pause_time_1

Das Feld, in dem die Berechnung stattfindet heisst total_1

Wenn ich das Script unter Berechnung in Benutzerdef. Berechnungsscript einfüge, kommt die Fehlermeldung.

Wenn ich die Felder einfach in eine neue pdf Datei kopiere, funktioniert es auch nicht !

 Mein Problem ist, dass ich auch kein Java kann... Ich könnte gerade mal kotz....
0 Punkte
Beantwortet von pietro37 Einsteiger_in (25 Punkte)
Hallo Michael,

es sieht so aus, als ob bei deinem Script ein Fehler bei der Funktion "parseTime" auftritt. Laut deiner Fehlermeldung scheint "parseTime" nicht definiert zu werden, wenn das Skript ausgeführt wird. Kannst du uns mehr Informationen darüber geben, woher die Funktion stammt und ob sie im Formular definiert wurde? Wenn du uns mehr Infos gibst, können wir dir besser helfen, das Problem zu lösen.

Grüße
0 Punkte
Beantwortet von
function convertToMinutes(time)
 {
  var parts = time.split(":");
  var hours = parseInt(parts[0], 10);

  var minutes = parseInt(parts[1], 10);

  var totalMinutes = hours * 60 + minutes;

  return totalMinutes;
}

var heure1 = this.getField("date3").value;
var heure2 = this.getField("date4").value;

var cminutes1 = convertToMinutes(heure1 );

var cminutes2 = convertToMinutes(heure2 );

if(heure1 != "" && heure2 != "")
{

// Calculer la différence en millisecondes
var difference = cminutes2  - cminutes1 ;

// Convertir la différence en heures et minutes
var dheures = Math.floor(difference / 60);

var dminutes = Math.floor(difference % 60);

// Afficher la différence
console.println("Différence : " + dheures + " heures et " + dminutes + " minutes");

event.value =dheures + "h:" + dminutes + " mm";

     
}
else {
    event.value = "";
}
...