[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms Berechnung hintereinander

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Web/Internet - Webdesign, eForms
Themen
Beiträge
Moderatoren
Letzter Beitrag

Berechnung hintereinander

Ramius
Beiträge gesamt: 208

7. Jan 2008, 10:57
Beitrag # 1 von 5
Bewertung:
(1837 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo

Die Feldberechnung zählt nur zusammen, wenn alle Felder mit Zahlen belegt sind. Wenn ein Feld dazwischen nicht ausgefüllt ist, stellt er die Zahlen hintereinander. Kann mir jemand sagen warum das so ist?:

Code
// Die Ziffern der Feldnamenerweiterung 
//var ziff = 0;

// Feldnamen mit den Ziffererweiterung
var n1 = "Benzin."+ziff;
var n2 = "Unterkunft." + ziff;
var n3 = "VerpflegungAufwand." + ziff;
var n4 = "VerpflegungPauschal." +ziff;
var n5 = "TaxiPark." +ziff;
var n6 = "AutoKm." +ziff;
var n7 = "Flug." +ziff;
var n8 = "BusBahn." +ziff;
var n9 = "DivPersonalkosten." +ziff;
var n10 = "Porti." +ziff;
var n11 = "DivAuslagen." +ziff;
var n12 = "Diverses." +ziff;

// Werte der Barauslagen
var t1 = this.getField(n1).value;
var t2 = this.getField(n2).value;
var t3 = this.getField(n3).value;
var t4 = this.getField(n4).value;
var t5 = this.getField(n5).value;
var t6 = this.getField(n6).value;
var t7 = this.getField(n7).value;
var t8 = this.getField(n8).value;
var t9 = this.getField(n9).value;
var t10 = this.getField(n10).value;
var t11 = this.getField(n11).value;
var t12 = this.getField(n12).value;


// Summe der Barauslagen
event.value = t1+t2+t3+t4+t5+t6+t7+t8+t9+t10+t11+t12;


Gruss, Ramius
MacOS 10.4.11, Acrobat 8.1.1
X

Berechnung hintereinander

taunus11
Beiträge gesamt: 604

7. Jan 2008, 14:24
Beitrag # 2 von 5
Beitrag ID: #329562
Bewertung:
(1821 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Als Wert eines nicht ausgefülltes Feld erhält man eine leere Zeichenkette. Diese Zeichenkette wird mit den Werten (Zeichenketten) der anderen Felder verknüpft.


als Antwort auf: [#329501]

Berechnung hintereinander

Ramius
Beiträge gesamt: 208

7. Jan 2008, 16:24
Beitrag # 3 von 5
Beitrag ID: #329619
Bewertung:
(1809 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Oh, vielen Dank. Da der Wert keine Zahl mehr ist, kann er nicht mehr zusammenrechnen.

Wie muss ich denn die Felder abholen, muss da jetzt eine if-Abfrage konstruieren oder reicht es wenn ich das Feld mit parseInt() hole? In etwa so:

Code
var t1 = parseInt(this.getField(n1).value); 


Gruss, Ramius

Hab's gleich ausprobiert. Das geht auch nicht und dazu kommt die Meldung NaN.


als Antwort auf: [#329562]
(Dieser Beitrag wurde von Ramius am 7. Jan 2008, 16:42 geändert)

Berechnung hintereinander

Markus Walker
Beiträge gesamt: 494

7. Jan 2008, 17:54
Beitrag # 4 von 5
Beitrag ID: #329658
Bewertung:
(1794 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ramius,

parseInt() gibt eben immer dann NaN (Not a Number) wenns eben keine Nummer ist, also auch bei einem leeren String.

Je nach dem was du erreichen willst, kannst du die Eingabe bei den einzelnen Felder schon überprüfen (Validierung). Gerechnet wir nur wenn überall ein numerischer Wert eingegeben wurde. Gesteuert wird dies mit dem Property Doc.calculate .

Oder deine Lösung mit dem if-Konstrukt und parseInt() müsste erweitert werden. Da gibt es z.B. die Methode isNaN(), welche false zurück gibt, wenn der geprüfte Wert nicht NaN ist.
(Man Achte: (NaN == NaN) gibt false!)

Und sollte einfach mal zusammengezählt werden was schon eingegeben wurde, kann man die Feld-Wert jeweils mit 1 multiplizieren, um einen numerischen Wert zu kriegen:
var n1 = "Benzin." * 1 + ziff ;
Ein leerer String oder ein String bestehend aus lauter Leerzeichen mit 1 multipliziert ergibt 0.

Das sind die Tücken mit der dynamischen Typen-Konvertierung von JavaScript.


HTH
---------------------------
Helfen Sie mit, damit HilfDirSelbst.ch weiterhin helfen kann.
http://www.hilfdirselbst.ch/info/


als Antwort auf: [#329619]
(Dieser Beitrag wurde von Markus Walker am 7. Jan 2008, 18:00 geändert)

Berechnung hintereinander

Ramius
Beiträge gesamt: 208

8. Jan 2008, 08:09
Beitrag # 5 von 5
Beitrag ID: #329743
Bewertung:
(1767 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Super. So einfach und simpel. Da muss man erst drauf kommen.

Allerdings musste ich das in einer anderen Zeile eingeben.
var t1 = this.getField(n1).value*1;

Die Zeile in der du es geschrieben hast, bestimmt nur den Feldnamen.

Vielen Dank euch.
Ramius


als Antwort auf: [#329658]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022
Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022