Loop through the objects - test links
Hello
I have a script that moves all instances of an object linked according to the defined user X, the values of Y.
To do this, I need to loop through all the objects with links
What is the best way to do it?
From now on, that's what I do:
var g = myDoc.allGraphics; for (var i=0; i<g.length; i++) { if (g[i].itemLink.name == USER_LINK) { g[i].parent.move(undefined, [USER_X, USER_Y]); } }
It works well, however, I ran into a few problems where the link is null
Also, is it always the graph linked, or its parent may be related as well?
If not, then I can just condition that if itemLink == null - continue
Advice and guidance would be much appreciated
Thank you
David
It works well, however, I ran into a few problems where the link is null
if (g[i].itemLink && g[i].itemLink.name == "USER_LINK") // should be enough
Also, is it always the graph linked, or its parent may be related as well?
Graphics can be linked to the ==> itemLink ! = null and itemLink.status may vary
or stuck ==> itemLink == null.
As much as I know the graphic.parent may not be related.
However not all are related graphic.parent can be moved. I e. those who are anchored with
AnchorPosition.INLINE_POSITION and AnchorPosition.ABOVE_LINE
Above the case can be a source of error as well.
Also consider locked object or the layers locked together.
Jarek
Tags: InDesign
Similar Questions
-
Loop through the objects on stage
I know I did this kind of thing before, but I do not remember how... How to navigate through all the objects on a stage to verify their names for a specific substring. On my stage, I have a number of clips with names that end with _a_mc or _b_mc. I want to check for anything that has _a_mc I can change the image of this movieclip.Pipes for... loop must be convenient for that:
for (var obj in _root) {}
trace (obj + ":"+ _root [obj] ");
}Welcome,
blemmo -
loop through the layers defining the lock and visibility
I need to loop through the layers in the active document and the value of the properties of the layer is false or true. I tried to create a loop using a method 'for', but it doesn't seem to work. I have renounced the method 'for' because I kept running into a problem. I have set all layers with these settings just the odd ones (2,4,6, etc.). Here is sample if it was written.
myLayer = myDoc.layers var [2];
myLayer.visible = false;
myLayer.locked = true;
myLayer = myDoc.layers var [4];
myLayer.visible = false;
myLayer.locked = true;
myLayer = myDoc.layers var [6];
myLayer.visible = false;
myLayer.locked = true;
myLayer = myDoc.layers var [8];
myLayer.visible = false;
myLayer.locked = true;
I have 208 layers, so doing it this way would be way to long. Any help would be appreciated.
Illustrator CC 2014 running.
After I wrote this and tested, I saw that Carlos had already answered, but I thought that I would post it anyway. Carlos KNOWS how much I love JS... ;-)
One difference is that, since it was not clear to me which layer you talk like layer #1, I started at the bottom of the scale. I hope this helps. -TT
var aDoc = app.activeDocument; var lc = aDoc.layers.length; for (var i = 2; i <= lc; i+=2) { var curLayer = lc - i aDoc.layers[curLayer].visible = false; aDoc.layers[curLayer].locked = true; }
-
loop through the list in flex 4
I want to loop through the list and apply the following code to each button, the checkbox and the descent down in my application
mouseOver = "animateHover ('theComponentID').
How is that possible?
Hello
This should do what you want, you must add the eventlistener now your animated can be run from the th event handler.
protected function button1_clickHandler(event:MouseEvent):void
{
for (var i: Number = 0; i<>
{
var obj:Object = this.getElementAt (i);
If (flash.utils.getQualifiedClassName (obj) is 'spark.components::Button')
{
(obj as Button) .addEventListener (MouseEvent.MOUSE_OVER, onMouseOver);
}
If (flash.utils.getQualifiedClassName (obj) is 'spark.components::CheckBox')
{
(obj as CheckBox) .addEventListener (MouseEvent.MOUSE_OVER, onMouseOver);
}
}
}
private void onMouseOver(event:MouseEvent):void
{
animateHover (event.currentTarget);
}
-
I have the data into two table with the structure of similar column, I want to loop through the data in these two tables
based on some condition and runtime that I want to put the query in loop for example, the example is given, please help me
create table ab (a number, b varchar2 (20));
Insert into ab
Select rownum, rownum. "" sample "
of the double
connect by level < = 10
create table bc (a number, b varchar2 (20));
Insert into BC.
Select rownum + 1, rownum + 1 | "" sample "
of the double
connect by level < = 10
declare
l_statement varchar2 (2000);
Boolean bool;
Start
bool: = true;
If it is true, then
l_statement: =' select * ab ';
on the other
l_statement: =' select * from bc';
end if
I'm in execute immediate l_statement - something like that, but I don't know
loop
dbms_output.put_line (i.a);
end loop;
end;
Something like that, but this isn't a peace of the code work.
Try this and adapt according to your needs:
declare
l_statement varchar2 (2000);
c SYS_REFCURSOR;
l_a number;
l_b varchar2 (20);
Boolean bool;
Start
bool: = true;
If it is true, then
l_statement: = "select a, b, AB;
on the other
l_statement: = "select a, b from bc;
end if;
--
Open c for l_statement;
--
loop
extract the c in l_a, l_b;
When the output c % notfound;
dbms_output.put_line (l_a |') -' || l_b);
end loop;
close c;
end;
/
-
Loop through the list in flex 4 conclusion d buttons
Anyone know how to completely recursively loops through the list in flex 4 by pulling the bodies of buttons. This way I can apply my effects for buttons on the screen at the same time?
You just create a subclass of button that has the desired effect and use it throughout your application.
Gordon Smith
Adobe Flex SDK team
-
A tap above an object can be used to make the clip through the object?
A tap above an object can be used to make the clip through the object? So that transparency can see through the object.
I have a square that has a line above it. I would like to see the transparent background behind the square in the area occupied by STROKE. Example below:
I would like the white area (which was created using the Brush tool and applying a stroke) to display the transparent background behind the red square - or whatever that fall behind the place.
I have read and tried many tutorials and suggestions on the forum without success. (Group of knockouts, mask opacity, etc...) I even created a much simpler red square with an accident stroke by default and still unable to get transparency through red square.
I'm probably just missing something.
Is this possible using a stoke? Anyone able to help?
Thank you
-Chris
Or:
Stroke (s) select 0) and Ctrl + G for group races if more than one,
(1) with the stroke (s) selected object > decompose the aspect, and
(2) with all selected Pathfinder > Subtract from shape area / less Front according to version.
-
Scripting inDesign: Loop through the layers
I'm doing a script that will:
To loop through all the layers in a document.
Add the layers unlocked in table
Loop in this table and glue them in place on each layer.
I don't know how to loop through all the layers.
Here is my script (I used? to represent where would the loop through all the part of layers):
JavaScript document
Set up a table to keep unlocked layers
var layercollection = [];
Browse layers and unlocked the layercollection table
for (i = 0;? i ++) {}
app.activeDocument.activeLayer = app.activeDocument.layers.itemByName (?);
If (app.documents [0] .layers.) ([i]). Locked) == false;
layercollection.push (Layers.itemByName ([i]))
}
Loop in table layercollection and paste in place
for (i = 0; i < layercollection.length; i ++) {}
app.activeDocument.activeLayer = app.activeDocument.layers.itemByName (tl [i]);
app.pasteInPlace (); Dough
}
Can someone help me complete my script.
Thank you!
Did you test them all your solutions in a real world scenario?
Theoretically, it should work this way (if one ignores that a layer is invisible, too), but even without the problem of invisible layers app.pasteInPlace () prefer to paste into the original layer, if the option "Paste remembers Layers" is checked.
So I recommend you do the following:
var oldPasteRem = app.clipboardPreferences.pasteRemembersLayers; //uncheck "Paste Remembers Layers" app.clipboardPreferences.pasteRemembersLayers = false; for (i = 0; i < app.activeDocument.layers.length; i++) { //Maybe the user does not want objects pasted to invisible layers: if(app.activeDocument.layers[i].visible == true && app.activeDocument.layers[i].locked == false) { app.activeDocument.activeLayer = app.activeDocument.layers[i]; app.pasteInPlace(); }; }; //Restore the old condition: app.clipboardPreferences.pasteRemembersLayers = oldPasteRem;
Uwe
-
In a table - looping through the rows and the stored procedure call
APEX version: 3.2.0.00.27
Hello
I searched the forum and tried a few things but could not make it work.
I have a tabular presentation, developed with the help of the ATD ( )
What I'm trying to do now:
-After submit and validations, loop through all the lines and
-call a stored procedure passing 3 parameters obtained from each of the lines on the form of tables. This procedure will be an update of a database table.
On the forum, I found that I could do the loop "* FOR i IN 1..." APEX_APPLICATION.g_f03. "LOOP COUNT *" syntax.
Only for testing purposes, I tried just to view information with the following (On Load - after a footer) process (example of Denes Kubicek == > http://deneskubicek.blogspot.com/2009/05/execute-javascript-throuhg-plsql.html):
The foregoing would give me a ' * ORA-01403: no data found * ' message. I tried through various variants of APEX_APPLICATION.g_f0* #*, but still can't get anything to display correctly. In commenting on all the lines referring to APEX_APPLICATION.g_f0x above, the date would be are they displayed fine.declare v_today varchar2 (200); begin -- :P40_test := APEX_APPLICATION.g_f03(1); -- :P40_test2 := APEX_APPLICATION.g_f04.COUNT; :P40_test2 := 100; v_today := to_char (sysdate, 'dd.mm.yyyy'); --FOR i IN 1.. APEX_APPLICATION.g_f03.COUNT LOOP :P40_test := APEX_APPLICATION.g_f02(2); HTP.p ('<script type="text/javascript">'); HTP.p ( 'alert(''Today is ' || v_today -- || APEX_APPLICATION.g_f04(APEX_APPLICATION.g_f03(i)) || '.\n' || 'end!'');' ); HTP.p ('</script>'); -- :P40_test := APEX_APPLICATION.g_f02(APEX_APPLICATION.g_f02(i)); --END LOOP; end;
I tried uncomment the FOR... LOOP and play with the code (defining the process runs "On submit - after calculations" and Validations), I got was a ' * ORA-06502: PL/SQL: digital error or value: character conversion number error * "message.
Here is the script of the form in a table:
Regarding the parameters for the stored procedure, it would the MSLINK, VALVE_NUMBER and the VALVES_STYLE. FEATURE.select "V"."MSLINK", -- hidden (number) "V"."INSTALLATION_DATE", -- editable date picker "V"."MANUFACTURER_INDICATOR", -- editable (cascading LOV -- text) "V"."MODEL_INDICATOR", -- editable (cascading LOV -- text) "V"."DIAMETER_INDICATOR", -- editable (LOV -- number) "V"."PURPOSE_INDICATOR", -- editable (LOV -- text) "V"."VALVE_NUMBER", -- shown but not editable -- number "V"."MODIFY_DATE", -- shown but not editable "V"."MODIFY_USER", -- shown but not editable "V"."VALVES_STYLE"."FEATURE" -- shown but not editable -- number from "#OWNER#"."VALVES" "V" Where "V"."PROJECT_ID" = :P1_PROJECT_NUMBER AND "V"."VALVES_DFLAG" = 0
Help, please!
(Sorry for the long post).
Thank you
TanHi, Tan,
I have not seen that type of object - I've only used custom types for purposes of test years ago and have never used their within Apex!
One possibility is that the value of checksum being is based on all of the content of these fields, rather than only the part of the FEATURE. If there are other parts of the object, you could include those items as well.
Otherwise, as you f01 KP for a record, you will need to retrieve the values of the FUNCTION in your PL/SQL code directly from the table (because the user cannot modify these fields, you can be sure that the values in the table will be still valid).
Andy
-
Loop through the sequences selected using set of entry points into LabVIEW OI
Hi all
I have an operator Interface where the operator has the option to select specific measures and loop over the sequence selected according to the needs.
Everything works as expected, but the customer wants to remove the default loop configuration pop-up box.
Must be defined by programming the parameters of the loop (and not by the user). I figured out how to build arguments interactive but don't know how to spend it.
Any ideas / suggestions would be greatly appreciated.
Thanks in advance.
Kind regards
SS
UnspecifiedError wrote:
I am aware of this method and it works well, but the requirement is to run with the model process for example 'Test DUT' entry point
Use SequenceViewMgr.ExecutionEntryPoints to get the corresponding entry point object, and then use EntryPoint.LoopOnSelectedSteps ().
Hope this helps,
-Doug
-
Looping through the operator stored in the table
I have a table test
oprtr op_val > =. 100 = 50 < =. 10 < 5 create table test (oprtr varchar2 (5), op_val number);
Insert test values (' > =', 100);
Insert into test values ('=', 50);
insert into test values ("< =', 10");
Insert test values (' < ', 5);
I tried to loop through all the conditions of this table, this table is configurable, and there are cases where the new terms will be added and the old conditions can be modified or deleted,
I wanted to do something like that, is there a way to do it or I have to write manually if condition to test all these cases by taking all the considerartion operator.
Val: = 500;
I'm in (select * from test)
loop
If val i.oprtr i.op_val then
dbms_output.put_line ('True Condition is' |: o PRTR);
end if;
end loop;
Please help me if there is a way to do it.
Hello raj4tech
Here's an example how you can solve this problem:
DECLARE
Val the NUMBER: = 500;
v_statement VARCHAR2 (500);
v_result VARCHAR2 (10);
BEGIN
FOR I IN (SELECT oprtr, op_val
OF THE TEST
)
LOOP
BEGIN
v_statement: = 'SELECT BOX WHEN "| To_char (Val). ' ' || i.oprtr | ' ' || To_char (i.op_val) | "THEN" TRUE"OTHER"FALSE"END AS A RESULT OF THE DOUBLE."
V_statement EXECUTE IMMEDIATE
IN v_result;
DBMS_OUTPUT. PUT_LINE (' "' |") To_char (Val). ' ' || i.oprtr | ' ' || To_char (i.op_val) | ""--> Result: ' | v_result);
END;
END LOOP;
END;
/
"500 > = 100 '--> result: TRUE
'500 = 50'--> result: FALSE
' 500 <= 10" ="" --="">result: FALSE ".
' 500 < 5" ="" --=""> result: FALSE ".
=>I hope it helps.
Best regards, David
-
Hello
I'm trying to get just the property groups that are visible to a layer in my script. Is there such a property?
For example, when I loop through groups of properties of a shape layer, I get masks, layer, surface Options and Audio property groups Styles, when none of these are appropriate. I tried to use the (.elided) property, but it gives me just the 'Content' hidden folders within the groups of vector and 'Masks' in 'membership Options '.
* on a side note, I got the error "not"adjustable expression"with this property, because the property is a property of the parent is hidden." When you try to access X or Y Rotation on one layer 2D. It makes it seem like there is somewhere a Boolean value 'hidden' in the property object, but I can't.
Hello
'elided' and 'hidden' both have purpose UI (make the lighter user interface) but are very different:
- 'j' is a static property groups attribute (readonly, and After Effects never becomes the value internally).
The children of an elided group are not necessarily élidés.
- 'hidden' is NOT an attribute, is dynamic and "undocumented".
The UI of effects after mask everything that is not necessary in the layer property tree (for example the Group of hardware options is hidden when the layer is not 3D, because it is not used anyway).
Properties and masked groups are always there and is accessible by script, you can read their values and attributes, Scout their subtree of property, but we cannot define anything on them or select them (in both cases, that an error is generated).
And the children of a hidden group are hidden.
Since there is no corresponding to 'hidden' attribute, it is uncomfortable to know whether or not a property is hidden. I only see one case of 'treatment '.
For example:
myLayer.layerStyle is hidden? <===>! myLayer.layerStyle.canSetEnabled
myLayer.transform.xRotation is hidden? <===>! myLayer.transform.xRotation.canSetExpression
myLayer.mask is hidden? <===>myLayer.mask.numProperties = 0
myShapeLayer.content is hidden? <===>fake (never hidden, even if it is empty)
etc...
Xavier.
===>===>===>===> -
My input XML file is...
I get this XML using file adapter...
<? XML version = "1.0" encoding = "UTF-8"? >
-< root xmlns:ns2 = "http://www.w3.org/2001/XMLSchema" >
-< ns2:ReceiptBatch >
< ns2:FileID > "99999" < / ns2:FileID >
< ns2:Warehouse > in THE < / ns2:Warehouse >
'L' < ns2:Revision > < / ns2:Revision >
< ns2:DocID > A4 < / ns2:DocID >
-< ns2:Receipt >
< ns2:DeliveryNo > 123 - OP < / ns2:DeliveryNo >
< ns2:ProcessDate > 112138 < / ns2:ProcessDate >
< ns2:ContainerNo > 98765 < / ns2:ContainerNo >
< ns2:Instructions > TREKAU < / ns2:Instructions >
< ns2:ReceiptType > 1 < / ns2:ReceiptType >
< ns2:SuppCustCode > 111 < / ns2:SuppCustCode >
TREK-Cycle < ns2:SuppCustName > < / ns2:SuppCustName >
-< ns2:ReceiptDetails >
< ns2:Line > 1 < / ns2:Line >
< ns2:ProductCode > 1000 < / ns2:ProductCode >
< ns2:QuantityAdvised > 1 < / ns2:QuantityAdvised >
< ns2:QuantityReceived > 1 < / ns2:QuantityReceived >
< / ns2:ReceiptDetails >
-< ns2:ReceiptDetails >
< ns2:Line > 2 < / ns2:Line >
< ns2:ProductCode > 2000 < / ns2:ProductCode >
< ns2:QuantityAdvised > 2 < / ns2:QuantityAdvised >
< ns2:QuantityReceived > 2 < / ns2:QuantityReceived >
< / ns2:ReceiptDetails >
-< ns2:ReceiptDetails >
< ns2:Line > 3 < / ns2:Line >
< ns2:ProductCode > 2000 < / ns2:ProductCode >
< ns2:QuantityAdvised > 3 < / ns2:QuantityAdvised >
< ns2:QuantityReceived > 3 < / ns2:QuantityReceived >
< / ns2:ReceiptDetails >
< / ns2:Receipt >
< / ns2:ReceiptBatch >
< / root >
There are 2 tables in the database.
Table 1 = T1743512
Table 2 = T2743002
table - structure
T1743512-
DOCO KCOO DTCO LNID LNIX LITM NOTICE USR JOBN UPMJ PID'M CKNU UREC
123 00026 1 1 1000 1 1 123 - OP OP
124 00026 1 1 1000 1 1 124 - OP OP
123 00026 2 2 1000 2 2 123 - OP OP
123 00026 3 3 1000 3 2 123 - OP OP
Things to do are:--
1. Research Notice T1743512 (table) with the following keys:
1.T1743512. CKNU = < DeliveryNo > XML
2.T1743512. LNIX = XML < row >
II. write a record in the T2743002 table for each < RecieptDetails >. (See map below)
Mapping of the records in the table T2743002 to < ReceiptDetails >
EDU - "SABSSV".
EDBT - < EDBT > (the same for all records)
EDTN - < DeliveryNo > (from the section < reception > XML)
EDLN - < row > (from < ReceiptDetails > section in XML format)
EDSP - white
DOCO - white
DCTO - white
KCOO - white
LNID - white
LITM - < ProductCode > < ReceiptDetails > section
UORG - < QuantityAdvised > < ReceiptDetails > section
UREC - < QuantityReceived > < ReceiptDetails > section
USER - "SABSSV".
JOBN - "SOA - 3PL".
PID - 'PO-ENTRANTS ".
UPMJ - current Date Julian
- Hour current HHMMSS
Please suggest the solution.
Published by: Prashant_AP on June 22, 2012 12:24 AMHello
Solution by using a loop in BPEL;
1 count the number of nodes for ReceiptDetails.
2 create a counter for loop through each node ReceiptDetails. Use a while loop in BPEL
3 search T1743512 (table) with DeliveryNo and the line. Make sure that you select the correct line from the ReceiptDetails node element node. This can be done using the counter example of xpatch ns2:ReceiptBatch / ns2:Receipt / ns2:ReceiptDetails [counter] / ns2:Line. Please use the DB adapter.
I guess that the DeliveryNo can only appear once in the document following your example.
4. for each receiptDetails you write a record in table too T2743002. Please use the DB adapter.
5. Since the time increment the counter. This is to ensure that the while loop stops at the point where the counter is greater then the number of nodes to ReceiptDetails.I think a better solution is to make the loop in PL/SQL. It will be faster. You specify an input of type of collection in your pl/sql package parameter. Assign all items receiptDetails and DeliverNo line to the PL/SQL package. Within PL/SQL unravel you the closure. With a little luck, you have the T2743002 in the same schema to create the record too. Otherwise create synonyms of the database or database links.
Good luck
Thank you
Sander
-
Recursive loop through the file system.
Hello!
I'm trying to figure if Javascript is my answer to my problem. I have been able to re - write all my AppleScript scripts that manipulate Illustrator with the exception of those that he had to use the file system. We stayed in PC at work and now I have to figure this out. Our art files are saved with a number of 7 digits, followed by the name of art in the file. Ex: 1000049-Bob Garage. My applescript had a recursive loop that worked its way down through the structure of the files on our server art until it finds the record low where it belonged, then saved in itself. Here is an example of how the structure of server files (these are the folder names) is extended:
1000000-1004999
1005000-1005999
1010000-1014999
and so on.
The script would load all foldernames in the first level of the directory, loop through them and watch the first and last name of each of these folder names, then compare the Illustrator file name to them. If my file is between the two, then the loop itself, called loaded the files inside of that folder and in doing so, working its way down through the folders through the tree structure until there where records is no longer. At this point, the file was saved, in the order, where it should be.
I have no idea on how to start this task with Javascript, if this is possible even with a language developed for browsers. I'm with other people who are frustrated by such a widely adopted language, if little info is available on its use outside the browser. If anyone can tell me all resources dealing with Javascript programming of the file system, or even to have the kindness to write this little monster for me, I'd always in your debt!
Thanks in advance for any time you spend with this problem!
Open the ESTK, and then on the Help menu, you will find a link to the Javascript Tools Guide. You will find everything that you need in Chapter 3 file system access.
-
How to loop through the CSV file
Hello
I want to loop through each column in a CSV file.
And while the closure of each column, I want to loop every line starting with line 2 St.
I wrote the code below, but it's a loop in the lines from rank 1.
How can I start the loop from the 2nd row in the CSV file?
(see code below)
Can someone tell me how to proceed?
THX
<!-Download and read the file CSV - TXT->
< cffile action = "read" variable = "C:\Documents and Settings\user\Desktop\EM-CSV\test.csv" file = "csvfile" >
<!-browse the CSV - TXT file on line breaks and insert into the database->
< table border = "1" >
< cfloop index = list 'index' = "' #csvfile # ' delimiters =" #chr (10) ##chr (13) #">"
<!-< cfoutput > #listgetAt('#index#',1, ',') # < / cfoutput > < br >->
< b >
< td > < cfoutput #index # > < / cfoutput > < table >
< td > < cfoutput > #listgetAt('#index#',2, ',') # < / cfoutput > < table >
< td > < cfoutput > #listgetAt('#index#',3, ',') # < / cfoutput > < table >
< /tr >
< / cfloop >
< /table >
Hi Like2Flex,
The problem is that coldfusion does not see
list = "a, b, c, d.
as a list of 9 things you expect. He just sees 4 elements a, b, c and d because Coldfusion does not include two delimiters next to each other.
A solution to the problem is to manually insert a space between two delimiters that are side by side. Here is an example of such a solution
length of the list:#listlen (list) #
Maybe you are looking for
-
Hi all recently, I backed up my photos on a 1 TB of seagate storage device. I am now trying to fix the photo library, but I get this message: The contents of the iPhoto 'iPhoto Library' library has already migrated to the Photos. Open the Photos to
-
Portege M780 - 10 H: stylus won't come out
My pen is physically stuck in its Bay.It's supposed to flow when you push it. However when you push (it always moves) then it will not come out.I couldn't get him out of the battery bay either. Any ideas?Thank you
-
The percentage of my iphone 6s is incorrect
Hello At about 23:00 16/03/2016 Viet Nam time at the farm level is 20% of my iphone6s, I charge the battery. 17/03/2016 00:00 then I have check and see the battery level is 24%, this anomaly occurred after updating iOS 9.2.1. Even when I remove all t
-
What is the function of support biredirectional activate the tab of the printer properties ports?
-
original title: clock is always fast The system clock can be reset to the correct time. But in a few minutes, it fits a moment which is about 11-12 minutes fast. He keeps so good time to 11-12 minutes fast. I have reset the clock many, many times.