Highlighted

Script error number 21

Community Beginner ,
May 25, 2020

Copy link to clipboard

Copied

Hello, I've been trying to change strokes across several pages without having to change styles and found this thread to be helpful: https://community.adobe.com/t5/indesign/script-to-find-change-stroke-in-tables/td-p/4315033?page=1 

 

But when I was trying to test run the script, it returns the error message as shown below.

 

Screenshot 2020-05-26 at 05.17.39.png

 

 

I have no idea what's going on. Could someone be kind enough to take a look at the code? Please help. Thank you so much!

 

myDialog = app.dialogs.add ({name:"Recolor Tables",canCancel:true});  


swatchlist = app.activeDocument.swatches.everyItem().name;  


with (myDialog)  


{  


 with (dialogColumns.add())  


 {  


  with (borderPanels.add())  


  {  


   staticTexts.add ({staticLabel:"Find"});  


   swf = dropdowns.add ({stringList:swatchlist, selectedIndex:0});  


   tbf = percentComboboxes.add({editValue:100, largeNudge:10, stringList:["25", "50", "75", "100"] });  


   tbfStrk = measurementEditboxes.add({editValue:0.5});  


  }  


  with (borderPanels.add())  


  {  


   staticTexts.add ({staticLabel:"Replace"});  


   swr = dropdowns.add ({stringList:swatchlist, selectedIndex:0});  


   tbr = percentComboboxes.add({editValue:100, largeNudge:10, stringList:["25", "50", "75", "100"] });  


   tbrStrk = measurementEditboxes.add({editValue:0.33});  


  }  


  with (borderPanels.add())  


  {  


   dostrokes = checkboxControls.add({staticLabel:"Change strokes", checkedState:true});  


   dofills = checkboxControls.add({staticLabel:"Change fills", checkedState:true});  


  }  


 }  


}  


if (!myDialog.show() || !(dostrokes.checkedState || dofills.checkedState))  


{  


 myDialog.destroy();  


 exit(0);  


}  


findtint = tbf.editValue;  


findStrk = tbfStrk.editValue;  


findswatch = app.activeDocument.swatches.item(swf.selectedIndex);  


changetint = tbr.editValue;  


changeStrk = tbrStrk.editValue;  


changeswatch = app.activeDocument.swatches.item(swr.selectedIndex);  


strokes = dostrokes.checkedState;  


fills = dofills.checkedState;  


fillchanges = 0;  


strokechanges = 0;  


tb = app.activeDocument.stories.everyItem().tables.everyItem().getElements();  


 for (t=tb.length-1; t>=0; t--)  


 {  


  tab = tb;  


  for (c=0; c<tab.cells.length; c++)  


  {  


   if (fills && tab.cells.fillColor == findswatch && tab.cells.fillTint == findtint)  


   {  


    fillchanges++;  


    tab.cells.properties = {fillColor:changeswatch, fillTint:changetint};  


   }  


   if (strokes)  


   {  


    s = false;  


    if (tab.cells.topEdgeStrokeColor == findswatch && tab.cells.topEdgeStrokeTint == findtint && tab.cells.topEdgeStrokeWeight == findStrk)  


    {  


     s = true;  


     tab.cells.properties = {topEdgeStrokeColor:changeswatch, topEdgeStrokeTint:changetint, topEdgeStrokeWeight:changeStrk};  


    }  


    if (tab.cells.bottomEdgeStrokeColor == findswatch && tab.cells.bottomEdgeStrokeTint == findtint && tab.cells.bottomEdgeStrokeWeight == findStrk)  


    {  


     s = true;  


     tab.cells.properties = {bottomEdgeStrokeColor:changeswatch, bottomEdgeStrokeTint:changetint, bottomEdgeStrokeWeight:changeStrk};  


    }  


    if (tab.cells.leftEdgeStrokeColor == findswatch && tab.cells.leftEdgeStrokeTint == findtint && tab.cells.leftEdgeStrokeWeight == findStrk)  


    {  


     s = true;  


     tab.cells.properties = {leftEdgeStrokeColor:changeswatch, leftEdgeStrokeTint:changetint, leftEdgeStrokeWeight:changeStrk};  


    }  


    if (tab.cells.rightEdgeStrokeColor == findswatch && tab.cells.rightEdgeStrokeTint == findtint && tab.cells.rightEdgeStrokeWeight == findStrk)  


    {  


     s = true;  


     tab.cells.properties = {rightEdgeStrokeColor:changeswatch, rightEdgeStrokeTint:changetint, rightEdgeStrokeWeight:changeStrk};  


    }  


    if (s)  


     strokechanges++;  


   }  


  }  


}


ch = "No changes made";  


if (fillchanges)  


{  


 ch = fillchanges+" fills changed";  


 if (strokechanges)  


  ch += "\n"+strokechanges+" strokes changed";  


} else if (strokechanges)  


  ch = strokechanges+" strokes changed";  


alert (ch); 

 

Adobe Community Professional
Correct answer by Manan Joshi | Adobe Community Professional

Seems like the code was broken when we shifted to the new forum software, i have fixed the code and it should work now

myDialog = app.dialogs.add({ name: "Recolor Tables", canCancel: true });
swatchlist = app.activeDocument.swatches.everyItem().name;
with (myDialog) {
    with (dialogColumns.add()) {
        with (borderPanels.add()) {
            staticTexts.add({ staticLabel: "Find" });
            swf = dropdowns.add({ stringList: swatchlist, selectedIndex: 0 });
            tbf = percentComboboxes.add({ editValue: 100, largeNudge: 10, stringList: ["25", "50", "75", "100"] });
            tbfStrk = measurementEditboxes.add({ editValue: 0.5 });
        }
        with (borderPanels.add()) {
            staticTexts.add({ staticLabel: "Replace" });
            swr = dropdowns.add({ stringList: swatchlist, selectedIndex: 0 });
            tbr = percentComboboxes.add({ editValue: 100, largeNudge: 10, stringList: ["25", "50", "75", "100"] });
            tbrStrk = measurementEditboxes.add({ editValue: 0.33 });
        }
        with (borderPanels.add()) {
            dostrokes = checkboxControls.add({ staticLabel: "Change strokes", checkedState: true });
            dofills = checkboxControls.add({ staticLabel: "Change fills", checkedState: true });
        }
    }
}
if (!myDialog.show() || !(dostrokes.checkedState || dofills.checkedState)) {
    myDialog.destroy();
    exit(0);
}
findtint = tbf.editValue;
findStrk = tbfStrk.editValue;
findswatch = app.activeDocument.swatches.item(swf.selectedIndex);
changetint = tbr.editValue;
changeStrk = tbrStrk.editValue;
changeswatch = app.activeDocument.swatches.item(swr.selectedIndex);
strokes = dostrokes.checkedState;
fills = dofills.checkedState;
fillchanges = 0;
strokechanges = 0;
tb = app.activeDocument.stories.everyItem().tables.everyItem().getElements();
for (t = tb.length - 1; t >= 0; t--) {
    tab = tb[t];
    for (c = 0; c < tab.cells.length; c++) {
        if (fills && tab.cells[c].fillColor == findswatch && tab.cells[c].fillTint == findtint) {
            fillchanges++;
            tab.cells[c].properties = { fillColor: changeswatch, fillTint: changetint };
        }
        if (strokes) {
            s = false;
            if (tab.cells[c].topEdgeStrokeColor == findswatch && tab.cells[c].topEdgeStrokeTint == findtint && tab.cells[c].topEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { topEdgeStrokeColor: changeswatch, topEdgeStrokeTint: changetint, topEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].bottomEdgeStrokeColor == findswatch && tab.cells[c].bottomEdgeStrokeTint == findtint && tab.cells[c].bottomEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { bottomEdgeStrokeColor: changeswatch, bottomEdgeStrokeTint: changetint, bottomEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].leftEdgeStrokeColor == findswatch && tab.cells[c].leftEdgeStrokeTint == findtint && tab.cells[c].leftEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { leftEdgeStrokeColor: changeswatch, leftEdgeStrokeTint: changetint, leftEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].rightEdgeStrokeColor == findswatch && tab.cells[c].rightEdgeStrokeTint == findtint && tab.cells[c].rightEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { rightEdgeStrokeColor: changeswatch, rightEdgeStrokeTint: changetint, rightEdgeStrokeWeight: changeStrk };
            }
            if (s)
                strokechanges++;
        }
    }
}
ch = "No changes made";
if (fillchanges) {
    ch = fillchanges + " fills changed";
    if (strokechanges)
        ch += "\n" + strokechanges + " strokes changed";
} else if (strokechanges)
    ch = strokechanges + " strokes changed";
alert(ch);

 

Please update if it works so that we can post the correction on the original thread as well

 

-Manan

TOPICS
How to, Scripting

Views

358

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

Script error number 21

Community Beginner ,
May 25, 2020

Copy link to clipboard

Copied

Hello, I've been trying to change strokes across several pages without having to change styles and found this thread to be helpful: https://community.adobe.com/t5/indesign/script-to-find-change-stroke-in-tables/td-p/4315033?page=1 

 

But when I was trying to test run the script, it returns the error message as shown below.

 

Screenshot 2020-05-26 at 05.17.39.png

 

 

I have no idea what's going on. Could someone be kind enough to take a look at the code? Please help. Thank you so much!

 

myDialog = app.dialogs.add ({name:"Recolor Tables",canCancel:true});  


swatchlist = app.activeDocument.swatches.everyItem().name;  


with (myDialog)  


{  


 with (dialogColumns.add())  


 {  


  with (borderPanels.add())  


  {  


   staticTexts.add ({staticLabel:"Find"});  


   swf = dropdowns.add ({stringList:swatchlist, selectedIndex:0});  


   tbf = percentComboboxes.add({editValue:100, largeNudge:10, stringList:["25", "50", "75", "100"] });  


   tbfStrk = measurementEditboxes.add({editValue:0.5});  


  }  


  with (borderPanels.add())  


  {  


   staticTexts.add ({staticLabel:"Replace"});  


   swr = dropdowns.add ({stringList:swatchlist, selectedIndex:0});  


   tbr = percentComboboxes.add({editValue:100, largeNudge:10, stringList:["25", "50", "75", "100"] });  


   tbrStrk = measurementEditboxes.add({editValue:0.33});  


  }  


  with (borderPanels.add())  


  {  


   dostrokes = checkboxControls.add({staticLabel:"Change strokes", checkedState:true});  


   dofills = checkboxControls.add({staticLabel:"Change fills", checkedState:true});  


  }  


 }  


}  


if (!myDialog.show() || !(dostrokes.checkedState || dofills.checkedState))  


{  


 myDialog.destroy();  


 exit(0);  


}  


findtint = tbf.editValue;  


findStrk = tbfStrk.editValue;  


findswatch = app.activeDocument.swatches.item(swf.selectedIndex);  


changetint = tbr.editValue;  


changeStrk = tbrStrk.editValue;  


changeswatch = app.activeDocument.swatches.item(swr.selectedIndex);  


strokes = dostrokes.checkedState;  


fills = dofills.checkedState;  


fillchanges = 0;  


strokechanges = 0;  


tb = app.activeDocument.stories.everyItem().tables.everyItem().getElements();  


 for (t=tb.length-1; t>=0; t--)  


 {  


  tab = tb;  


  for (c=0; c<tab.cells.length; c++)  


  {  


   if (fills && tab.cells.fillColor == findswatch && tab.cells.fillTint == findtint)  


   {  


    fillchanges++;  


    tab.cells.properties = {fillColor:changeswatch, fillTint:changetint};  


   }  


   if (strokes)  


   {  


    s = false;  


    if (tab.cells.topEdgeStrokeColor == findswatch && tab.cells.topEdgeStrokeTint == findtint && tab.cells.topEdgeStrokeWeight == findStrk)  


    {  


     s = true;  


     tab.cells.properties = {topEdgeStrokeColor:changeswatch, topEdgeStrokeTint:changetint, topEdgeStrokeWeight:changeStrk};  


    }  


    if (tab.cells.bottomEdgeStrokeColor == findswatch && tab.cells.bottomEdgeStrokeTint == findtint && tab.cells.bottomEdgeStrokeWeight == findStrk)  


    {  


     s = true;  


     tab.cells.properties = {bottomEdgeStrokeColor:changeswatch, bottomEdgeStrokeTint:changetint, bottomEdgeStrokeWeight:changeStrk};  


    }  


    if (tab.cells.leftEdgeStrokeColor == findswatch && tab.cells.leftEdgeStrokeTint == findtint && tab.cells.leftEdgeStrokeWeight == findStrk)  


    {  


     s = true;  


     tab.cells.properties = {leftEdgeStrokeColor:changeswatch, leftEdgeStrokeTint:changetint, leftEdgeStrokeWeight:changeStrk};  


    }  


    if (tab.cells.rightEdgeStrokeColor == findswatch && tab.cells.rightEdgeStrokeTint == findtint && tab.cells.rightEdgeStrokeWeight == findStrk)  


    {  


     s = true;  


     tab.cells.properties = {rightEdgeStrokeColor:changeswatch, rightEdgeStrokeTint:changetint, rightEdgeStrokeWeight:changeStrk};  


    }  


    if (s)  


     strokechanges++;  


   }  


  }  


}


ch = "No changes made";  


if (fillchanges)  


{  


 ch = fillchanges+" fills changed";  


 if (strokechanges)  


  ch += "\n"+strokechanges+" strokes changed";  


} else if (strokechanges)  


  ch = strokechanges+" strokes changed";  


alert (ch); 

 

Adobe Community Professional
Correct answer by Manan Joshi | Adobe Community Professional

Seems like the code was broken when we shifted to the new forum software, i have fixed the code and it should work now

myDialog = app.dialogs.add({ name: "Recolor Tables", canCancel: true });
swatchlist = app.activeDocument.swatches.everyItem().name;
with (myDialog) {
    with (dialogColumns.add()) {
        with (borderPanels.add()) {
            staticTexts.add({ staticLabel: "Find" });
            swf = dropdowns.add({ stringList: swatchlist, selectedIndex: 0 });
            tbf = percentComboboxes.add({ editValue: 100, largeNudge: 10, stringList: ["25", "50", "75", "100"] });
            tbfStrk = measurementEditboxes.add({ editValue: 0.5 });
        }
        with (borderPanels.add()) {
            staticTexts.add({ staticLabel: "Replace" });
            swr = dropdowns.add({ stringList: swatchlist, selectedIndex: 0 });
            tbr = percentComboboxes.add({ editValue: 100, largeNudge: 10, stringList: ["25", "50", "75", "100"] });
            tbrStrk = measurementEditboxes.add({ editValue: 0.33 });
        }
        with (borderPanels.add()) {
            dostrokes = checkboxControls.add({ staticLabel: "Change strokes", checkedState: true });
            dofills = checkboxControls.add({ staticLabel: "Change fills", checkedState: true });
        }
    }
}
if (!myDialog.show() || !(dostrokes.checkedState || dofills.checkedState)) {
    myDialog.destroy();
    exit(0);
}
findtint = tbf.editValue;
findStrk = tbfStrk.editValue;
findswatch = app.activeDocument.swatches.item(swf.selectedIndex);
changetint = tbr.editValue;
changeStrk = tbrStrk.editValue;
changeswatch = app.activeDocument.swatches.item(swr.selectedIndex);
strokes = dostrokes.checkedState;
fills = dofills.checkedState;
fillchanges = 0;
strokechanges = 0;
tb = app.activeDocument.stories.everyItem().tables.everyItem().getElements();
for (t = tb.length - 1; t >= 0; t--) {
    tab = tb[t];
    for (c = 0; c < tab.cells.length; c++) {
        if (fills && tab.cells[c].fillColor == findswatch && tab.cells[c].fillTint == findtint) {
            fillchanges++;
            tab.cells[c].properties = { fillColor: changeswatch, fillTint: changetint };
        }
        if (strokes) {
            s = false;
            if (tab.cells[c].topEdgeStrokeColor == findswatch && tab.cells[c].topEdgeStrokeTint == findtint && tab.cells[c].topEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { topEdgeStrokeColor: changeswatch, topEdgeStrokeTint: changetint, topEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].bottomEdgeStrokeColor == findswatch && tab.cells[c].bottomEdgeStrokeTint == findtint && tab.cells[c].bottomEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { bottomEdgeStrokeColor: changeswatch, bottomEdgeStrokeTint: changetint, bottomEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].leftEdgeStrokeColor == findswatch && tab.cells[c].leftEdgeStrokeTint == findtint && tab.cells[c].leftEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { leftEdgeStrokeColor: changeswatch, leftEdgeStrokeTint: changetint, leftEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].rightEdgeStrokeColor == findswatch && tab.cells[c].rightEdgeStrokeTint == findtint && tab.cells[c].rightEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { rightEdgeStrokeColor: changeswatch, rightEdgeStrokeTint: changetint, rightEdgeStrokeWeight: changeStrk };
            }
            if (s)
                strokechanges++;
        }
    }
}
ch = "No changes made";
if (fillchanges) {
    ch = fillchanges + " fills changed";
    if (strokechanges)
        ch += "\n" + strokechanges + " strokes changed";
} else if (strokechanges)
    ch = strokechanges + " strokes changed";
alert(ch);

 

Please update if it works so that we can post the correction on the original thread as well

 

-Manan

TOPICS
How to, Scripting

Views

359

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
May 25, 2020 0
Adobe Community Professional ,
May 25, 2020

Copy link to clipboard

Copied

Seems like the code was broken when we shifted to the new forum software, i have fixed the code and it should work now

myDialog = app.dialogs.add({ name: "Recolor Tables", canCancel: true });
swatchlist = app.activeDocument.swatches.everyItem().name;
with (myDialog) {
    with (dialogColumns.add()) {
        with (borderPanels.add()) {
            staticTexts.add({ staticLabel: "Find" });
            swf = dropdowns.add({ stringList: swatchlist, selectedIndex: 0 });
            tbf = percentComboboxes.add({ editValue: 100, largeNudge: 10, stringList: ["25", "50", "75", "100"] });
            tbfStrk = measurementEditboxes.add({ editValue: 0.5 });
        }
        with (borderPanels.add()) {
            staticTexts.add({ staticLabel: "Replace" });
            swr = dropdowns.add({ stringList: swatchlist, selectedIndex: 0 });
            tbr = percentComboboxes.add({ editValue: 100, largeNudge: 10, stringList: ["25", "50", "75", "100"] });
            tbrStrk = measurementEditboxes.add({ editValue: 0.33 });
        }
        with (borderPanels.add()) {
            dostrokes = checkboxControls.add({ staticLabel: "Change strokes", checkedState: true });
            dofills = checkboxControls.add({ staticLabel: "Change fills", checkedState: true });
        }
    }
}
if (!myDialog.show() || !(dostrokes.checkedState || dofills.checkedState)) {
    myDialog.destroy();
    exit(0);
}
findtint = tbf.editValue;
findStrk = tbfStrk.editValue;
findswatch = app.activeDocument.swatches.item(swf.selectedIndex);
changetint = tbr.editValue;
changeStrk = tbrStrk.editValue;
changeswatch = app.activeDocument.swatches.item(swr.selectedIndex);
strokes = dostrokes.checkedState;
fills = dofills.checkedState;
fillchanges = 0;
strokechanges = 0;
tb = app.activeDocument.stories.everyItem().tables.everyItem().getElements();
for (t = tb.length - 1; t >= 0; t--) {
    tab = tb[t];
    for (c = 0; c < tab.cells.length; c++) {
        if (fills && tab.cells[c].fillColor == findswatch && tab.cells[c].fillTint == findtint) {
            fillchanges++;
            tab.cells[c].properties = { fillColor: changeswatch, fillTint: changetint };
        }
        if (strokes) {
            s = false;
            if (tab.cells[c].topEdgeStrokeColor == findswatch && tab.cells[c].topEdgeStrokeTint == findtint && tab.cells[c].topEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { topEdgeStrokeColor: changeswatch, topEdgeStrokeTint: changetint, topEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].bottomEdgeStrokeColor == findswatch && tab.cells[c].bottomEdgeStrokeTint == findtint && tab.cells[c].bottomEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { bottomEdgeStrokeColor: changeswatch, bottomEdgeStrokeTint: changetint, bottomEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].leftEdgeStrokeColor == findswatch && tab.cells[c].leftEdgeStrokeTint == findtint && tab.cells[c].leftEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { leftEdgeStrokeColor: changeswatch, leftEdgeStrokeTint: changetint, leftEdgeStrokeWeight: changeStrk };
            }
            if (tab.cells[c].rightEdgeStrokeColor == findswatch && tab.cells[c].rightEdgeStrokeTint == findtint && tab.cells[c].rightEdgeStrokeWeight == findStrk) {
                s = true;
                tab.cells[c].properties = { rightEdgeStrokeColor: changeswatch, rightEdgeStrokeTint: changetint, rightEdgeStrokeWeight: changeStrk };
            }
            if (s)
                strokechanges++;
        }
    }
}
ch = "No changes made";
if (fillchanges) {
    ch = fillchanges + " fills changed";
    if (strokechanges)
        ch += "\n" + strokechanges + " strokes changed";
} else if (strokechanges)
    ch = strokechanges + " strokes changed";
alert(ch);

 

Please update if it works so that we can post the correction on the original thread as well

 

-Manan

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
May 25, 2020 0
Channers LATEST
Community Beginner ,
May 26, 2020

Copy link to clipboard

Copied

Hi Manan, thank you so much for your help! It worked beautifully. Thank you thank you thank you!!!

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
May 26, 2020 0