Berechnung in Tabellen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Benedikt
Beiträge: 7
Registriert: 12.02.2014, 13:17

Berechnung in Tabellen

Beitrag von Benedikt » 19.02.2014, 09:42

Hallo zusammen,

ich wollte ein PDF-Dokument erstellen in dem die Kosten für unterschiedliche Dienstreisen automatisch berechnet werden.

Leider sind meine JavaScript-Kenntnisse sehr beschränkt und belaufen sich auf einfache Addition sowie Multiplikation.

Ich habe die pdf - Datei einmal angehangen.

In dem Feld "Dauer" soll immer die Differenz zwischen "Beginn" und "Ende" sein. Das klappt wenn man ganze Stunden angibt ansonsten leider nicht.

Das Feld "Tagegeld" soll immer dann ausgefüllt werden, wenn in dem Feld "Dauer" der Wert größer 8 ist.

Die Gesamtkosten sprechen ja für sich aber das konnte ich auch mit meinen beschrenkten Kenntnissen hinbekommen :)

Dann wollte ich das wenn man im Dropdownfeld etwas auswählt (z.B. "F") das im Feld Kürzungsbetrag automatisch was hinterlegt wird (z.B. "2"). Ist das technisch möglich?

Unter Monatssummen sollen die entsprechenden Summen gebildet werden. Leider klappt dies nicht mit der Formel "this.rawValue = Nebenkosten1.rawValue + Nebenkosten2.rawValue usw.).

Perfekt wäre es wenn man unter Kennung manuell 1 oder 2 vorgibt. Und in der einzeiligen Tabelle dann die Gesamtsumme aufgeteilt wird nach 1 und 2. Dies ist aber erstmal nicht so wichtig :)


Ich bin selbstverständlich auch für Teillösungen dankbar da ich natürlich paralell versuche die fehlenden Formel mir selber herzuleiten.

 

Ich bedanke mich jetzt schon einmal für eure Unterstützung und Mühen :))

 

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

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Berechnung in Tabellen

Beitrag von nele_sonntag » 19.02.2014, 14:38

So, da Du auch an Teillösungen interessiert bist. ;-)
http://acronaut.de/forum48/4468.html

Hier wird Schritt-für-Schritt erklärt, wie man es anstellt, anhand einer Auswahl eines Dropdowns eine Aktion auszulösen. Nebst Musterdatei.

Rest schaue ich mir mal an.

LG Mandy

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Berechnung in Tabellen

Beitrag von nele_sonntag » 19.02.2014, 14:45

Derzeit ist in Nebenkosten nichts drin. Wo hattest Du denn Skript

Code: Alles auswählen

this.rawValue = Nebenkosten1.rawValue + Nebenkosten2.rawValue
platziert?

Ich könnte das jetzt auch einfach alles erledigen, aber Du sagest ja, dass Du es verstehenund nachvollziehen können möchtest.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Berechnung in Tabellen

Beitrag von nele_sonntag » 19.02.2014, 14:53

Uiiihhh..und ganz ganz viele andere Fehler.

Code: Alles auswählen

thisrawValue = ENDE1.rawValue - BEGINN1.rawValue
Erst mal heißt es:

Code: Alles auswählen

this.rawValue =
Dann gehört an jeden Anweisungsblock ein:
Wichtig ist, dass Du mit dem Propertyinspector arbeitest. Wenn Du ein Feld ansprechen möchtest, danach einen Punkt setzt und es geht kein Propertyinspector auf, der die Methoden anbietet, dann hast Du Dich entweder verschrieben oder der Pfad reicht nicht aus, damit quasi das Program erkennt, wie es zu diesem Feld gelangt. Dann ist es bspw. nötig, noch den Zeilennamen oder die umgebende Subform mit anzugeben.

Dann korrigiere doch erst mal Dein bestehende PDF und dann schauen wir weiter...

LG Mandy



Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Berechnung in Tabellen

Beitrag von nele_sonntag » 19.02.2014, 14:57

Ach so...und Du hast in jeder Dauer das gleiche drin stehen.

Code: Alles auswählen

this.rawValue = ENDE1.rawValue - BEGINN1.rawValue
In den Folgezeilen heißen die Felder aber ENDE3, ENDE3 usw...da kann sowieso nix funktionieren. :)

Benedikt
Beiträge: 7
Registriert: 12.02.2014, 13:17

Berechnung in Tabellen

Beitrag von Benedikt » 20.02.2014, 12:49

Hallo Mandy,

vielen Dank schon einmal für deine Hinweise und die Schnelligkeit. Du bist ja zügiger als jede Support-Hotline ;-)

 

Die Summierungen klappen jetzt schon einmal überall :)

Den Fehler bei der Dauer habe ich auch behoben. Allerdings gibt es ein Problem wenn das Ergebnis kleiner 10 ist. Dann schreibt er keine Uhrzeit mehr hin sondern eine Zahl. Ich habe gedacht es könnte an der Formatierung liegen.

Ich wollte dann auch direkt eine Wenn Funktion für das Feld Tagesgeld erstellen. Daran bin ich auch kläglich gescheitert.

Leider hat das mit dem DropDown-Menü nicht funktioniert. Ich habe die Namen mit Hilfe des Propertyinspector eingefügt von daher dürfte kein Tippfehler vorliegen.

Ich habe das Script erstmal nur im ersten Feld (Zeile 3) eingefügt.

Ich habe das geänderte Formular noch einmal eingefügt.

[fontsize=2][/fontsize] 
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Berechnung in Tabellen

Beitrag von nele_sonntag » 20.02.2014, 13:38

Bei Deinem DD hast Du folgendes Problem. Du möchtest in ein Dezimal-Feld schreiben, übergist aber erst mal einen String.

Zweiter Fehler, denn den String kann das Programm insofern noch ignorieren, weil Du nur mit einem = arbeitest. Er konvertiert das als eigenständig, wie Du bei der 12 merkst.

Wenn Du aber 12,60 übergibst kann er das in keinster Weie interpretieren! Du musst 12.60 übergeben.

Da Du eine Zahl an ein Zahlenfeld übergeben möchtest, sind die "" unnötig.

Da Du ja jetzt nicht wusstest, woran es liegt, hättest Du zuerst mal mit

Code: Alles auswählen

app.alert(xfa.event.newText);
schauen können, ob de richtige Wert überhaupt geliefert wird. So grenzt man die Fehlersuche ein.

Ich würde mir von Anfang an ein sauberes Einrücken angewöhnen. So siehst DU immer auf einen Blick, elcher Anwesiungsbock bei welcher zutreffenden Bedingung abgearbeitet wird. Und auch das Semikolon hast Du vergessen (siehe Deine Summenfelder).

LG Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Berechnung in Tabellen

Beitrag von nele_sonntag » 20.02.2014, 13:39

Bei den Zeitfeldern gib mal bitte in die Suche ein "Arbeitszettel", "Stundenzettel", "Stunden"...da gibt es massig Beispiele.

Benedikt
Beiträge: 7
Registriert: 12.02.2014, 13:17

Berechnung in Tabellen

Beitrag von Benedikt » 11.03.2014, 14:32

So vielen Dank für die Unterstützung soweit. Ich konnte dadurch schon einige Sachen umsetzen.

Also die Uhrzeit passt perfekt :) Und auch bei der Dropdown-Liste konnte ich Fortschritte machen.

Leider zeigt er mir bei der Dropdownliste nicht die Dezimalwerte (z.B. 4,8) an. Muss ich ggf. den Feldtyp ändern? Und falls ja wie?

Dann wollte ich noch das sich das Tagegeld automatisch ermittelt sobald die Dauer über 8 Stunden sind. Dies klappt mit meiner Formel leider auch noch nicht.

Ich würde mich über weitere Unterstützung sehr freuen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Berechnung in Tabellen

Beitrag von nele_sonntag » 11.03.2014, 14:55

Bei welcher DD zeigt er die Dezimalwerte nicht an..ich habe nur ein DD mit F, M, A...

Antworten