2016-05-05 13 views
0

Anders als eine lange Folge von if-Anweisungen zu verwenden, gibt es eine Möglichkeit, ein Acrobat-Textfeld zu programmieren, um basierend auf Variablen, die in ein anderes Textfeld eingegeben wurden, schrittweise zu berechnen. Hier ist was ich habe.Gibt es eine Möglichkeit, inkrementelle Berechnungen in Acrobat zu vereinfachen?

var v = this.getField("FixNum").value; 

if (v == "1") 
{ 
event.value = 84 ; 
} 
else if (v == "2") 
{ 
event.value = 88 ; 
} 
else if (v == "3") 
{ 
event.value = 92 ; 
} 
else 
{ 
event.value = ""; 
} 

Wie Sie sehen dies umständlich bekommen, weil dies von 1 geht - 9 in diesem Muster, bei dem 9 = 116, dann 10 - 100, wobei 10 = 135. Nach 100 das Muster 495 + 6 für jede Einheit ist dh 101 = 501. Ich hoffe, dass jemand das verstehen kann, weil ich nicht an eine andere Art zu fragen denke!

Antwort

0

mehr Möglichkeiten:

• Wenn Sie mit einer Formel kommen können, wäre es am einfachsten sein.

• Wenn die Wertepaare willkürlich sind, können Sie eine Nachschlagetabelle (in Form eines Arrays) erstellen.

• Wenn die Eingangsnummern (mehr oder weniger) aufeinanderfolgende Ganzzahlen sind, können Sie mit einem einfachen Array arbeiten, wobei der Index die Eingangsnummer und das Element mit dieser Indexnummer die Ausgangsnummer ist.

• Wenn es komplizierter ist, müssten Sie ein 2-dimensionales Array erstellen, wobei jedes Element ein Array von Eingabe- und Ausgabezahlen ist.

• Wenn Sie nach einem einfachen Ersatz von if ... else if-Anweisungen suchen, können Sie die Anweisung switch ... verwenden, die für völlig willkürliche Wertepaare funktionieren würde.

aktualisieren nach dem Kommentar von OP:

Nach einem Kommentar des OP sind die Eingangsnummern aufeinanderfolgenden, was bedeutet, dass der dritte Punkt über die Methode der Wahl sein würde. Dazu gehen Sie wie folgt vor:

erstellen Dokumentebene Skript (der Name spielt keine Rolle):

var myPricesArr = [0, 12, 15, 17, 23, 27, 30, 33] ; 

alternative Möglichkeit:

var myPricesArr = new Array() ; 
myPricesArr[0] = 0 ; 
myPricesArr[1] = 12 ; 
myPricesArr[2] = 15 ; 
myPricesArr[3] = 17 ; 
myPricesArr[4] = 23 ; 
myPricesArr[5] = 27 ; 
myPricesArr[6] = 30 ; 
myPricesArr[7] = 33 ; 

Beide Varianten sind gleichwertig, aber die zweite man ist einfacher zu pflegen, erfordert aber mehr Tipparbeit ...

Erstellen Sie ein Textfeld namens "numFixts", formatiert als Zahl, keine Dezimalstellen, vielleicht mit einem maximalen Wert (zum Schutz der Formular vom Scheitern).

Erstellen Sie ein Textfeld mit dem Namen „fixtsAmt, als Zahl formatiert Im berechnen Ereignis dieses Feld hinzufügen die folgende JavaScript.

event.value = myPricesArr[this.getField("numFixts").value] ; 

Und das sollte es tun

+0

Ich gebe, dass ein. Die eingegebenen Zahlen stellen die Anzahl der Fixtures in einem Haus dar, also nicht zufällig. Die Ausgabe ist die tatsächliche Kosten einer Genehmigung basierend auf der Eingangsnummer. Ich werde studieren, wie man Arrays programmiert. Diese Seite war fantastisch. Danke. –

+0

OK, in diesem Fall könnten Sie der dritten Zeile folgen und ein einfaches Array erstellen (siehe bearbeitete Antwort für eine mögliche Syntax. –

+0

Groß. Ich werde es versuchen und Sie wissen lassen, wie es funktioniert. –

Verwandte Themen