Creating an Array

Hi All,
I was trying to build an array for an XIRR formula and was running into issues. I've never built an array and the formulae are challenging to understand if you're trying to learn! Basically, there are two items you need in an XIRR formula -- values and dates. My values are within a column on my report called {Main.Net Investor Contributions / Distributions}. This particular column can have hundreds of data points, although my formula for some reason is picking up the first value only. I think the only way to get crystal to see all of the other values is by building an array.
I've leveraged off of another old post and used the formula there, but it's still not seeing all of the other values. The formula is:
whileprintingrecords;
numbervar x:= x + 1;
datetimevar array d;
numbervar array n;
redim preserve d[x];
redim preserve n[x];
d[x]:= {Main.GL Date};
n[x]:= {Main.Net Investor Contributions / Distributions};
Does anyone see any issues with this? Or maybe there's a simpler way of creating the array formula?
Any help on this would be greatly appreciated!
Regards,
Brandon

MIKE! It worked! I structured the setup similar to yours. I'm pretty sure this was happening because it was executing it in the wrong order, where the array hadn't printed records yet.
Thanks a ton mike, I really really appreciate it!!
For anyone who looks at this post later, the array setup is below along with very helpful documentation.
www.mindspring.com/~jbesch/cr_arrays.pdf <- Gives you detailed information on very basic arrays and continues into more complex array builds
http://publib.boulder.ibm.com/infocenter/rsahelp/v7r0m0/index.jsp?topic=/com.businessobjects.integration.eclipse.designer.doc/designer/Functions101.html <-Describes XIRR formula and gives examples
DETAIL Array Formula:
//Creates Value/Date Array
numbervar x:= x + 1;
datetimevar array d;
numbervar array n;
redim preserve d[x];
redim preserve n[x];
d[x]:= DateValue({Main.GL Date});
n[x]:= ToNumber({Main.Net Investor Contributions / Distributions});
Group Footer 1a
Formula 1 - Display Date Array (Completed by Mike)
//This shows you your array in a line to verify array
whileprintingrecords;
datetimevar array d;
//d[1]
local stringvar d_output;
local numbervar j;
for j:=1 to UBound(d)
do
d_output := d_output & "," & totext(d[j],"MM/dd/yyyy","")
d_output
Formula 2 - Display Value Array (Completed by Mike)
//Displays values in line to verify array
whileprintingrecords;
numbervar array n;
local stringvar n_output;
local numbervar i;
//n[1]
for i:=1 to UBound(n)
do
n_output := n_output & "," & totext(n[i],0,"")
n_output
Group Footer 1b
//XIRR Formula (Completed by Mike)
whileprintingrecords;
numbervar array n;
datetimevar array d;
XIRR (n, d)
Group Footer 1c (or B)
//IRR Formula (Completed by Mike)
whileprintingrecords;
numbervar array n;
IRR (n)

Similar Messages

  • Main.vi creates 2D Arrays and I want to save the arrays in an microsoft Excel file(e.g engine_1)and in differnt worksheets(e.g. measure_1;measure_2;...)

    main.vi creates 2D Arrays and I want to save the arrays in an microsoft Excel file(e.g engine_1)and in differnt worksheets(e.g. measure_1;measure_2;...)
    The path(Grundpfad)for the excel file should be inserted in the main.vi.

    1. There's a shipping example called Write Table To XL.vi (Help>Find Examples>Communicating with External Applications>ActiveX>Excel) that you can use as a starting point.
    2. Buy the LabVIEW Report Generation Toolkit. Info can be found here.
    3. Search this forum for other examples of writing to Excel.

  • How do you create an array without using a shell on the FP?

    I want to be able to read the status of front panel controls (value, control box selection, etc.) and save it to a file, as a "configuration" file -- then be able to load it and have all the controls set to the same states as were saved in the file. I was thinking an array would be a way to do this, as I have done that in VB. (Saving it as a text file, then reading lines back into the array when the file is read and point the control(s) values/states to the corresponding array element.
    So how do I create an array of X dimensions without using a shell on the front panel? Or can someone suggest a better way to accomplish what I am after? (Datalogging doesn't allow for saving the status by a filename, so I
    do not want to go that route.)

    Thanks so much m3nth! This definitely looks like what I was wanting... just not really knowing how to get there.
    I'm not sure I follow all the icons. Is that an array (top left with 0 constant) in the top example? And if so, that gets back to part of my original question of how to create an array without using a shell on the FP. Do I follow your diagram correctly?
    If I seem a tad green... well I am.
    I hope you understand the LabVIEW environment and icons are still very new to me.
    Also, I had a response from an NI app. engineer about this problem. He sent me a couple of VI's that he threw together approaching this by using Keys. (I still think you are pointing to the best solution.) I assume he wouldn't mind m
    e posting his reply and the VI's for the sake of a good, thorough, Roundtable discussion. So here are his comments with VI's attached:
    "I was implementing this exact functionality this morning for an application I'm working on. I only have five controls I want to save, but they are all of different data types. I simply wrote a key for each control, and read back that key on initialization. I simply passed in property node values to the save VI at the end, and passed the values out to property nodes at
    the beginning. I've attached my initialize and save VI's for you to view. If you have so many controls that this would not be feasible, you may want to look into clustering the controls and saving the cluster as a datalog file.
    Attachments:
    Initialize_Settings.vi ‏55 KB
    Save_Settings.vi ‏52 KB

  • Is it possible to/how can I create an array of arrays in Labview 6i?

    I am trying to create a data structure based on a tree where each limb is an array of arrays and each of those arrays is an array of arrays...etc. My ultimate purpose of this is for multidimensional (infinite) data saving/data recovery.

    I suspect it won't work for your intended application, but here is an answer to your question:
    You can't create an array of arrays, because that would be the same as increasing the number of dimensions of the array. However, you can store an array in a cluster, then have an array of clusters with arrays in them. So, indirectly it is possible. This gives you the possibility of each array being a different size.
    Bruce
    Bruce Ammons
    Ammons Engineering

  • How can I create a array with all files from a directory

    How can I create a array of files or varchar with all files from a directory?

    I thought the example could be improved upon. I've posted a solution on my blog that doesn't require writing the directory list to a table. It simply returns it as a nested table of files as a SQL datatype. You can find it here:
    http://maclochlainn.wordpress.com/2008/06/05/how-you-can-read-an-external-directory-list-from-sql/

  • I want to create an array that goes into a case structure where each element in the array is an individual case and gets done in order

    I want to create an array that goes into a case structure where each element in the array is an individual case and gets done in order. Any ideas, I've been playing with the idea but have had no luck, is this even possible?

    Hi,
    Please check it out the attached Vi.. Is this you need?
    Sasi.
    Certified LabVIEW Associate Developer
    If you can DREAM it, You can DO it - Walt Disney
    Attachments:
    Event.vi ‏11 KB

  • How to create an array in if/else or case structure without 0's ?

    Hello,
    I've been trying to do this for a while now.
    I only managed to think of this in three ways:
    1. (What I'm doing right now Create the array by going through a for loop, which populates the array by auto indexing. It populates with correct number if true and with a '0' if false. The idea was to delete the 0's later on in the code. This however seems highly ineffective.
    2. Make use of a shift register, which automatically adds the correct number to an array. The problem is that the array will keep growing and growing and at the very least would tremendously slow down my program. At worst, it would crash.
    So, my question is: How do I create an array that if a comparison is true, it puts the element in and if not it does nothing ?
    I've attached a PNG snippet of my code.
    Kind Regards,
    David.
    Solved!
    Go to Solution.
    Attachments:
    Get_Indices.png ‏24 KB

    Pladio wrote:
    I've been trying to do this for a while now.
    You did not explain what "this" is. Can you give some typical inputs and expected outputs? Populate your controls and indicators with typical data and make it the default efore attaching.
    Pladio wrote:
    So, my question is: How do I create an array that if a comparison is true, it puts the element in and if not it does nothing ?
    Your code show three different comparisons. Which one are you talking about.
    Pladio wrote:
    I've attached a PNG snippet of my code.
    That code makes very little sense. Why is there a shift register if the data in it never changes? What is the purpose of the inner FOR loop? Why are you creating a 2D array?
    Do you want to remove all rows where the corersponding SD is zero, for example?
    LabVIEW Champion . Do more with less code and in less time .

  • How to create an array with Generic type?

    Hi,
    I need to create a typed array T[] from an object array Object[]. This is due to legacy code integration with older collections.
    The method signature is simple:public static <T> T[] toTypedArray(Object[] objects)I tried using multiple implementations and go over them in the debugger. None of them create a typed collection as far as I can tell. The type is always Object[].
    A simple implementation is just to cast the array and return, however this is not so safe.
    What is interesting is that if I create ArrayList<String>, the debugger shows the type of the array in the list as String[].
    If I create ArrayList<T>, the class contains Object[] and not T[].
    I also triedT[] array = (T[]) Array.newInstance(T[].class.getComponentType(), objects.length);And a few other combinations. All work at runtime, create multiple compilation warnings, and none actually creates T[] array at runtime.
    Maybe I am missing something, but Array.newInstace(...) is supposed to create a typed array, and I cannot see any clean way to pass Class<T> into it.T[].class.getComponentType()Returns something based on object and not on T, and T.class is not possible.
    So is there anything really wrong here, or should I simply cast the array and live with the warnings?
    Any help appreciated!

    Ok. May be you could keep information about generic type in the your class:
    public class Util {
        public static <T> T[] toTypedArray(Class<T> cls, Object[] objects){
            int size = objects.length;
            T[] t = (T[]) java.lang.reflect.Array.newInstance(cls, size);
            System.arraycopy(objects, 0, t, 0, size);
            return t;
    public class Sample<T> {
        Class<T> cls;
        T[] array;
        public Sample(Class<T> cls) {
            this.cls = cls;
        public void setArray(Object[] objects){
            array = Util.toTypedArray(cls, objects);
        public T[] getArray(){
            return array;
        public static void main(String[] args) {
            Object[] objects = new Object[] { new LinkedList(), new ArrayList()};
            Sample<List> myClass = new  Sample<List>(List.class);
            myClass.setArray(objects);
            for(List elem: myClass.getArray()){
                System.out.println(elem.getClass().getName());
    }

  • How to create an array in bpel?

    I am trying to integrate a web service into open-esb. The web service consumes an unbounded array of a "userInfo" data structure. The issue is that although I can create bpel to receive a message like this, due to type incompatibilities I need to create a different array within bpel to pass to the webservice.
    To date I have not found a way to create an array within open-esb's bpel. After extensive googling I have found that other ESBs define their own proprietary extensions to add nodes to an array.
    Thus I have two questions:
    First, does open-esb support creation of arrays? and if so, how do I create the array and add nodes to it?
    Second, and perhaps more importantly, is using an <assign> activity the best way to transfer a potentially large array from one variable to another (i.e., will it perform well)? Or should I use XSLT to transform the array from one wsdl type to another? And if XSLT is the answer, how can I do this within open-esb?
    Thanks in advance,
    Steve
    PS. Based on the various googlings Ive been doing this question seems to be frequently asked. If someone will help me find a solution I plan on writing a short "how-to" article for posting back to the community. Given that arrays are one of the most basic data structures I hope the article will be useful for others struggling with this issue.

    I think this is all covered in Steve-Nies other thread concerning this subject, entitled "Need help with BPEL please" (http://forum.java.sun.com/thread.jspa?threadID=5116270&tstart=0)

  • How do I create an Array of Images

    Hi,
    I'm creating a program that basically is a slideshow. It has buttons that allow the user to switch from image to image, and has some audio in the background. I was wondering how I might create an array to store the images. I'm very new to Java, so please no detail is too small. I've just started using arrays, so I'm not sure where I would store the files or how to call the images. Please be descriptive and as dumbed down as possible :)
    Thanks for the help!

    I like ArrayList
    ArrayList<BufferedImage> myPics = new ArrayList();then just dump them in with add(myBufferedImage)
    If you'e not using BufferedImages then just change the BufferedImage to Image.
    to get, say the 6th image back out, then use:
    myBufferedImage = myPics.get(5);the index starts at 0 and should be addressed as 0 to (myPics.length - 1)

  • "Using a CIN to Create an Array of Strings in LabVIEW" example crashes LV on Linux

    Tried to utilize this NI example: "Using a CIN to Create an Array of Strings in LabVIEW" (http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B4B282BE7EF907C8E034080020E74861&p_node=&p_source=External)
    Compiles OK with the makefile made by the LV's lvmkmf utility. Nevertheless when I try to run the VI (with the code loaded into the CIN, of course), LabVIEW 7.1.1 on a SUSE 9.3 Linux machine crashes:
    LabVIEW caught fatal signal
    7.1.1 - Received SIGSEGV
    Reason: address not mapped to object
    Attempt to reference address: 0x0
    Segmentation fault
    Any ideas? Did anybody try this on a Windows machine?

    H View Labs wrote:
    Tried to utilize this NI example: "Using a CIN to Create an Array of Strings in LabVIEW" (http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B4B282BE7EF907C8E034080020E74861&p_node=&p_source=External)
    Compiles OK with the makefile made by the LV's lvmkmf utility. Nevertheless when I try to run the VI (with the code loaded into the CIN, of course), LabVIEW 7.1.1 on a SUSE 9.3 Linux machine crashes:
    LabVIEW caught fatal signal
    7.1.1 - Received SIGSEGV
    Reason: address not mapped to object
    Attempt to reference address: 0x0
    Segmentation fault
    Any ideas? Did anybody try this on a Windows machine?
    This code is badly broken. In addition to resizing the actual handle to hold the number of string handles you also would need to create the string handles itself before attempting to write into them. NumericArrayResize is the fucntion to use as it will either resize an existing handle (if any) or create a new one if the value is uninitialized (NULL).
    /* resize strarr to hold handles to NUMSTRINGS strings */
    err = SetCINArraySize((UHandle)strarr, 0, NUMSTRINGS);
    if (err)
    goto out;
    /* perform this loop once for each element */
    /* of array of strings being created */
    for (i = 0; i < NUMSTRINGS;) {
    LStrHandle handle = (*strarr)->arg1[i];
    /* determine length of string that will be element of strarr */
    strsize = StrLen(str[i]);
    err = NumericArrayResize(uB, 1, &handle, strsize);
    if (err)
    goto out;
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    /* moves strsize bytes from the address pointed to */
    /* by str[i] to the address pointed to by the data pointer in the handle */
    MoveBlock(str[i], LStrBuf(*handle), strsize);
    /* manually set size of string pointed to by *strarr */
    (*((*strarr)->arg1[i]))->cnt = strsize;
    /* manually set dimSize of strarr */
    (*strarr)->dimSize = ++i;
    return noErr;
    out:
    return err;
    Rolf KalbermatterMessage Edited by rolfk on 06-30-2005 03:15 AM
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to create Componet array in NetBean?

    I want to create ten or more text field with same format.
    Also want to use NetBean to done it with out typing the code self.
    How can I do?
    I mean whether easy and fast method to create componet array in netbean.

    I want to create ten or more text field with same
    format.
    Also want to use NetBean to done it with out typing
    the code self.Why not? because it's the fastest, simplest and safest way.
    How can I do?
    I mean whether easy and fast method to create
    componet array in netbean.Just like oyu'd do it without Netbeans.
    If you still want to do it in Netbeans, I suggest reading the manual. This is not a Netbeans product support forum, and I'm definitely not inclined to help as you don't want it done by writing code yourself.

  • Formatted .data file, reading in and creating an array of objects from data

    Hi there, I have written a text file with the following format;
    List of random personal data: length 100
    1 : Atg : Age 27 : Income 70000
    2 : Dho : Age 57 : Income 110000
    3 : Lid : Age 40 : Income 460000
    4 : Wgeecnce : Age 43 : Income 370000
    and so on.
    These three pieces of data, Name,Age and Income were all generated randomly to be stored in an array of objects of class Person.
    Now what I must do is , read in this very file and re-create the array of objects that they were initially written from.
    I'm totally lost on how to go about doing this, I have only been learning java for the last month so anyone that can lend me a hand, that would be superb!
    Cheers!

    Looking at you other thread, you are able to create the code needed - so what's the problem?
    Here's an (not the only) approach:
    Create an array of the necessary length to hold the 3 variables, or, if you don't know the length of the file, create a class to contain the data. Then create an ArrayList to hold an instance of the class..
    Use the Scanner class to read and parse the file contents into the appropriate variables.
    Add each variable to either the array, or to an instance of the class and add that instance to the arraylist.

  • Trying to create an array of a class

    This is the first time ive tried to use an array so its not surprising im having trouble.
    this is my program:
    import java.util.*;
    public class studentRecordDemo
         public static void main(String[] args)
              int studNum, index;
              System.out.println("Enter the number of students you wish to record");
              Scanner keyboard = new Scanner(System.in);
              studNum = keyboard.nextInt();
              studentRecord student[] = new studentRecord[studNum];
              for (index = 0; index < studNum; index++)
              {student[index].readInput();
              student[index].writeOutput();}
    }And it lets me compile it but when i enter a number it gives me the error:
    Exception in thread "main" java.lang.NullPointerException
    at studentRecordDemo.main(studentRecordDemo.java:15)the
    So yeah im trying to create an array of the class "studentRecord" and the number is input by the user. Is there a way to make that work or would it be easier to just make the array a really high number?

    your error is in here:
    student[index].readInput();its null...
    This is the first time ive tried to use an array so
    its not surprising im having trouble.
    this is my program:
    import java.util.*;
    public class studentRecordDemo
         public static void main(String[] args)
              int studNum, index;
    System.out.println("Enter the number of students
    ts you wish to record");
              Scanner keyboard = new Scanner(System.in);
              studNum = keyboard.nextInt();
    studentRecord student[] = new
    ew studentRecord[studNum];
              for (index = 0; index < studNum; index++)
              {student[index].readInput();
              student[index].writeOutput();}
    }And it lets me compile it but when i enter a number
    it gives me the error:
    Exception in thread "main"
    java.lang.NullPointerException
    at
    studentRecordDemo.main(studentRecordDemo.java:15)the
    So yeah im trying to create an array of the class
    "studentRecord" and the number is input by the user.
    Is there a way to make that work or would it be
    easier to just make the array a really high number?

  • How to create an array of Vectors ?

    Can I create an array of vectors in Java ? For instance I want to have an array of days in a year, an on each day there are several things to do, and I don't know this up front, so I want it to be a Vector holding the things_to_do object, some days might have nothing to do, so there should be null or an empty vector for that day. So I came up with something like the following :
    Vector<Things>[] Days_Array=new Vector<Things>[365];
    But Java doesn't allow this ?
    Frank

    Opps , I forgot to ask, although it compiled successfully, but it gave me a warning : [unchecked] unchecked conversion
    I wonder if there is a way to fix it without turning the warning off, what I meant is : Am I missing something that caused the warning that I should add to the code, I don't want to turn off the warning. For instance how can I make the "conversion" checked ?
    Frank

  • How to create an array of ArrayLists?

    Hello,
    I'm trying to compile the following code:
    ArrayList<Object> arr[];
    arr = new ArrayList<Object>()[size];in order to create an array of ArrayLists. I'm being met with the following compilation error:
    The type of this expression must be an array type but it resolved to ArrayList<Object>
    Can anyone show me how to correctly do this?
    Thanks

    {color:#3D2B1F}This line:
    List<Object>[] arr = new ArrayList<Object>[5];generates the compiler error: "generic array creation" (generics and arrays don't play well together)
    Since you are just parameterizing with Object, you can use non-generic collections:
    List[] arr = new ArrayList[5];Me? I don't like mixing arrays and collections. I would have a list of lists:
    List<List<X>> matrix = new ArrayList<List<X>>();{color}

Maybe you are looking for

  • Animated GIFs in iPhoto...please?

    Whether Apple does it or there's a third-party workaround, it would sure be nice if someone would make iPhoto an animated GIF friendly application.  Apple geniuses, are you listening?  How about supporting the animated GIF in iPhoto?

  • Error during export & import of rules in RAR 5.2

    Hi all, We followed the steps mentioned in exporting & importing the rules as per the Config guide. But we are receiving the below error during the import of rules. Can anybody please throw a limelight on why this error message is appearing? "Error i

  • Does anyone know what this font is?

    http://i23.photobucket.com/albums/b383/p3ernie/2012-07-02_09-45-58_951.jpg Thanks in advance

  • How much data does facetime use on my ipod 4

    My ipod touch 4g wgen i go to settings it says. 7.1gb available and 6.6 gb used but mine is a 16gb and when you add it up its only 13.7  and i think it has something to do with facetime cause i call like every day and it  lasts for pike one hour and

  • How do I download and install photoshop if I already bought the installation disk?

    Hi, so I ordered a MacBook pro with retina display from best buy and I also bought photoshop so that I could install it to my computer but I didn't realize this MacBook doesn't have a CD drive. I don't know what to do since the photoshop installation