Looping on nested Structure

Hey guys,.
I have a component that returns a structure. The structure is called ContactQuery. ContactQuery has elements, one called results and called a success. Results contains the data I want to loop over. If you try a loop on the ContactQuery Using CFLoop and specify the ContactQuery as the collection, of course he only buckle twice (once for the results, once for success). How can I loop on the inside of structure results ContactQuery? You can see the dump of the structure:
http://www.digitalswordsmen.com/CFSCHEDULE/Admin/Create_Tokens_Table.cfm

This is the code that I've attached. I am just not sure of the syntax for looping through the results section of the structure.

Thank you.

It seems that this is the query. Have you tried a regular request loop?


...

Tags: ColdFusion

Similar Questions

  • How to take advantage of deeply nested structures

    I'm relatively new to LabVIEW and I get in this situation:

    When tasks get complicated a bit more, my programs use many structures nested loop, case and structures of the sequence. Now, how we're out of nested structures quickly and cleanly? In a language like Java, you can throw an exception, but in LabVIEW, I apparently condemned to use structures more cases to check conditions error so I can jump in and out immediately when an error occurred or the Cancel button was pressed.

    According to me, that I'm doing something terribly wrong. Any input on how I can organize my programs better to avoid this?

    Thanks in advance.

    Hey someguy,.

    never heard of the "machinery of State" or "producer-consumer model?

    You will find lots of information here on the forum...

    When you're new to LabVIEW: you will also find a large number of free resources on the Web site OR for learning LabVIEW!

  • Control of the event: how to stop the race while loop within a structure of the event

    Hello

    I have some problems with control of a while loop inside a structure of the event (see annex VI).

    I have 3 buttons (the "Start measurement, stop, exit the program"). When a measure is running, it should be possible to stop the measure by clicking on "Stop the measure", but it does not work.

    Someone at - it an idea?

    Thank you very much and best regards,

    Michael

    Hi Michael,

    create a process parallel to your measurement. You can use the design model "producer/consumer with vents. You'll find it with «File-> new...» ».

    Another possibility would be to remove the "lock frontpanel" sign, in the case of event start measurement.

    Mike

  • How to control a VI (with a while loop and a structure of the event) from an another VI

    Hello

    I have the main VI which I want to be driven from an another VI. But I can't do that and I don't know what is happening.

    For example: VI main, I have a while loop with a structure of the event, there is a Boolean controller controlling a Boolean LED, which is inside the structure of the event. And the other VI, there is just a Boolean controller and functions of applications to open the main VI.

    How can I control the Boolean LED in VI main, changing the State of the Boolean controller in an another VI?

    Thank you.

    There are different options, but depending on what you want to do. For this example I can't give you a specific solution.

    I do not understand why you do what you do. Why do you call your 'principle VI' dynamically? What is the advantage to do? There are also other ways to call a VI dynamically, based on real cases (for example the method "call and forget", etc...).

    In you principle VI, control you Boolean ("THATCHER") is not the case of corresponding event. This is not usually a good practice, keep it inside.

    Also, why you try to communicate with the caller and callee VI through such a way to twist? There are better ways to do it.

    In one of my projects, I use the user event to launch orders in case of case of appellant VI.

    some Associates more readings for you:

    http://www.notatamelion.com/2015/03/23/how-to-make-dynamic-subvis/

    http://forums.NI.com/T5/LabVIEW/Dr-Damien-s-development-event-structures-III-communicating-with/m-p/...

  • Cannot auto index from a for loop through a structure of business output

    I have a loop nested in a case structure, and outside the case, the structure is written to measure Vi. at each iteration of the loop for, I am trying to send data to writing custom Vi by using a tunnel with automatic indexing enabled. But writing custom Vi saw the release of the latest iteration of the loop. Is happening because I try automatic indexing on thanks to a structure of matter? How do you set up business structures to automatic alow to indexing?

    The loop passed out all the data in the form of a table (a row/iteration) 2D and add it to the file. However, your scalar indicator 'Output average SM' will not show the value of the last inner iteration. If you want to see all sequence values, move the indicator in the innermost loop.

    Also erase you the previous errors in each iteration, so you won't see any errors.

    As a general rule, you have far too much code duplication. For example, your inner loops share a huge amount of code. Everything that needs to be in the structure of case is code that is different. Here's how you could simplify it. (it of just a project and probably has errors).

    There are also 'model boom' that you can use to simplify things a lot more.

  • Problem with nested structures event

    Hello

    I'm rather new to Labview and I wanted to use a structure of nested in one of my programs at the event.

    However, I seem to fail to do things.

    I created a minimal example of construction that I use, you will find in the attachment.

    The idea behind this program is as follows.

    1. I have run the program and go into a while loop

    2. once I have hold down a button on front of a counter is increment every 100 ms.

    3. when I release the incrementing buttun stops.

    However, this does not work. What I am doing wrong?

    Thanks in advance!

    Never stack event structures. Never ever.

    That being said, your code contains a lot of illogical parts, for example a queue time when using a case of 0-timeout event.

    Please use a unique event structure. Where growth is expected to run, set the timeout case e .g. 100 (using the shift register) and once it is based again on set it back to-1. Initialize the shift with-1 register.

    Also avoid using references and nodes property to read/write the values. These are bad practices (in most cases) and bury a lot of run-time performance.

    A second shift register allows to keep the numerical value and increase the value in the case of timeout. Update of the terminal after the structure of the event.

    Norbert

    EDIT: My first line is a rule of thumb. With the increase in the skills of LV and appropriate design, the stacking of the structures of the event is possible, but you must know the rules. If this isn't the case, you won't fail hard.

  • Analyze the flat file data in a nested structure.

    This has been driving me crazy all day long.

    I have a flat data file I want to analyze in a nested data structure.

    Small sample data:

    0 HEAD
    1 SOUR FTW
    2 VERS Family Tree Maker (16.0.350)
    2 NAME Family Tree Maker for Windows
    2 CORP MyFamily.com, Inc.
    3 ADDR 360 W 4800 N
    4 CONT Provo, UT 84604
    3 PHON (801) 705-7000
    0 TRLR
    

    If anyone recognizes this, yes it's a small piece of a GEDCOM file.  That's what I'm trying to analyze.  For someone who is not familiar with this data format.  The first number is the level of a data element.  Level 0 are elements of the root of a data segment.  Level 1 lines relate to the data of level 0 line previous closest.  Level 2 lines relate to the level 1 data line that precedes the closest. And so on.

    Here is an example of the desired output, the different elements to the related parent of nesting.

    <cfset foobar = {
     HEAD = {lvl=0,
     SOUR = {lvl=1,data="FTW",
     VERS = {lvl=2,data="Family Tree Maker (16.0.350)"},
     NAME = {lvl=2,data="Family Tree Maker for Windows"},
     CORP = {lvl=2,data="MyFamily.com, Inc.",
     ADDR = {lvl=3,data="360 W 4800 N",
     CONT = {lvl=4,data="Provo, UT 84604"}},
     PHON = {lvl=3,data="(801) 705-7000"}}}},
     TRLR = {lvl=0}
    }>
    
    <cfdump var="#foobar#">
    

    I think I'm looking at a kind of recursive function to embed these data correctly, but I just can't figure out how to do.

    I have this basic function that will display each line of data in a separate structure key

    <cffunction name="parseFile">
         <cfargument name="file" required="yes">
         <cfargument name="line" required="no" type="string" default="">
         
         <cfscript>
              var returnStruct = structNew();
              var subStruct = structNew();
              var cur_line = "";
              var next_line = "";
              var line_lvl = "";
              var line_key = "";
              var loop = true;
              
              if (len(trim(arguments.line)) EQ 0) {
                   cur_line = fileReadLine(arguments.file);
              }
              else
              {
                   cur_line = arguments.line;
              }
              
              do {
                   if (not FileISEOF(arguments.file)) {
                        next_line = fileReadLine(arguments.file);
                   }
                   else
                   {
                        next_line = "-1";
                        loop = false;
                   }
                   
                   line_lvl = listFirst(cur_line, ' ');
                   cur_line = listRest(cur_line, ' ');
                   line_key = listFirst(cur_line, ' ');
                   cur_line = listRest(cur_line, ' ');
                   
                   returnStruct[line_key] = structNew();
                   returnStruct[line_key]["level"] = line_lvl;
    
                   cur_line = next_line;
              } while (loop);
              
              return returnStruct;
         </cfscript>
    </cffunction>
    
    <cfscript>
         gedcom_file = FileOpen(getDirectoryFromPath(getCurrentTemplatePath()) & "Ian Skinner.GED","read");
         /*gedcom_data = {individuals = structNew(),
                        families = structNew(),
                                             sources = structNew(), 
                                             notes = structNew()};*/
                                             
         gedcom_data = parseFile(gedcom_file);
    </cfscript>
    
    <cfdump var="#gedcom_data#" label="Final Output">
    

    I tried many ways to recursively call this function in order to nest the elements.  None of them have produced await in the above example of hand coded output.  Which made me the closest is recursive call, the function parseFile() towards the end of the while loop if the following line is greater than the current level of line:

    if (listFirst(next_line,' ') GT line_lvl) {
         parseFile(arguments.file,next_line);
    }
    


    It works pretty well, as long as the next level of line is the same as or higher than its previous level of the line.  But once the next line level is lower, the recursive call will not return to the appropriate parent level.  The current function call ends just on a loop on the data file.  Everything that I tried to provide a correct output for recursive function calls when the next data line belongs to a line parent just a horribly distorted data.

    Yes, that's exactly it. I think that the node must always be added to the stack.

    I just had a period gave me. But that's what I thought.

    That is to say...

    While (not FileISEOF (gedcom_file)) {}

    line = fileReadLine (gedcom_file);

    extract data from the node

    node = {};

    node.LVL = listFirst (line, "");

    line = listRest (line, "");

    key = listFirst (line, "");

    If (listLen (line, "") gt 1) {}

    node. Data = listRest (line, "");

    }

    Download the most recent ancestor of the battery

    lastNode = stack [1];

    If it is a brother/ancestor, look for its parent

    While (arrayLen (stack) & node.lvl lte lastNode.lvl) {}

    arrayDeleteAt (battery, 1);

    lastNode = stack [1];

    }

    Add to the stack

    arrayPrepend (stack, node);

    Add this node from its parent

    lastNode [key] = node;

    }

  • How to have a while loop inside a structure of matter?

    Hi all

    I would like to know how to control a while loop by using the structure of the case? I would like the person to check if the object has is in its original position or not.

    If this is the case, go...

    The object must then do its job, as mentioned in the while loop... as up and down 10blocks...

    Later, when she returns to its original position, the entire process must stop...

    I checked the forums on this http://forums.ni.com/t5/LabVIEW/How-to-stop-while-loops-inside-a-case-structure/m-p/591259

    It is the closest, I can have... but can someone tell me how to program for this? How logic should be?


  • Generation of loop infinite nest

    Hello

    I have tried to create a nest of infinite loop For TestStand and stuggling to find a way to do a little.

    If you see the attached screenshot, the program runs to each index of the table, for loop 1. There is another loop For loop 2, with the Start/Stop/not inside the loop For For 1. Execution stage element is the index of loop nest, for example, Array Index 2 will start at 5, go to index 1 and run the loop (from 0 to 10 in step 2 and here at every step, he goes back to the Index 0 and run the table. When finished will return to index 1 index 0, and go well the loop. The same systematic for the Index 2 at each stage will be index 0 or everything he has the value).

    In LabVIEW, I can just set it to re-entry VI and feed in the index of the step to execute, but how can I do this in TestStand?

    I really appreciate the help in advance.

    Best regards.

    tlee16 wrote:

    Thanks for the response Doug.

    So I have the sequence (with levels who read from a variable) and wants to call itself its own sequence but with different values in the variable (at runtime, called sequence data passed in this sequence should not replace the sequence of the appellant), how can I implement something like this? Is there a way to check where the sequence has been called since then? or maybe some sort of entry stamp can I write/pass data entry in the sequence? Maybe I should change the way of how it is written/designed...

    Thank you!

    You must use "by value" settings of your variables. To create these settings, insert variables in the setting of the display of the variables group. By default, they are "pass by reference", to change them to be passed by value, right-click on the variable parameter and uncheck the option menu "pass by reference". The variables that are passed by value are passed as in the copies of the original, everything changes for them in the order does NOT affect the original versions in the calling sequence. However, if you want to be able to pass data in the sequence they you need to at least some of your settings to "pass by reference" so that changes made to the parameter in the subsequence may be returned to the calling sequence.

    Hope this helps,

    -Doug

  • How to stop the While loop in the Structure of the event with the same button?

    Hello

    I have a problem. I want to use a single control to activate an event in a structure of the event and the same control to end a while loop in this case.

    It is possible to use 2 controls to do this, but I need to be alone.

    Thank you

    You should NEVER place while loops inside the case of the event, and it is never necessary to do. Think about it: all you have to do is spin the code. You can easily use the outside while loop for everything. Simply place the code of the loop internal (without the inner loop) inside the case of delay and manipulate the time-out period between a pending finished and the infinite (-1), depending on the State of the Boolean value.

    A very simple example (LV 8.0)

  • problems with timing in a time loop in a structure of the event

    Hello

    I'm using labview to control three motors stepper, running the three stages of different translation in different axes (X, Y and Z). Please see the attached VI, focusing on the structure of the event on the RIGHT side.

    In the Z axis, I am trying to run the engine for 5 seconds, after clicking on a button. I have attampted to do by adding a sub of elapsed time VI within a while loop, located in the tab 'Mouse before Z down' the structure of the event. A similar "elapsed time while loop" is also included in tab 'Z reverse the mouse down' the structure of the event.

    Separately these "elapsed time loops" work very well, BUT when I run a Z direction after another, say 'Z Reverse' and then 'Before Z' then they annoyingly interact. The calendar is gone, with the moment where we add, rather than rebooting.

    No idea how I can reset the time elapsed while loops? Or is there another method better do?

    Thank you very much

    Charlie

    charlieryan wrote:

    I take a wire from the 'i' of the while loop at the entrance of the Sub autoreset - VI of tiem will blink?

    No, connect you to the "reset", not "autoreset".

  • Two loops of event Structure: hang

    Hello

    I have a wired problem when I try to use two loops with two event structures (see VI below).

    The problem is that you can stop the measurement and close the VI with X but not to stop it only with STOP button: this would lock the façade.

    Here my (rather long and perhaps not quite understandable) description of VI:

    A structure must respond on the user interface and the other a certain action. The first uses only user events: change value button START, PANEL NARROW? and the value enum STATE changes. The second event structure uses those registered dynamically: start the event user & user close event. Action when the STATE changes from button should always be done. When you press start the startup user event disables the START button and activates a loop in the second structure that should make continuous measurement. Now, we can always change the STATUS button and information (this works). The measurement loop should stop if the STOP button is true. Later START is enabled again and we should be able to press START again. It does not work as the front panel is locked. Curiously the last implemented user action works very well: by pressing X of VI, the PANEL CLOSE? is called in the first loop and should stop the two loops: If the measurement loop is running, STOP is True first, stop the loop measurement. Then a secondary structure event waits until the JUDGMENT is again set to False. If the measure is not in the process of running the first loop stops. In both cases, the event close user is sent to the second loop, successfully stop.

    I'm really confused, because I have no idea what is wrong. I would greatly appreciate any help on this.

    Best regards

    Daniel

    Thank you very much! This solves the problem. I did not understand that structures of events queued events even if they are not "active".

    (Finally there is even no need one notifier, you can just change the value of the real STOP button and will raise the event close user, comapare attached, work VI)

    Thanks again,

    Daniel

  • multiple messages from several loops in the structure of the event

    Hey guys,.

    I have two questions, first of all, what is the best way to receive messages in case of structure? I've been watching the user events, and which seems to be a good option if I want to never send a single message. Ive never found an example where the regester for events has a second event its looking. I currently use queues to the structure of the event to my other loops.

    My second question is I want to even send messages to the structure of the event, my current thinking is that it would make things easier to follow if the structure of the event sent all messages to the individual lines. Is it more appropriate to have just a loop of talk directly to one another through the queues already in place?

    IM thinking ill put in place a user for handlng errors event but I'm not sure on other messages.

    Thank you guys

    You can get events for individual events. Better yet, you can use clusters to group the different events and access them individually (see below).

  • While loops and event structures

    Is there a problem using more then one While loop with an internal structure of the event, in a single VI?

    In my (only a partially attached printscreen) VI there is more then 2 all in curls with a structure internal even who controls a different devices.

    Event structures are being controlled by a box structure.

    From time to time the VI gets stuck and resetting local variables.

    Hello

    Using two while the loop is not a problem, it depends on how you structure the code.

    Generally, we use two while loop for Producure-consumer, master - slave structure type of applications. Try to use the structure of State machine inside while loops, see standard state machine examples in the palette of NOR find example.

  • Loops Parallels and Structure of the event

    Hello

    Is attached a valid way to the use of the structure of the event?  I keep hearing that the case of the event should include control of the event.  Can the control be placed elsewhere?  For example, if I have 2 loops, I placed a structure of the event in the 1st loop and control associated with the event in the 2nd loop, is there a potential problem?  It is true that no matter where a Boolean with a value change is read, the Ministry of value in the event structure will be fired?  See attachment.

    This screenshot you posted should work for you fine.

    The main reason that you hear the case of the event should contain the control for the event is so that the control is read and for locking of Boolean values, gets reset when the case of events runs.

    Here since the first parallel loop runs (assuming nothing else in the loop causes the loop to get blocked), the stop button will read and reset.  The value change event will always be raised in the upper structure of event loop.

Maybe you are looking for