[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Bildnummerierung von verankerten Objekten in einer Tabelle

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

Bildnummerierung von verankerten Objekten in einer Tabelle

juma68
Beiträge gesamt: 31

12. Jan 2012, 19:15
Beitrag # 1 von 10
Bewertung:
(2888 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin, moin...

Ich habe eine Tabelle in der Bilder bzw. Bildgruppen (Textrahmen für Bildnummer und Bild mit dem gemeinsamem Etikett "Gruppe") verankert sind und will diese automatisch nummerieren lassen. Es steht leider nicht in jeder Zeile ein Bild, dann hätte ich das schon hin. Ich hab das jetzt so gelöst, das klappt aber leider nicht in CS5. Die Adressierung der Spalte, wo die Bildnummer hin muss, ist okay. Die Bildgruppe findet das Script auch. Aber er hat irgendein Problem mit "allPageItems" in der Zelle.

Hier ein Teil des Scripts:

//Tabellennummerierung
myZaehler = 1;
for (var i=0; i<mySpalten.length; i++) {
if (mySpalten.cells[0].label == "TabelleBildnummer") {
mySpalteBildnummer = mySpalten;
}
}
for (var i=0;i<myReihen.length; i++){
var myReihenzellen = myReihen.cells[0];
var myZelleninhalt=myReihenzellen.allPageItems;
for (c = 0; c < myZelleninhalt.length; b++){
if (myZelleninhalt[c].label == 'Gruppe' ){
mySpalteBildnummer.cells.contents = myZaehler +"";
myZaehler = myZaehler+1;
}
}
}

Gibt es irgendeinen anderen Weg? Hab ich da irgendeinen dicken Fehler drin??
Wäre super, wenn da jemand eine Idee hat.

Gruß
Juma
X

Bildnummerierung von verankerten Objekten in einer Tabelle

Hans Haesler
  
Beiträge gesamt: 5818

12. Jan 2012, 23:07
Beitrag # 2 von 10
Beitrag ID: #487809
Bewertung:
(2859 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Juma,

da sind mindestens zwei dicke Fehler drin.

Der erste (nur hier im Forum sichtbar) ist der Zähler [i], welcher in der Zeile 4 verschwindet und den folgenden Text kursiv formatiert.
Der zweite ist in Zeile 11 wo die Variable c am Schluss als b hochgezählt wird.

Nachstehend sind diese beiden Fehler schon mal korrigiert.

Code
//Tabellennummerierung  
myZaehler = 1;
for (var i=0; i<mySpalten.length; i++) {
if (mySpalten[i].cells[0].label == "TabelleBildnummer") {
mySpalteBildnummer = mySpalten;
}
}
for (var i=0;i<myReihen.length; i++) {
var myReihenzellen = myReihen.cells[0];
var myZelleninhalt = myReihenzellen.allPageItems;
for (c=0; c<myZelleninhalt.length; c++) {
if (myZelleninhalt[c].label == 'Gruppe') {
mySpalteBildnummer.cells.contents = myZaehler +"";
myZaehler = myZaehler+1;
}
}
}

Gruss, Hans


als Antwort auf: [#487804]

Bildnummerierung von verankerten Objekten in einer Tabelle

juma68
Beiträge gesamt: 31

13. Jan 2012, 10:03
Beitrag # 3 von 10
Beitrag ID: #487814
Bewertung:
(2824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans... vielen Dank für deine Antwort.
Ich, blindes Huhn (schämt sich so als Setzer gleich doppelt), hab das mit dem italic übersehen, aber dass das Forum da bold gemacht hat, hab ich erkannt und dann alle b's (bis auf das eine) ausgetauscht. Also das war nicht der Fehler... das Script läuft auch ohne Fehlermeldung durch, schreibt mir nur nichts in diese Nummerierungsspalte rein.

Aber ich hatte heute nacht (gähn) eine andere Idee und werd die gleich mal ausprobieren und auch berichten... ;-)

Juma


als Antwort auf: [#487809]

Bildnummerierung von verankerten Objekten in einer Tabelle

Hans Haesler
  
Beiträge gesamt: 5818

13. Jan 2012, 10:24
Beitrag # 4 von 10
Beitrag ID: #487816
Bewertung:
(2818 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Juma,

ich habe nicht versucht, ein Testdokument zu bauen.

Aber hier mein Angebot: Wenn Du mir ein Dokument zustellst, dann werde ich versuchen, eine Lösung zu finden.

Gruss, Hans


als Antwort auf: [#487814]

Bildnummerierung von verankerten Objekten in einer Tabelle

juma68
Beiträge gesamt: 31

13. Jan 2012, 10:36
Beitrag # 5 von 10
Beitrag ID: #487817
Bewertung:
(2806 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, Hans... das Angebot werd ich wohl fast annehmen müssen... :-))

Ich hab hier noch eine zweite Variante wie ich an die Zeilen komm, in der diese verankerten Gruppen stehen.

Code
myZaehler=1; 
var myBildreihen = new Array();
for (var i=0; i<myGruppenrahmen.length; i++){
myBildreihen.push(myGruppenrahmen[i].parentRow);
}

for (var i=0; i<myBildreihen.length; i++) {
var myReihenzellen = myBildreihen[i].cells;
for (var a=0; a<myReihenzellen.length; a++){
if (myReihenzellen[a].label == "TabelleBildnummer") {
myReihenzellen[a].contents=myZaehler+"";
myZaehler=myZaehler+1;
}
}
}


Da krieg ich aber gleich eine Fehlermeldung, das "parentRow" nicht unterstützt wird. Und daher ist das Array auch leer.

Wenn du da vielleicht noch mal raufschauen magst?? Ansonsten würd ich dir einfach gern mein Script (aber nicht lachen, ich hab mir Mühe gegeben, ist mein zweites :-)) und das Dokument schicken.

Danke
Juma


als Antwort auf: [#487816]

Bildnummerierung von verankerten Objekten in einer Tabelle

Hans Haesler
  
Beiträge gesamt: 5818

13. Jan 2012, 10:46
Beitrag # 6 von 10
Beitrag ID: #487818
Bewertung:
(2792 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Juma,

ich bin zur Zeit unterwegs und werde mich erst im Laufe des Nachmittags darum kümmern können.

Aber ein Testdokument wäre schon sehr willkommen. Besten Dank im voraus.

Gruss, Hans


als Antwort auf: [#487817]

Bildnummerierung von verankerten Objekten in einer Tabelle

Hans Haesler
  
Beiträge gesamt: 5818

15. Jan 2012, 22:46
Beitrag # 7 von 10
Beitrag ID: #487874
Bewertung:
(2708 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Juma,

ich bedanke mich für die Testdokumente. Das war für diese komplexe Aufgabe wirklich hilfreich.

Vorerst wollte nichts gelingen. Doch schliesslich fand ich eine Lösung: Die verankerten Gruppen manuell lösen und erneut verankern. Und dann werden die Nummern wie erwartet in die Tabelle eingefügt.

Wie gesagt: eine Lösung. Aber die Ursache, weshalb es ohne dieses manuelle Auffrischen nicht klappen will, ist rätselhaft.

Gruss, Hans


als Antwort auf: [#487818]

Bildnummerierung von verankerten Objekten in einer Tabelle

juma68
Beiträge gesamt: 31

16. Jan 2012, 16:47
Beitrag # 8 von 10
Beitrag ID: #487909
Bewertung:
(2663 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans...

du kannst da bestimmt meine Verzweifelung als Newbie verstehen, aber jetzt funktioniert es wunderbar. Und bringt mir das nur halb eigen verdiente Lob der Kollegen ein, weil uns das bestimmt 25% Zeit spart, wenn nicht sogar mehr.

Mein Dank wird Dir immer hinterher laufen, bzw. kommt per Post... :-)

Juma


als Antwort auf: [#487874]

Bildnummerierung von verankerten Objekten in einer Tabelle

Hans Haesler
  
Beiträge gesamt: 5818

16. Jan 2012, 21:59
Beitrag # 9 von 10
Beitrag ID: #487924
Bewertung:
(2631 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo juma,

bitteschön, gern geschehen. Danke im voraus für die Postsendung.

Das Lob der Kollegen gehört Dir mehr als nur zur Hälfte. Dein Script funktionierte wie vorgesehen. Nur wegen des Zustands des Dokuments wollte es nicht klappen.

Beim Script habe ich einzig ein paar kosmetische Korrekturen angebracht. Und ein 'break' eingefügt, damit die Schleife verlassen wird, sobald die Spalte "Bildnummer" gefunden und geleert wurde. Nachstehend eine Kurzfassung.

Code
try { 
var myObjekte = app.selection[0].allPageItems;
}
catch (e) {
alert ("Einen Textrahmen auswählen.");
exit();
}
var myTabelle = app.selection[0].tables;
var myReihen = myTabelle[0].rows;
var mySpalten = myTabelle[0].columns;
var myZaehler = 1;

// Bildnummernrahmen nummerieren
for (var i=0; i<myObjekte.length; i++) {
if (myObjekte[i].label == "Bildnummer") {
myObjekte[i].contents = "" + myZaehler;
myZaehler++;
}
}

//Tabellennummerierung
myZaehler = 1;
for (var i=0; i<mySpalten.length; i++) {
if (mySpalten[i].cells[0].label == "TabelleBildnummer") {
mySpalteBildnummer = mySpalten[i];
// Tabellennummern löschen
mySpalteBildnummer.cells.itemByRange(2,myReihen.length-1).contents = "";
break;
}
}
for (var i=0; i<myReihen.length; i++) {
var myZelleninhalt = myReihen[i].cells[0].pageItems;
for (b=0; b<myZelleninhalt.length; b++) {
if (myZelleninhalt[b].label == "Gruppe") {
mySpalteBildnummer.cells[i].contents = "" + myZaehler;
myZaehler++;
}
}
}

Voraussetzungen:
– Ein Textrahmen, welcher eine Tabelle enthält, ist ausgewählt.
– In der Tabelle ist in den je ersten Zellen bestimmter Reihen eine Gruppe verankert.
– Jede Gruppe besteht aus einem Bild- und einem Textrahmen (Etikett "Bildnummer") und ist mit dem Etikett "Gruppe" versehen.
– In einer bestimmten Spalte (z.B. der dritten) ist jede Zelle mit dem Etikett "TabelleBildnummer" benannt.

Das Script setzt die aktuelle Nummer in den entsprechenden "Bildnummer"-Rahmen und auch in der Zelle "TabelleBildnummer", in der Reihe, in welcher die Gruppe verankert ist.

Gruss, Hans


als Antwort auf: [#487909]

Bildnummerierung von verankerten Objekten in einer Tabelle

Hans Haesler
  
Beiträge gesamt: 5818

17. Jan 2012, 20:50
Beitrag # 10 von 10
Beitrag ID: #487995
Bewertung:
(2580 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo juma,

aufgepasst: Das Ergebnis des Scriptlaufs kann nur in Ordnung sein, wenn die Schichtung (= Z-Achse) der Gruppen nicht durch manuelles Hantieren durcheinandergebracht wird.

Darum sollte die Nummerierung des Bildes und der Bildnummer-Zelle in derselben Schleife und mit demselben Zählerwert erfolgen.

Code
try { 
mySelection = app.selection[0];
}
catch (e) {
alert ("Einen Textrahmen auswählen.");
exit();
}
try {
var myTabelle = mySelection.tables;
}
catch (e) {
alert ("Einen Textrahmen auswählen.");
exit();
}
if (myTabelle.length == 0) {
alert ("Der Textrahmen enthält keine Tabelle.");
exit();
}
var myReihen = myTabelle[0].rows;
var mySpalten = myTabelle[0].columns;
var myZaehler = 1;

//Tabellennummerierung
for (var i=0; i<mySpalten.length; i++) {
if (mySpalten[i].cells[0].label == "TabelleBildnummer") {
mySpalteBildnummer = mySpalten[i];
// Tabellennummern löschen
mySpalteBildnummer.cells.itemByRange(2,myReihen.length-1).contents = "";
break;
}
}
for (var i=0; i<myReihen.length; i++) {
var myZelleninhalt = myReihen[i].cells[0].allPageItems;
for (b=0; b<myZelleninhalt.length; b++) {
if (myZelleninhalt[b].label == "Bildnummer") {
// Bildnummernrahmen nummerieren
myZelleninhalt[b].contents = "" + myZaehler;
// Nummer in die Zelle "TabelleBildnummer" setzen
mySpalteBildnummer.cells[i].contents = "" + myZaehler;
myZaehler++;
}
}
}

Für interessierte Mitleser: Das angehängte Demo-Dokument erlaubt, die Aufgabe besser zu verstehen.

Gruss, Hans


als Antwort auf: [#487924]
Anhang:
Bildnummerierung.idml (39.7 KB)
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/