Java und Adobe...

Die Möglichkeiten und Tücken von Formularen
pueberall
Beiträge: 99
Registriert: 16.07.2013, 13:28

Java und Adobe...

Beitrag von pueberall » 21.08.2013, 15:06

Hallo liebe Java-Profis :-)

ich habe ein großes (für euch sicher ein kleines) Problem...

Meine Herausforderung ist die folgende:

ich möchte berechnen, wieviel ich vom nächsten Monat an monatlich sparen muß, damit ich zu einem bestimmten Datum (Monat reicht) eine vorgegebene Summe erreicht habe.

Also Beispiel: im August nächsten Jahres möchte ich eine Summe von 1200€ angespart haben und dann soll (am besten mit einem "Schaltflächen-Werkzeug" von Adobe) berechnet werden, dass ich monatlich 100€ sparen muß...

Ich habe mal ein Muster hochgeladen (ohne Scripe).

Wäre schön, wenn mir dabei jemand helfen könnte.

Danke für Eure Mühe im Voraus

Gruß

Puebi

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

pueberall
Beiträge: 99
Registriert: 16.07.2013, 13:28

Java und Adobe...

Beitrag von pueberall » 22.08.2013, 12:49

ok, mir würde es hinreichen, wenn man mir hilft, wie ich eine Differenz zwischen 2 Monaten (und zwar immer dem aktuellen und einem Monat in der Zukunft) mit Java in einem Adobe Acrobat Formular berechnen kann.


Sprich, wenn ich in das Datums-Feld eingebe: 08.2014 und wir haben aktuell 08.2013 hätte ich gerne einen kleinen Script, das als Ergebnis dabei 12 rauskommt.

Kann mir dabei jemand bitte helfen. Danke nochmals :)

die Formel wäre:

(y2 - y1) * 12 + (m2 - m1) + 1


[/code]aber wie bekomme ich das in Java, das in Adobe läuft?

Gruß

Puebi

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Java und Adobe...

Beitrag von BAlheit » 23.08.2013, 12:04

Info:

Adobe Acrobat verwendet Javascript, nicht Java.

pueberall
Beiträge: 99
Registriert: 16.07.2013, 13:28

Java und Adobe...

Beitrag von pueberall » 23.08.2013, 20:05

sorry, habe mich dazu falsch ausgedrückt...

aber das Problem habe ich nun mittlerweile selbst gelöst :-) ist zwar eine tagesweiseberechnung und nicht monatsweise, aber funzt :) ... ok, bei bestimmten Konstellationen ergeben sich (noch) leichte Rundungsfehler, liegt einfach daran, dass tagesweise berechnet wird... ich werde dazu mal ein PDF-Dokument hochladen, vielleicht findet ja jemand eine Lösung für die (hin und wieder) kleinen Abweichungen...;)

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

Java und Adobe...

Beitrag von armine » 24.08.2013, 10:15

Hallo Puebi,

mit Code für den Acrobat kann ich nicht dienen, aber im LCD berechne ich den Termin in x Monaten mit:

[font=courier new]var d1 = DateTimeField1.rawValue.split("-"), d2 = [0,0,0], months = Monate.rawValue ;
for (i = 0; i < d1.length; i++) {
    d1 = parseInt(d1, 10)
}
d1[1] -= 1 ;
d2[0] = d1[0] + Math.floor((d1[1] + months) / 12) ;
d2[1] = (d1[1] + months) % 12 ;
d2[2] = d1[2] == DoM(d1[0], d1[1]) ? DoM(d2[0], d2[1]) : Math.min(d1[2], DoM(d2[0], d2[1])) ;
this.rawValue = util.printd("dd.mm.yyyy", new Date(d2[0], d2[1], d2[2]))

function DoM(Y, M) { // Days of Month
    return  [31,((Y%400)?((Y%100)?((Y%4)?0:1):0):1) + 28,31,30,31,30,31,31,30,31,30,31][M]
}[/font]

Solange es den Monatstag auch x Monate später gibt, braucht man nur den Monat hochzählen – gegebenfalls begrenzen – und den Übertrag dem Jahr zuschlagen. Spannung kommt auf, wenn’s den Tag nicht gibt. Da wird auf’s Monatsende begrenzt.
Vier Monate nach dem 29./30./31.10. ist der 28./29.02.

Hoffentlich kannst du die "Übersetzung" bewältigen.

vg armine



pueberall
Beiträge: 99
Registriert: 16.07.2013, 13:28

Java und Adobe...

Beitrag von pueberall » 24.08.2013, 15:03

Hallo Armine,

danke für den Script. Leider bekomme ich es nicht hin, denn sofort, wenn ich den Script in LCD einsetze geht ein Fenster auf: Trojaner... merkwürdig :X

Kannst du mir bitte mal eine kleine PDF-Datei anhängen, wo du den Script lauffähig eingebaut hast?! Das wäre klasse, damit ich überhaupt sehen kann, was der Script genau bewirkt. Danke für deine Mühe im Voraus

Viele Grüße

Puebi

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

Java und Adobe...

Beitrag von armine » 24.08.2013, 15:30

Hallo Puebi,

wie man in dem Code einen Trojaner unterbringt, geht über meine Kenntnisse. Anbei das PDF zu Testen.

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

pueberall
Beiträge: 99
Registriert: 16.07.2013, 13:28

Java und Adobe...

Beitrag von pueberall » 24.08.2013, 15:41

Hallo Armine,

DAS habe ich mich auch gefragt, wie da ein Trojaner drin sein soll... da ist sehr wahrscheinlich eine Codefolge drin, die von Kaspersky als Trojaner erkannt wird...

danke für das PDF, ist allerdings ein wenig anders, als was ich benötige...

aber vielleicht kann ich daraus ja was ableiten :)

Mir geht es einfach nur um einen kleinen Script, der folgendes macht:

ich gebe das Datum (in der Form MM.YYYY) in der Zukunft vor und das Script berechnet dann nur, wie viele Monate es bis zu dem Monat in der Zukunft sind... also lange nicht so kompliziert, wie das von dir ;)


Hast du eine Idee dazu?

VG
Puebi


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

Java und Adobe...

Beitrag von armine » 25.08.2013, 17:08

Hallo Puebi,

wenn es so einfach ist, dann sollte dir einfallen, dass man vom Zieljahr das aktuelle abzieht, den gefundenen Wert mit 12 multipliziert, den Zielmonat addiert und den aktuellen subtrahiert und um JS zu ehren auch noch eine 1.
Um das Aufdröseln deiner Vorgabe zu vermeiden, solltest du Monat und Jahr in 2 Felder schreiben.

Im Acrobat ist dann der Code:
[font=courier new]this.getField("Abstand").value = (this.getField("JJJJ").value - new Date().getFullYear()) * 12 + this.getField("MM").value - new Date().getMonth() - 1[/font]

vg armine

pueberall
Beiträge: 99
Registriert: 16.07.2013, 13:28

Java und Adobe...

Beitrag von pueberall » 26.08.2013, 00:36

Hallo Armine,

danke für das Script. :) das funzt prima :D
Diese Gedanken hatte ich mir auch schon gemacht (und der Algorithmus war mir bekannt, danke aber trotzdem!!!), ob ich das auf diese Art löse, aber ich hatte es verworfen, da ich das Formular hinterher auf dem iPad einsetze und dort gibt es bei Datumsfeldern so schöne Eingabefenster :)  und die wollte ich verwenden (das Auge isst ja bekanntlich mit).

Hast du eine Idee, wie man bei Acrobat aus dem Datumsfeld die Variablen MM und YYYY herauszieht? DAS wäre die ultimative Lösung, dazu habe ich mit Google bisher noch nix gefunden. Danke für deine Mühe bisher und auch weiterhin im Voraus.

VG
Puebi



Antworten