[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Monatsseite automatisch generieren - InDesign CS5, Windows, JS

JonesRidder
Beiträge gesamt: 85

6. Jul 2011, 08:50
Bewertung:

gelesen: 13176

Beitrag als Lesezeichen
So die Herren,

den Ablauf an sich hab ich geschrieben, zum testen werden die jeweiligen Daten in alert Boxen ausgegeben, dabei geht es immer vom ersten bis 31 des Monats (auch wenn der Monat weniger Tage hat).
Code
var jetzt = new Date(); 
var XterTagInWoche = jetzt.getDay(); //aktuell Xter Tag in der Woche 0-6
var Wochentage = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
//var XterTagInMonat = jetzt.getDate(); //aktuell Xter Tag im Monat 0-31
var Jahr = jetzt.getFullYear(); //2011
var XterMonatImJahr = jetzt.getMonth(); //aktueller Monat 0 bis 11
var Monate = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");

// Ausgabe: [Akteuller Monat][LEER][Aktulles Jahr]
var AusgabeMonatJahr = (Monate[XterMonatImJahr] + " " + Jahr);

//Alle Datums mit und vor aktuellem Datum schreiben
for(var XterTagInMonat = jetzt.getDate(); XterTagInMonat > 0; XterTagInMonat--) {
if (XterTagInWoche < 0) {
XterTagInWoche = 6;
}
// Ausgabe: [Tageszahl im aktuellen Datum][LEER][Ersten zwei Buchstaben des Wochentags]
alert("AB " + XterTagInMonat + " " + Wochentage[XterTagInWoche].substring(0,2));
XterTagInWoche--;
}

//Alle Datums nach aktuellem Datum schreiben
for(var XterTagInMonat = jetzt.getDate()+1; XterTagInMonat < 32; XterTagInMonat++) {
if (XterTagInWoche > 6) {
XterTagInWoche = 0;
}
// Ausgabe: [Tageszahl im aktuellen Datum][LEER][Ersten zwei Buchstaben des Wochentags]
alert("AB " + XterTagInMonat + " " + Wochentage[XterTagInWoche].substring(0,2));
XterTagInWoche++;
}



Meine Frage nun:
1. Wie gebe ich die Daten im Textrahmen "ebTage" zeilenweise untereinadner aus (die InDesign Seite ist bereits vorhanden)?
2. Ist es vorher nötig, die Daten in ein Array zu schreiben (Index 0 = 1. Tag im Monat bis Index 30 = 31 Tag im Monat)? Wobei das Array nicht von vorne nach hinten gefüllt werden würde (zumindest in der ersten Schleife nicht, da die ja rückwärts geht).
3. Was haltet Ihr von diesem Ansatz (sehr vereinfachte herangehensweise, wo z.B. keine Feiertage oder so berücksichtigt werden),
würdet Ihr es anders machen, wenn ja, wie?

Danke für eure Hilfe!

Gruß
J.R.

(Dieser Beitrag wurde von JonesRidder am 6. Jul 2011, 08:52 geändert)
Änderungsverlauf:
Beitrag geändert von JonesRidder (User) am 6. Jul 2011, 08:52