[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Kalender Ferien kennzeichnen Script umschreiben

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Kalender Ferien kennzeichnen Script umschreiben

jayeassy
Beiträge gesamt: 19

13. Jul 2011, 13:25
Beitrag # 1 von 25
Bewertung:
(7551 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
dieses Skript, formatiert einen Kalender (über Datenzusammenführung erstellt), bei dem alle Tabellenzeilen mit Samstagen, Sonn- und Feiertagen eine auswählbare Hintergrundfarbe bekommen.

kann mir jemand dieses Script so umschreiben, dass man die BW-Ferien kennzeichnen kann z.B.: 2.4. bis 13.4.

Code
#target InDesign  
//DESCRIPTION: Farbzuweisung in Abhängigkeit vom Tabelleninhalt
/*
+ Anwendungsbereich: Kalender
+ Funktion:
1. Script sucht nach den Einträgen "Sa" und "So" sowie nach einem den Feiertagen zugewiesenen Zeichenformat
2. Script weist den Tabellenzeilen mit den entsprechenden Fundstellen eine auswählbare Hintergrundfarbe zu.
+ Vorraussetzungen für die fehlerfreie Ausführung:
1. Kalender ist mittels einer Tabelle aufgebaut
2. Allen Feiertagen ist ein gemeinsames Zeichenformat zugewiesen.
+ Indesign Version: 7.0.4
+ Autor: Roland Dreger
+ Datum: 18. Juni 2011
*/

var _dok = app.activeDocument;
var i, j, k;

// Mögliche Voreinstellungen für die GREP-Suche
// with (app.findChangeGrepOptions) {
// includeFootnotes = false;
// includeHiddenLayers = false;
// includeLockedLayersForFind = true;
// includeLockedStoriesForFind = true;
// includeMasterPages = false;
// }

try {
if (app.scriptPreferences.version >= 6) {
app.doScript(main, ScriptLanguage.JAVASCRIPT , [], UndoModes.ENTIRE_SCRIPT, "Alle Farbzuweisungen");
} else {
main();
}
} catch (_fehler) {
alert("Es ist leider ein Fehler aufgetreten! Fehlermeldung: " + _fehler.message);
}

function main() {

// Abfrage der Farben und des Zeichenformates
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;
var _gui = app.dialogs.add();
_gui.name = "Farben und Formate zuweisen";
var _guiCol = _gui.dialogColumns.add();

var _guiRow1 = _guiCol.dialogRows.add();
var _saText = _guiRow1.staticTexts.add();
_saText.staticLabel = "Farbe für Tabellenzeile mit Samstagen:";
var _saDropDown = _guiRow1.dropdowns.add();
_saDropDown.stringList = _dok.colors.everyItem().name;
_saDropDown.selectedIndex = 0;


var _guiRow2 = _guiCol.dialogRows.add();
var _soText = _guiRow2.staticTexts.add();
_soText.staticLabel = "Farbe für Tabellenzeile mit Sonntagen:";
var _soDropDown = _guiRow2.dropdowns.add();
_soDropDown.stringList = _dok.colors.everyItem().name;
_soDropDown.selectedIndex = 0;

var _guiRow3 = _guiCol.dialogRows.add();
var _feiertagText = _guiRow3.staticTexts.add();
_feiertagText.staticLabel = "Farbe für Tabellenzeile mit Feiertagen:";
var _feiertagDropDown = _guiRow3.dropdowns.add();
_feiertagDropDown.stringList = _dok.colors.everyItem().name;
_feiertagDropDown.selectedIndex = 0;

var _guiRow4 = _guiCol.dialogRows.add();
var _ZFText = _guiRow4.staticTexts.add();
_ZFText.staticLabel = "Zugewiesenes Zeichenformat für Feiertage:";
var _ZFDropDown = _guiRow4.dropdowns.add();
_ZFDropDown.stringList = _dok.characterStyles.everyItem().name;
_ZFDropDown.selectedIndex = 0;

var _ok = _gui.show();

if (_ok) {
var _farbeSamstag = _dok.colors[_saDropDown.selectedIndex];
var _farbeSonntag = _dok.colors[_soDropDown.selectedIndex];
var _farbeFeiertag = _dok.colors[_feiertagDropDown.selectedIndex];
var _ZFFeiertag = _dok.characterStyles[_ZFDropDown.selectedIndex];
}
_gui.destroy();

var _grepEx1 = "\\<Sa\\>" // GREP Ausdruck: Sonntag
var _suchErgebnisSa = find([_grepEx1,""]);
for (i = 0; i < _suchErgebnisSa.length; i++) {
var _zeileSa = _suchErgebnisSa[i].insertionPoints.firstItem().parent.rows[0];
_zeileSa.fillColor = _dok.colors.itemByName(_farbeSamstag.name);
}

var _grepEx2 = "\\<So\\>" // GREP Ausdruck: Samstag
var _suchErgebnisSo = find([_grepEx2,""]);
for (j = 0; j < _suchErgebnisSo.length; j++) {
var _zeileSo = _suchErgebnisSo[j].insertionPoints.firstItem().parent.rows[0];
_zeileSo.fillColor = _dok.colors.itemByName(_farbeSonntag.name);
}

var _grepEx3 = "" // GREP Ausdruck: [\\u\\l\\d\\p{Z*}]+$ Wenn mit Datenzusammenfuehrung gearbeitet wird und das Zeichenformat auch in den leeren Zellen enthalten ist.
var _suchErgebnisFeiertag = find ([_grepEx3, _ZFFeiertag.name])
for (k = 0; k < _suchErgebnisFeiertag.length; k++) {

// Zuweisung der Hintergrundfarbe für die Tabellenspalte
//var _spalteFeiertag = _suchErgebnisFeiertag[k].insertionPoints.firstItem().parent.columns[0];
//_spalteFeiertag.fillColor = _dok.colors.itemByName(_farbeFeiertag.name);

// Zuweisung der Hintergrundfarbe für die Tabellenzeile
var _zeileFeiertag = _suchErgebnisFeiertag[k].insertionPoints.firstItem().parent.rows[0];
_zeileFeiertag.fillColor = _dok.colors.itemByName(_farbeFeiertag.name);

// Zuweisung der Hintergrundfarbe für die Tabellenzelle
//var _zelleFeiertag = _suchErgebnisFeiertag[k].insertionPoints.firstItem().parent;
//_zelleFeiertag.fillColor = _dok.colors.itemByName(_farbeFeiertag.name);
}
}

function find (_args) {
var _grep = _args[0]
var _style = _args[1]
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences.findWhat = _grep
app.findGrepPreferences.appliedCharacterStyle = _style;
_ergebnis = app.activeDocument.findGrep();
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
return _ergebnis;
}


(Dieser Beitrag wurde von Martin Fischer am 13. Jul 2011, 13:36 geändert)
X

Kalender Ferien kennzeichnen Script umschreiben

Martin Fischer
  
Beiträge gesamt: 12732

13. Jul 2011, 14:22
Beitrag # 2 von 25
Beitrag ID: #475903
Bewertung:
(7533 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

wie bereits in Kalender Zellen einfärben InDesign CS4 empfohlen, würde ich an Deiner Stelle erst mal den Autor, Roland Dreger (Name aus dem Head-Bereich des Skripts), auf die Anpassung dieses Skripts für Deine Bedürfnisse ansprechen.


als Antwort auf: [#475899]

Kalender Ferien kennzeichnen Script umschreiben

jayeassy
Beiträge gesamt: 19

13. Jul 2011, 14:29
Beitrag # 3 von 25
Beitrag ID: #475905
Bewertung:
(7528 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke für den Tipp! Habe ich gemacht, bloß ich benötige es so schnell wie möglich.


als Antwort auf: [#475903]

Kalender Ferien kennzeichnen Script umschreiben

Martin Fischer
  
Beiträge gesamt: 12732

13. Jul 2011, 15:42
Beitrag # 4 von 25
Beitrag ID: #475910
Bewertung:
(7497 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Skript funktioniert nicht unabhängig von einer bestimmten Datenstruktur.
Zur Ermittlung der zu markierenden Tage ist es notwendig, daß
a) Format und Struktur der Daten für die Datumsbereiche (Excel, Word, Text) sowie
b) Struktur und Inhalt der InDesign-Datei
dokumentiert werden.

Falls sich der Autor nicht meldet, hätte ich ab Freitag Nachmittag Zeit, die entsprechenden Anpassungen vorzunehmen. Den Aufwand für die Anpassung schätze ich auf grob eine Stunde ein. Je nachdem, wie die Daten vorbereitet und die Anforderungen dokumentiert sind, geht es auch ein paar Minuten schneller.

Was wäre Dir die Anpassung wert?
Gerne auch über private Korrespondenz (email-Adresse im Profil).


als Antwort auf: [#475905]

Kalender Ferien kennzeichnen Script umschreiben

Martin Fischer
  
Beiträge gesamt: 12732

13. Jul 2011, 19:25
Beitrag # 5 von 25
Beitrag ID: #475917
Bewertung:
(7455 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielleicht irre ich mich auch und die Aufgabe ist gar nicht so kompliziert, wie zunächst angenommen.

Woher soll das Skript die Information bzgl. Ferien (Name) und Zeit (von – bis) erhalten?
Kommen diese Daten von außen oder stecken sie bereits in der InDesign-Datei drin, wie die Sams-, die Sonn- und die Feiertage?
Wenn letzteres der Fall ist, haben die Ferien ein besonderes Merkmal (Zeichenformat, Absatzformat)? Oder ist das einzige Merkmal, daß der Wortstamm 'ferien' im Begriff auftaucht?

Das wäre relativ einfach umzusetzen (im Gegensatz zur externen Bespeisung mit Informationen und Berechnung des zu markierenden Bereichs).

Wie auch immer, es braucht mehr Input.
Am Besten Musterdaten: vorher – nachher.


als Antwort auf: [#475910]
(Dieser Beitrag wurde von Martin Fischer am 13. Jul 2011, 19:37 geändert)

Kalender Ferien kennzeichnen Script umschreiben

drerol74
Beiträge gesamt: 507

13. Jul 2011, 21:10
Beitrag # 6 von 25
Beitrag ID: #475922
Bewertung:
(7429 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Derzeit fehlt mir leider die Zeit, das Script anzupassen. Zudem weiß ich nicht, wie die Tabelle aufgebaut ist/was die Zellen beinhalten. Ich habe das jayeassy auch schon so geschrieben.

Im Prinzip braucht es - wie schon von Martin Fischer beschrieben - nur eine Besonderheit in den Zellen. Wenn in den Zellen sonst nichts drinnen stehen soll, genügt auch ein Lehrzeichen mit dem entsprechenden Zeichenformat.

(Wenn den Feiertagen und den BW-Ferientagen eine andere Hintergrundfarbe zugewiesen werden soll, kann das Script auch zweimal mit unterschiedlichen Zeichenformaten ausgeführt werden.)

Für speziellere Fälle müsste man das Skript halt umschreiben.

Schöne Grüße
Roland Dreger


als Antwort auf: [#475917]

Kalender Ferien kennzeichnen Script umschreiben

Martin Fischer
  
Beiträge gesamt: 12732

14. Jul 2011, 06:58
Beitrag # 7 von 25
Beitrag ID: #475929
Bewertung:
(7387 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Roland,

es freut mich, daß Du Dich als Autor des oben diskutierten Skripts zu erkennen gibst und Dich hier einklinkst.

Jetzt liegt es an jeayeassy, die Aufgabenstellung zu konkretisieren und möglichst mit Musterdaten zu unterstützen, und dann werden wir sehen, ob, von wem, wie und wo das mit welchem Aufwand zu lösen ist.


als Antwort auf: [#475922]

Kalender Ferien kennzeichnen Script umschreiben

jayeassy
Beiträge gesamt: 19

14. Jul 2011, 07:24
Beitrag # 8 von 25
Beitrag ID: #475930
Bewertung:
(7385 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
also der kalender ist mit Datenzusammenführung erstellt. Das Thema Zeichenformat ist schwierig. Dann kann ich es ja gleich per Hand setzen, da die Tage, Wochentage, Feiertag unterschiedliche Zeichenformate haben und in einer Zelle mit Tabs getrennt sind (sonst funktioniert Grep nicht). Deswegen sollte das Script nicht das Zeichenformat suchen sondern das Datum! Daher wäre es schön, wenn man einfach mehrere Zeitspannen eingeben könnte und diese Zellen dann hinterlegt werden.
LG
Jayeassy


als Antwort auf: [#475922]
(Dieser Beitrag wurde von jayeassy am 14. Jul 2011, 07:34 geändert)

Kalender Ferien kennzeichnen Script umschreiben

WernerPerplies
Beiträge gesamt: 2730

14. Jul 2011, 07:57
Beitrag # 9 von 25
Beitrag ID: #475932
Bewertung:
(7368 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

spricht etwas dagegen, den Kalender direkt mit Javascript zu erzeugen?

Dann hat man schon jeden einzelnen Tag und kann ihn gegen Sonn- und Feiertage und jedes beliebige Datum abgleichen und mit den notwendigen Formaten versehen.


als Antwort auf: [#475930]

Kalender Ferien kennzeichnen Script umschreiben

jayeassy
Beiträge gesamt: 19

14. Jul 2011, 08:05
Beitrag # 10 von 25
Beitrag ID: #475933
Bewertung:
(7361 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hey,
Danke für deinen Vorschlag, aber
hast du dafür auch das passende Script dazu?

http://www.dtp-blog.de/workshops/kalender-in-indesign-cs4-mit-hilfe-von-excel-erstellen-teil-1

http://www.dtp-blog.de/workshops/kalender-in-indesign-cs4-mit-hilfe-von-excel-erstellen-teil-2

so ist der Kalender aufgebaut!

LG


als Antwort auf: [#475932]
(Dieser Beitrag wurde von jayeassy am 14. Jul 2011, 08:16 geändert)

Kalender Ferien kennzeichnen Script umschreiben

WernerPerplies
Beiträge gesamt: 2730

14. Jul 2011, 08:15
Beitrag # 11 von 25
Beitrag ID: #475934
Bewertung:
(7352 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
nein, aber ich könnte es kurzfristig liefern.
Verrate mir doch einmal, was für einen Kalender Du möchtest:

Jahreskalender (Jahresübersicht), Terminkalender, Monatskalender, Tageskalender, ...

Jetzt habe ich doch die Links übersehen, ich schaue mir das gerade mal an.


als Antwort auf: [#475933]
(Dieser Beitrag wurde von WernerPerplies am 14. Jul 2011, 08:22 geändert)

Kalender Ferien kennzeichnen Script umschreiben

jayeassy
Beiträge gesamt: 19

14. Jul 2011, 08:22
Beitrag # 12 von 25
Beitrag ID: #475935
Bewertung:
(7343 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Okey:

einen Wandplaner, also Monatsspalten – für dieses Jahr z.B.: Dez 2011 dann alle zwölf für 2012 und noch Jan 2013 (also 14 Monate) mit Feiertage, Kalenderwochen, Sams- und Sonntage sollen farblich unterlegt sein und was mir eig. nur noch fehlt: BW-Ferien sollen auch hinterlegt werden. Wenn du, dass alles hinbekommst – bist hen Schatz ;)
LG


als Antwort auf: [#475934]

Kalender Ferien kennzeichnen Script umschreiben

WernerPerplies
Beiträge gesamt: 2730

14. Jul 2011, 08:35
Beitrag # 13 von 25
Beitrag ID: #475936
Bewertung:
(7335 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Okay, angeschaut, das ist mir alles viel zu kompliziert:

Ich bräuchte entweder einen alten fertig gesetzten Kalender, oder besser einen fertigen Kalender mit Platzhaltern:

Platzhalter z. Zt. so::
::Year::
::Month::
::Week::
::Day::

benötigte Formate.

Als Musterseiten, Mustertabellen usw.

Das alles wäre bei Bedarf erweiterbar.

Weitere Einzelheiten müssten ggf. noch geklärt werden.


als Antwort auf: [#475933]

Kalender Ferien kennzeichnen Script umschreiben

Martin Fischer
  
Beiträge gesamt: 12732

14. Jul 2011, 09:57
Beitrag # 14 von 25
Beitrag ID: #475949
Bewertung:
(7292 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mir ist, als wären wir oben bereits mehrfach an diesem Punkt gestanden.
Warum nur gestaltet sich die Überlassung von Mustern an Skripter, die deutlich vernehmbar mit den Hufen scharren, so kompliziert?

Immerhin darf ich für die freundliche Ablösung danken. ;-)
Viel Erfolg!


als Antwort auf: [#475936]

Kalender Ferien kennzeichnen Script umschreiben

jayeassy
Beiträge gesamt: 19

15. Jul 2011, 10:25
Beitrag # 15 von 25
Beitrag ID: #476026
Bewertung: ||
(7231 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo nochmal zusammen,

mir wäre es am liebsten wenn man des oben genannte script einfach umschreiben würde... weil sonst alles passt. könnte das jemand für mich machen?


als Antwort auf: [#475949]
X