Calculations while looping through dataset

Hi
I've just started using spry which I'm really enjoying. It's
a really great and powerful framework.
I have been able to display a dynamic region and its content
looping through the rows of the dataset.
My problem now is that according to the data in the data set,
I have to make some calculations for each row. I can't seem to find
a way to do it, and don't actually know if it is possible.
this is how my xml looks like:
var xmlStr = "<?xml version=\"1.0\"
encoding=\"iso-8859-1\"?> \
<portfolios> \
<portfolio id=\"12345\"> \
<portfolio_name>Test1</portfolio_name> \
<investment>500000.0000</investment> \
<current_value>513475.7260</current_value> \
</portfolio> \
<portfolio id=\"67890\"> \
<name>Test2</portfolio_name> \
<investment>100000.0000</investment> \
<current_value>103574.6610</current_value> \
</portfolio> \
</portfolios>";
var dsPortfolios = new Spry.Data.XMLDataSet(null,
"/portfolios/portfolio");
var xmlDOMDocument = Spry.Utils.stringToXMLDoc(xmlStr);
dsPortfolios.setDataFromDoc(xmlDOMDocument);
and the display for the data set:
<div spry:region="dsPortfolios"
class="SpryHiddenRegion">
<table>
<tr><th>Name</th><th>Investment</th><th>Current
Value</th><th>Gain</th><th">Pct
Gain</th</tr>
<tr spry:repeat="dsPortfolios">
<td>{name}</td><td>{investment}</td><td>{current_value}</td><td>GAIN_CALC</td><td>GAIN_PE RCENT</td>
</tr>
</table>
</div>
basically, where it says GAIN_CALC and GAIN_PERCENT in the
table, these should be calculation (i.e. GAIN_CALC = current_value
- investment and GAIN_PERCENT = ((current_value -
investment)*100)/investment )
can anybody help me there (if it's possible to do such things
of course)?
Thanks

If you register a post load observer on your data set, you
can perform the calculations on each row and add custom columns
that you can then refer to from your region as data references:
var ds = new Spry.Data.XMLDataSet("portfolios.xml",
"/portfolios/portfolio");
var obs = {};
obs.onPostLoad = function(notifier, data)
var rows = ds.getData();
for (var i = 0; rows && i < rows.length; i++)
var investment = parseFloat(rows[ i ][ "investment" ]);
var currentValue = parseFloat(rows[ i ][ "current_value" ]);
rows[ i ][ "gain_calc" ] = currentValue - investment;
rows[ i ][ "gain_percent" ] = ((currentValue -
investment)*100) / investment;
ds.addObserver(obs);
<div spry:region="dsPortfolios"
class="SpryHiddenRegion">
<table>
<tr><th>Name</th><th>Investment</th><th>Current
Value</th><th>Gain</th><th">Pct
Gain</th</tr>
<tr spry:repeat="dsPortfolios">
<td>{name}</td><td>{investment}</td><td>{current_value}</td><td>{gain_calc}</td><td>{gain_ percent}</td>
</tr>
</table>
</div>
--== Kin ==--

Similar Messages

  • How do I go about this? Creating table while looping through dates?

    How do I do this? Creating table while looping through dates?
    I have a table with information like:
    ID---Date---Status
    1-------04/23-----Open
    1-------04/25-----Open
    2-------04/24-----Closed
    3-------04/26-----Closed
    What I want to do is create another table based on this per ID, but have all the dates/statuses on the same line as that ID number (as additional columns). The problem is that the number of columns needed is to be dynamically decided by the number of dates.
    To illustrate my example, I'm looking to achieve the following:
    ID---04/23 Status---04/24--Status---04/25--Status---04/26--Status
    1----Open--------------<null>-------------Open---------------<null>
    2----<null>------------Closed-------------<null>-------------<null>
    3----<null>------------<null>-------------<null>-------------Closed
    What would be the best way to go about this?
    Can someone please point me in the right direction?
    Would I need to do some looping?
    Thanks in advance!

    thedunnyman wrote:
    How do I do this? Creating table while looping through dates?
    I have a table with information like:
    ID---Date---Status
    1-------04/23-----Open
    1-------04/25-----Open
    2-------04/24-----Closed
    3-------04/26-----Closed
    What I want to do is create another table based on this per ID, but have all the dates/statuses on the same line as that ID number (as additional columns). The problem is that the number of columns needed is to be dynamically decided by the number of dates.
    To illustrate my example, I'm looking to achieve the following:
    ID---04/23 Status---04/24--Status---04/25--Status---04/26--Status
    1----Open--------------<null>-------------Open---------------<null>
    2----<null>------------Closed-------------<null>-------------<null>
    3----<null>------------<null>-------------<null>-------------Closed
    What would be the best way to go about this?
    Can someone please point me in the right direction?
    Would I need to do some looping?
    Thanks in advance!I hope you are asking about writing a query to DISPLAY the data that way ... not to actually create such a massively denormalized table ....

  • Extra Space coming while looping through Hash Set in JSP: URGENT

    Hi,
    I have to loop through the Hash Set in jsp, and display the contents with a comma seperated list.
    I am able to display the values withing the set, however.. after every value,
    i am getting an extra space and then a comma. How do i get rid of this extra space?
    Below is the code snippet
    <% Set tagSet = new HashSet();
         tagSet = (Set)request.getAttribute(PhotoConstants.REQ_RELATED_TAGS);     
         Iterator i = tagSet.iterator();     
         while(i.hasNext()){
         String tagName=(String)i.next();
    %>
    <a href="/outlook/photo/keywords?keywords=<%=URLEncoder.encode(tagName)%>"><%=tagName%></a>
    <%if(i.hasNext()==true){%>,<%}%>
    <%}%>
    I am getting following output:
    NY , sky , Sports & Recreation , clouds , New York City , New York
    Expected Output:
    NY, sky, Sports & Recreation, clouds, New York City, New York
    I want space after a comma, not befor comma...
    Any help is really appreciated..
    Thanks
    Deepti

    <% while(i.hasNext()) {
        String tagName=(String)i.next(); %>
        <a href="/outlook/photo/keywords?keywords=<%=URLEncoder.encode(tagName)
        %>"><%=tagName%></a><%if(i.hasNext()==true){ %>,<% } %>
    <% } %>I think this is an html whitespace thing... try moving your code around to look like what's above (ie move the end of line to inside your scriptlet tag)
    Code looks OK...

  • Problem while looping through record set and tem table for matching data

    hi I am using one record set and ane temp table and looping through both to find the match between dates.
    If date matches then it shud do some processing otherwise it will return default values(null values).
    FOR i IN student_rec .FIRST..student_rec .LAST          /*student_rec.school_date has 01-MAR-2012,02-MAR-2012,03-MAR-2012,04-MAR-2012,05-MAR-2012*/
    LOOP
    l_return_out.school_date := student_rec(i).school_date;
    l_return_out.marks_obtained := student_rec(i).marks_obtained;
    FOR i IN selected_dates .FIRST..selected_dates .LAST          /*selected_dates has 02-MAR-2012,03-MAR-2012,05-MAR-2012*/
    LOOP
    DBMS_OUTPUT.PUT_LINE(selected_dates(i));
    IF selected_dates(i)=student_rec(i).sett_date
    THEN
    EXIT;
    end if;
         ---------call procedure P1
    -----------get output as ret_val1               /*getting ret_val1 as 10 for 02-MAR-2012,03-MAR-2012,05-MAR-2012 */
         ----------call procedure P2
    ---------get ouput as ret_val2               /*getting ret_val1 as 20 for 02-MAR-2012,03-MAR-2012,05-MAR-2012 */
    if ret_val1>0 0r ret_val2>0
    then
    l_return_out.has_csts := yes;
    l_return_out.cst_present := 10;
    l_return_out.cst_absent := 20;
    else
    l_return_out.has_csts :=No;
    l_return_out.cst_present:= 0;
    l_return_out.cst_absent := 0;
    end if;
    end loop;
    l_return_out.has_cst := student_rec(i).has_csts;
    l_return_out.cst_missing := student_rec(i).cst_present;
    l_return_out.cst_existing := student_rec(i).cst_absent;
    PIPE ROW(l_return_out);
    END LOOP;
    RETURN ;
    I am expecting this as result
    school_date     marks_obtained     has_csts     cst_present cst_absent
    01-MAR-2012     20          
    02-MAR-2012     30          yes 10          20
    03-MAR-2012     40           yes 10          20
    04-MAR-2012     70          
    05-MAR-2012     60          yes 10          20
    but this as result
    school_date     marks_obtained     has_csts     cst_present cst_absent
    01-MAR-2012     20          
    02-MAR-2012     30          
    03-MAR-2012     40           
    04-MAR-2012     70          
    05-MAR-2012     60          
    Can anybody please highlight the mistake i am doing while processing the logic??
    Edited by: 942390 on Jul 13, 2012 8:44 PM
    Edited by: 942390 on Jul 13, 2012 8:45 PM

    I am getting a set values from a record set....student_rec
    and on pipelining this record set from 1st till last
    i am getting this
    school_date     marks_obtained     has_csts     cst_present cst_absent
    01-MAR-2012     20          
    02-MAR-2012     30          
    03-MAR-2012     40           
    04-MAR-2012     70          
    05-MAR-2012     60     
    so initially has_csts, cst_present and cst_absent is null for all dates.
    now have a temp table of selected_dates(which contains these dates 02-MAR-2012,03-MAR-2012,05-MAR-2012)
    now I am want to populate has_csts, cst_present and cst_absent with data only for those dates which is present in selected_dates temp table(02-MAR-2012,03-MAR-2012,05-MAR-2012) and that too has_csts, cst_present and cst_absent will be populated with some condition (based on the values from procedure got from P1 and P2).
    so want result set to look like
    school_date     marks_obtained     has_csts     cst_present cst_absent
    01-MAR-2012     20          
    02-MAR-2012     30          yes 10          20
    03-MAR-2012     40           yes 10          20
    04-MAR-2012     70          
    05-MAR-2012     60          yes 10          20
    so what could be the possible solution to obtained this....

  • Custom pll to disable form messages while looping through block records

    I need to loop through block records in CUSTOM pll to check for if one check box is checked or not. But in that process the messages written at the forn level are popping up which are of no use to the user. I want to disable the messages for my looping. I would enable it after the processing in CUSTOM PLL
    Regards,
    SS

    Hello,
    Here is the Forms forum, and you would increase chances to get an answer by posting in the EBS forum.
    Francois

  • Error "Screen output are too small" when looping through internal table!

    Hello All:
         I have a huge internal table with some 79000 records and while looping through them and doing some other processing inside the loop, I am getting an error "Screen output are too small"! Could someone please help mw how to fix this issue? I can send the all the code if anyone wants to look at the code. Thanks in advance and rewards are assured.
    Mithun

    Hi,
    Check this
    new-page print off.
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
    EXPORTING
    destination = v_dest
    IMPORTING
    out_parameters = params
    valid = valid.
    * params-linct = '58'.
    * params-linsz = '170'.
    * params-paart = 'X_58_170'.
    * params-prtxt = v_spool_text.
    * params-primm = 'X'.
    * params-prrel = 'X'.
    NEW-PAGE PRINT ON PARAMETERS params NO DIALOG.
    After the call fm GET_PRINT_PARAMETERS params internal table contains all the values for generating spool.
    aRs

  • Looping through result set

    Hello, I am experience a heapdump while looping through a result set from a query I amr unning.
    Our system creates an instance of a transfer object representing one row in the result set for each row as it loops through. The result set brings back 36000 rows, so it is creating 36000 objects. As a result, a heapdump is occurring. What can be done to fix this error?

    even if it holds 360000 rows,
    I still think [zadok] idea is a great idea.
    you can get, for example first 1000 rows, cacluate it save result, and then get the next 1000 rows, is it make sense?
    if you still want to get it by one time, extend your vm mem, normal setting is 64M(I am not sure)

  • Looping through nested datasets

    My apologies in advance if this has been asked before, but the search function on these forums doesn't appear to be working at the moment...
    Using: Spry 1.6.1
    Dreamweaver CS5
    IE 7 and 8, Firefox 4, and Chrome 10
    The question:
    I have a parent xml dataset, with two nested datasets, like this:
         var dsCourse = new Spry.Data.XMLDataSet("menu2.xml", "menu");
         var dsTopic = new Spry.Data.NestedXMLDataSet(dsCourse, "topic");
         var dsLessons = new Spry.Data.NestedXMLDataSet(dsTopic, "lesson");
    The data displays properly in the html, using regions, etc. However, when I try looping through them using javascript:
         topics = dsTopic.getData();
         for (var t = 0; t < topics.length; t++) { //loop through the topics dataset
              dsTopic.setCurrentRowNumber(t);
              var top = dsTopic.getCurrentRow();
              alert('current topic row name: ' + top["@name"]); //for debug purposes, display the topic name
              var rows = dsLessons.getData();
              for (var i = 0; i < rows.length; i++) { //loop through the lessons dataset
                        dsLessons.setCurrentRowNumber(i);
                        alert("lesson name is: " + rows[i]['name']);//display the lesson name
    It will perform both loops properly, displaying the correct information for each dataset in Firefox 4, but in IE 7 and 8, and in Chrome it will list each of the Topics correctly, but only displays the first set of lessons.
    The xml looks like:
    <topic name="Claims" default="true" complete="false">
            <lesson>
                <name>Getting Started</name>
                <score>0</score>
           </lesson>
            <lesson>
                 <name>Adding a Claim</name>
                 <score>0</score>
                 </lesson>
            <lesson>
                 <name>Adding a Claimant</name>
                <score>0</score>
            </lesson>
    <topic name="Bills" default="false" complete="false">
             <lesson>
                   <name>Bill Components</name>
                    <score>0</score>
              </lesson>
    etc.
    For what it's worth, all of the topics and lessons display properly in the html using spry regions, etc. It only appears to have an issue in javascript. And then only in IE. Is there, perhaps, a better way to do this that I'm not aware of?
    Thanks in advance!
    Jonathan

    This might help http://labs.adobe.com/technologies/spry/samples/data_region/NestedXMLDataSample.html
    Gramps

  • I noticed that any other code in my while loop only gets called at the 1st time through the loop and when a event is executed.

    HI there!
    I have a while loop, in which i am reading from/writing  to a compact rio. Furthermore, i added a event structure, its the 1st time i'm using it so i'm a bit lost at times.
    I have the event structure set up for all my button i want to trigger an event. However, i have some other code which i would also like to be executed, evebn though no event has been executed.
    I noticed that the other stuff in the loop only gets executed the 1st time through the loop and when an event is triggered.
    My question therefore is, how do i get the other stuff to execute as well?
    Please advise.
    Thanks.
    Regards,

    Put the other code in the timeout event case.  Wire some positive value to the timeout hourglass input.  That code will execute everytime a timeout occurs.  For instance, if you wire 100 into the timeout, the code in that case will execute every 100 mSec.
    - tbob
    Inventor of the WORM Global

  • BRF : Looping through a table (e.g. Do Until or While, etc..)

    Hello Colleagues,
    In BRFPLus I understand we can create Loop Expressions that allow you to loop through a table and perform different Actions based  on the retrieved contents of the table.
    We are not using BRFPLus (but the old BRF instead). Does anyone know how to build Loop Expressions in BRF without the use of ABAP Function Modules?
    Your feedback would be really appreciated.
    Thanks in advance.
    Regards,
    Ivor M.

    Hello Colleagues,
    In BRFPLus I understand we can create Loop Expressions that allow you to loop through a table and perform different Actions based  on the retrieved contents of the table.
    We are not using BRFPLus (but the old BRF instead). Does anyone know how to build Loop Expressions in BRF without the use of ABAP Function Modules?
    Your feedback would be really appreciated.
    Thanks in advance.
    Regards,
    Ivor M.

  • Stopping while loop after last element of 2d array is passed through

    I posted something similar to this before, but what I got didn't work.  So this time I'll try to be more clear with what I am trying to do.  What I have done is combine two 1d arrays into a 2d array, and am using it to run an experiment.  I split the 2d array into a 1d array by column, and am trying to get the while loop that the array is in to stop after  the last element of the array is indexed.  I need to use a while loop because the array is constantly updating because the number of elements can be changed while the program is running.  What I am having trouble with is getting the while loop to stop after the last element has run, because the last element is subject to change.  Any ideas?
    Thanks 

    I am trying to run a measurement using labview to control different instruments.  The program is suppossed tp work in that it runs a measurement for each current setpoint inputed, for 1 magnetic field setpoint.  So for example, if the magnetic field setpoint is 8000 gauss, and the two current setpoints are .00001 amp, and .0001 amp, it will run the meauserement twice for the 2 current setpoints for each magnetic field setpoint.  What I am trying to do is that sometimes, I might have to edit the magnetic field setpoints while the program is running.  I am having trouble with refreshing the magnetic field setpoints, which allows the user to input a new magnetic field setpoint while it is running.

  • How can I make a while loop wait 10 seconds before iterations​?

    I am using labview to for an osmosis system that measures the amout of water lost from the reading on a scale.  
    I currently have the program displaying the data from 3 scales every second.
    I also need to calculate the flux through the membrane over time.
    I do this with a function that takes a change in the scale reading over time (with a shift register) followed by a series of mathematical conversions.
    The readings from the scale display OK every second, but I need to have at least 10 seconds between flux calculations.
    So my question is, how do I make a the shift register take one value from the scale, then wait 10 seconds before taking the second value?  That way I have the mass of water lost over a 10 msecond period.  
    Below is my current while loop for Flux using shift registers from data from 3 scales.  
    Any helkp would be great!
    Also, I'm new at LabVIEW...

    Bob_Schor wrote:
    Do you understand how Dataflow (a key idea behind LabVIEW) works?  If you put a Wait (ms) function (on the Timing Palette) with 10000 (10,000 milliseconds = 10 seconds) inside your While Loop, the principles of Data Flow will require all of the functions inside the While (specifically the Wait function) to finish their execution before the loop can run again.  As everything else in the loop takes approximately 0 seconds, this will make your loop run once every 10 seconds.
    Bob Schor
    I do not think that is a good idea. 
    The inner loop should be in sync with the outer loop, not run independent on it's own timer.
    If the inner loop is running independently you run the risk of using stale data.
    Actually  altenbach is right the inner loop does not need to be a for loop at all, but rather just a case like my suggestion (without the for loop) and the shift registers should be out on the main loop.
    My suggestion was a quick solution going by what little bit of the block diagram I could see, but if the entire code was posted I am sure we would see where more improvements could be made and possibly even a better solution.

  • Using a DAQ value in a location outside of the While Loop it is placed in

    I am writing a program that records the speed of a car and then is supposed repeat the action through the use of an actuator.  I was able to write the program to the point where I am saving the data into a .txt file and will be able to read it back out.  My problem is that I need to use a dbl value that I am calculating from the output of a DAQ Assistant block that is contained inside a while loop in another part of the program to compare current speed vs. recorded speed then output an action.  Everytime I try to draw a connection outside of the while loop, the actual value is not read outside of the loop.  I cannot put the other part of the program into the while loop because the while loop only performs every .1 to 1 second and I need the output to the actuator to be a continous string delievered to the serial port.  I also cannot create another DAQ Assistant block that reads the same port outside of the while loop.  I have thought about using a jumper to another input on the input card, but I would prefer not to use the extra space.
    So generally speaking, I'm wondering if there is a way to read a value obtained from a DAQ Assistant block outside of the while loop it is contained in.
    Thanks to anyone that can help!!!
    Travis

    Cheers,
    I am not 100% sure what your problem is but how about writing the red value into the local variable and reading it outside of the loop? Or enqueue the value into the queue and dequeue it in the other loop (Producer/Consumer Structure (Data))?
    Br,
    Jick

  • Loop through result set and delete row

    so here is what I need -
    I have a query that pulls rows from the Database through a stored procedure.(these are properties in an area)
    Before I start looping through the query, I need to check the distance between my current location and the property. If it less than 5 miles, only then should I display that property. The distance in miles will be chosen while submitting the search form.
    So is there a way to delete rows from the result set based on the criteria? Or
    Is there a better way to accomplish this? I am using the the google api to get the latitudes and longitudes. The other issue to keep in mind is the load time.
    Thanks

    You can do this the easy way or the hard way.  Depends on whether your condition that needs to be checked can be expressed in the form of a SQL where clause.  If it can, then do what BKBK suggested, and use a query of query to create a new resultset that only has the rows from the original resultset that don't meet your condition.
    If the calculation of the condition is more complex, then do a CFLOOP over the query and examine each row to see if you want to keep it or toss it.  if you want to toss it, the delete that row - there is a function in CFLIB.ORG called querydeleterow that should help you.  Or, you could just clear out the row's contents and then do the query of query as described in BKBK's post to create a new resultset that doesn't include the blank rows.

  • Sir i am using datasocket read ,i am communicating with java but my problem is that bcz im using while loop to see if value has changed my labview consumes all the processors time ,sir i want a event like thing so that while loop is not in continuous loop

    sir i have given lot of effort but i am not able to solve my problem either with notifiers or with occurence fn,probably i do not know how to use these synchronisation tools.

    sir i am using datasocket read ,i am communicating with java but my problem is that bcz im using while loop to see if value has changed my labview consumes all the processors time ,sir i want a event like thing so that while loop is not in continuous loopHi Sam,
    I want to pass along a couple of tips that will get you more and better response on this list.
    1) There is an un-written rule that says more "stars" is better than just one star. Giving a one star rating will probably eliminate that responder from individuals that are willing to anser your question.
    2) If someone gives you an answer that meets your needs, reply to that answer and say that it worked.
    3) If someone suggests that you look at an example, DO IT! LV comes with a wonderful set of examples that demonstate almost all of the core functionality of LV. Familiarity with all of the LV examples will get you through about 80% of the Certified LabVIEW Developer exam.
    4) If you have a question first search the examples for something tha
    t may help you. If you can not find an example that is exactly what you want, find one that is close and post a question along the lines of "I want to do something similar to example X, how can I modify it to do Y".
    5) Some of the greatest LabVIEW minds offer there services and advice for free on this exchange. If you treat them good, they can get you through almost every challenge that can be encountered in LV.
    6) If English is not your native language, post your question in the language you favor. There is probably someone around that can help. "We're big, we're bad, we're international!"
    Trying to help,
    Welcome to the forum!
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

Maybe you are looking for

  • CS3 will not open on my 64 bit Vista.  Please Help

    Hello   I just picked up Phot Shop CS3 installed it on my Lap Top  with Vista Ultimate 64 bit.  It installed fine,  but when I try and open it a windows error message comes up in encountered and error and closes the program.   I have another laptop w

  • Quicktime 7.1.5 will not install!!!!!!!!!!!!!!!!!!!!!!!

    Ok long day short, bad bad day and this update will not finish. Like it gets all the way there and then stops and a message in the screen where the little bar thingy is and says please try installing again. Anyone know the deal?

  • Custom Report for Pricing Conditions Master

    Hi Everyone, We know that Pricing Conditions Master Data is stored in KONH and KONP. If a condition is populated in a document then transactional data can be obtained from KONV with 'condition record number' as the foreign key. The requirement is to

  • Droid x unlock button gash

    I have currently had the droid x about a month now and I have been trying to protect it in every way including seen screen protectors and a case. I was deeply sadden to see my unlock button key with a gash on it. Has any one else notice this? Is ther

  • Why will the iOS 7 download but not install?

    why will the iOS 7 download but not install?