Datum per Skript übernehmen

Verschiedenste Beispiele rund um 3D PDFs
Ralle.M..
Beiträge: 7
Registriert: 28.11.2014, 16:41

Datum per Skript übernehmen

Beitrag von Ralle.M.. » 29.11.2014, 01:48

Hallo liebe Forenmitglieder.
Ich habe für mich ein unlösbares Problem.
Ich versuche es einmal so genau wie möglich zu beschreiben.

Ich habe die Textfelder mit folgenden Namen.
Montag, Dienstag, Mittwoch, Donnerstag, Freitag.
In dem Textfeld (Montag) trage ich ein Datum ein. (dd.mm.yy).
Nun möchte ich über ein Schaltflächenfeld mit Namen (Aktualisieren),
unter Schaltflächen Eigenschaften, Aktionen, Maustaste loslassen, Java Skript ausführen, folgende Skript starten.

//--------------------------------------------------------
var strStart = this.getField("Montag").value;
if(strStart.length)
{
  var dateStart = util.scand("dd.mm.yyyy",strStart);
  var oneDay = 24 * 60 * 60 * 1000;
  var dueMillis = dateStart.getTime() + 1 * oneDay;
  var Dinstag = new Date(dueMillis);
  event.value = util.printd("dd.mm.yyyy",Dienstag);
}
else
  event.value = "NA";
//--------------------------------------------------------
var strStart = this.getField("Montag").value;
if(strStart.length)
{
  var dateStart = util.scand("ddd, dd.mm.yyyy",strStart);
  var oneDay = 24 * 60 * 60 * 1000;
  var dueMillis = dateStart.getTime() + 2 * oneDay;
  var Mittwoch = new Date(dueMillis);
  event.value = util.printd("ddd, dd.mm.yyyy",Mittwoch);
}
else
  event.value = "NA";
//--------------------------------------------------------

Naja, usw. bis Freitag.

Es funktioniert nur leider nicht. Warum nicht?
Hat einer von euch eine Idee? Oder eventuell wie man das Skript vereinfachen kann?

Ich danke euch jetzt schon im Voraus, ich bin für dieses Unternehmen anscheinend zu dämlich.

Gruß Ralf

simse179
Beiträge: 45
Registriert: 30.07.2014, 11:29

Datum per Skript übernehmen

Beitrag von simse179 » 01.12.2014, 14:33

Hallo Ralf,

Du schreibst gar nicht, was eigentlich passieren soll.
Dem Code nach schätze ich: Du schreibst bei Montag ein Datum rein (wer garantiert, dass dieser Tag auch wirklich ein Montag ist?), und willst dann die Tage bis Freitag ausgefüllt bekommen? Diese Woche würde dann also das stehen?

1.12.2014    2.12.2014    3.12.2014    4.12.2014    5.12.2014  

-> Du hast bei "var Dinstag" nen Rechtschreibfehler.
-> Lade doch am besten Deine Testdatei hoch, dann sieht man gleich, was genau nicht geht

VG, Simone

Ralle.M..
Beiträge: 7
Registriert: 28.11.2014, 16:41

Datum per Skript übernehmen

Beitrag von Ralle.M.. » 01.12.2014, 19:04

Wichtig ist folgendes,
Ich trage beim Montag ein Datum ein. Natürlich könnte ich jetzt unter der Option Textfeld bearbeiten, Berechnung… Das hier bei Dienstag einfügen,

//--------------------------------------------------------
var strStart = this.getField("Montag").value;
if(strStart.length)
{
  var dateStart = util.scand("ddd, dd.mm.yyyy",strStart);
  var oneDay = 24 * 60 * 60 * 1000;
  var dueMillis = dateStart.getTime() + 1 * oneDay;
  var Dinstag = new Date(dueMillis);
  event.value = util.printd("ddd, dd.mm.yyyy",Dienstag);
}
else
  event.value = "NA";
//--------------------------------------------------------

und beim Mittwoch, würde ich das Einfügen…

//--------------------------------------------------------
var strStart = this.getField("Montag").value;
if(strStart.length)
{
  var dateStart = util.scand("ddd, dd.mm.yyyy",strStart);
  var oneDay = 24 * 60 * 60 * 1000;
  var dueMillis = dateStart.getTime() + 2 * oneDay;
  var Mittwoch = new Date(dueMillis);
  event.value = util.printd("ddd, dd.mm.yyyy",Mittwoch);
}
else
  event.value = "NA";
//--------------------------------------------------------

usw. für die restlichen Wochentage. Das Textfeld würde also bei jeder Aktion erneut aktualisiert werden.
Das ganze hat also einen kleinen Haken. Möchte ich aus irgendwelchen Gründen den Donnerstag und den Freitag nicht haben, wird an dieser Stelle obwohl ich gerade das Datum gelöscht hatte, wieder hergestellt. Das möchte ich aber nicht. Daher kam mir dann der Gedanke, dass sich alle Scripts untereinander schreibe, und als Auslöser ein Schaltflächenfeld mit dem Namen Aktualisieren verwende. Hierdurch wäre es mir dann möglich, nicht gewollte Datumseinträge wie zum Beispiel Donnerstag und Freitag zu entfernen, ohne dass diese wiederhergestellt werden.

Also ich möchte über ein Schaltflächenfeld mit Namen (Aktualisieren),
unter Schaltflächen Eigenschaften, Aktionen, Maustaste loslassen, Java Skript ausführen, das Skript starten. Wahrscheinlich ist das Skript sogar noch falsch geschrieben und könnte eventuell vereinfacht werden.
 
Dass das angegebene Datum unter Montag auch wirklich ein Montag ist sehe ich alleine schon an der Formatierung   ddd, dd.mm.yyyy. Also setzen wir einfach mal voraus dass in dem Textfeld Montag auch wirklich ein Montag enthalten ist. Natürlich wäre es schön wenn sich bei Montag ein Reiter Kombinationsfeld befände das einen Kalender aufruft. Damit könnte ich natürlich jederzeit gezielt ein Datum beginnend mit Montag aussuchen.
 
Ich hoffe, dass ich mich jetzt einigermaßen verständlich ausgedrückt habe.
Aber ich finde es schon mal ganz toll, das du dich überhaupt mit meinem Problem beschäftigt hast, dafür schon mal Danke.
 
Gruß Ralf

simse179
Beiträge: 45
Registriert: 30.07.2014, 11:29

Datum per Skript übernehmen

Beitrag von simse179 » 03.12.2014, 10:04

Hallo Ralf,

schau mal, ob mein pdf in etwa dem entspricht, was Du meinst. Habs bisschen arg klein angelegt, aber Du kannst es ja vergrößern ;)

Viele Grüße,

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

Ralle.M..
Beiträge: 7
Registriert: 28.11.2014, 16:41

Datum per Skript übernehmen

Beitrag von Ralle.M.. » 03.12.2014, 19:22

Erst einmal 1000 Dank, und eine ganze Lawine hinterher. Absolut perfekt, aber, wo, oder an welcher Stelle habe ich einen Fehler eingebaut? Naja, ich drucke mir die beiden Skripte einmal aus und vergleichen sie miteinander.

Eventuell kannst du mir bei dem nächsten Problem auch noch helfen.
Die Sache mit der Aktualisierung über einen Button bleibt. Zusätzlich soll der Montag aus gelesen werden um in ein neues Textfeld namens Kalenderwoche, die Kalenderwoche die im Textfeld Montag eingetragen wurde darzustellen. Naja, wie ich das bewerkstelligen sollte, weiß ich sowieso nicht. Null Dunst..…. es wäre schön wenn du auch für dieses Problem noch eine Lösung parat hättest. Ich zumindest nicht:(.

Gruß Ralf


Ralle.M..
Beiträge: 7
Registriert: 28.11.2014, 16:41

Datum per Skript übernehmen

Beitrag von Ralle.M.. » 04.12.2014, 00:08

Das Aktualisieren funktioniert leider nicht ???      Was ist falsch ???



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

simse179
Beiträge: 45
Registriert: 30.07.2014, 11:29

Datum per Skript übernehmen

Beitrag von simse179 » 04.12.2014, 12:28

Hallo Ralf,

falsch ist da nichts, nur wenn Du das Datum mit

Code: Alles auswählen

var dateStart = util.scand("ddd, dd.mm.yyyy",strStart);
einliest, muss man anscheinend auch eine vierstellige Jahreszahl eingeben.
Zumindest bei mir füllt er dann die anderen Felder korrekt aus ;)

Zum Thema Kalenderwoche schau mal auf dieser Seite, da wird das Skript dazu beschrieben: http://www.salesianer.de/util/kalwoch.html

VG, Simone

Ralle.M..
Beiträge: 7
Registriert: 28.11.2014, 16:41

Datum per Skript übernehmen

Beitrag von Ralle.M.. » 06.12.2014, 12:38


Ralle.M..
Beiträge: 7
Registriert: 28.11.2014, 16:41

Datum per Skript übernehmen

Beitrag von Ralle.M.. » 06.12.2014, 13:15

Erst einmal hallo zusammen, es klappt jetzt auch bei mir.
Naja, ich habe ja das nachfolgende Skript.

//--------------------------------------------------------
var strStart = this.getField("Montag").value;
if(strStart.length)
{
var dateStart = util.scand("ddd, dd.mm.yy",strStart);
var oneDay = 24 * 60 * 60 * 1000;

var dueMillis = dateStart.getTime() + 1 * oneDay;
var Dienstag = new Date(dueMillis);
this.getField("Dienstag").value = util.printd("dd.mm.yy",Dienstag);

var dueMillis = dateStart.getTime() + 2 * oneDay;
var Mittwoch = new Date(dueMillis);
this.getField("Mittwoch").value = util.printd("dd.mm.yy",Mittwoch);

var dueMillis = dateStart.getTime() + 3 * oneDay;
var Donnerstag = new Date(dueMillis);
this.getField("Donnerstag").value = util.printd("dd.mm.yy",Donnerstag);

var dueMillis = dateStart.getTime() + 4 * oneDay;
var Freitag = new Date(dueMillis);
this.getField("Freitag").value = util.printd("dd.mm.yy",Freitag);
}
//-----------------------------

Jetzt ist mir nur nicht ganz klar wie ich das nachfolgende Skript
dass sich auf der Seite http://www.salesianer.de/util/kalwoch.html
befand, in das bestehende Skript einfüge. In meinem Muster
Stundennachweise KW 49 Dezember 2014.pdf habe ich bereits das Textfeld
Text2 in KW umbenannt. Wenn ich das jetzt richtig verstehe, muss zuerst
das Textfeld Montag aus gelesen werden, dann muss das Berechnungskript
ausgeführt werden, und das Ergebnis soll dann in das Textfeld KW
eingetragen werden. Aber wie??? Ihr wisst ja, ich bin ein absoluter Laie.

//--------------------------------------------------------
Datum=new Date(j,m-1,t);
DoDat=donnerstag(Datum);
kwjahr=DoDat.getFullYear();
DoKW1=donnerstag(new Date(kwjahr,0,4));
kw=Math.floor(1.5+(DoDat.getTime()-DoKW1.getTime())/86400000/7)
function donnerstag(datum) {
var Do=new Date();
Do.setTime(datum.getTime() + (3-((datum.getDay()+6) % 7)) * 86400000);
return Do;
}
//--------------------------------------------------------

Soweit so gut. In diesem Skript steht noch nicht wo er das Datum ein gelesen
wird (Textfeld Montag) und wohin die errechnete Kalenderwoche eingetragen
werden soll, nämlich in das Textfeld KW.
Wenn ihr jetzt dafür auch noch eine Lösung hättet, wäre das einfach genial.

Gruß Ralf

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

Datum per Skript übernehmen

Beitrag von armine » 27.12.2014, 09:49

Hallo Ralf,

du weißt, dass in http://www.acronaut.de/forum14/5634.html ein Lösungsweg aufgezeigt wird. Dieser Hinweis ist für Mitlesende.

vg armine

Antworten