Array not updating in a subvi

Dear champions,
When user selects a particular input, the array will output 10 values and for another input, it will output 7 values.
The problem is that, on repetitive calling, when selecting second input, array has 7 values + last 3 values outputted by the first call.
How to handle this? I used local variables, but no use.
Thanks & Regards,
Mathan
Message Edited by mathan on 07-01-2008 12:50 AM

Dear mike,
I can't able to post that code here. Please understand. I will explain bit more in detail.
Actually, the user will select either 1 or 2. If he selects 1, then there will be some output (10 values) in an array. If he selects 2, then there will be some 7 values outputted in the same array.
On continuous calling of this vi in another vi, when the user selects 2, the array holds first 7 values correct, but the last 3 values remains showed (occured during selection of 1) and not cleared.
But in the same vi, it works great. That is for selection of 1, it holds 10 values and selection of 2 will shows 7 values.
Give me a workaround. I tried with initialize array clearing the array at the time of each call. But nope....

Similar Messages

  • Main VI is not updating the data from subVI

    Dear all,
    I
    have a Vi A using the data front a subVi B. When I run it, I see the
    data is updating in the subVI, but not the main Vi and the Front Panel.
    The subVi has three output channels and the main Vi tries to display
    those three channel data on the Front Panel.
    Could somebody tell me how I can solve the problem?
    Thanks a lot.
    Roy
    Solved!
    Go to Solution.

    You could probably use Control Refnums but as Dennis mentioned, be sure to explain the use case to us.
    How Can I Update the Changes Made to a Control/Indicator from a SubVI on the main VI?
    Message Edited by Adnan Z on 06-02-2009 02:48 PM
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies

  • DAQ Assistant in subvi not updating output to DAQ board with each call...

    Hi All,
    I am calling a simple subvi that creates a user-defined number of pulses with "Square Waveform.vi."  This square wave (with the given total number of pulses) is then used as an input to a DAQ Assistant controlling an analog output signal on a NI USB-6259 DAQ board.  I am using Labview 8.5 right now.
    However, each time I call this subvi from my main program, the output I measure from the DAQ board is identical to whatever I set in the first call (i.e., if i created two pulses in the first call, I get two pulses on every call, regardless of the input I feed to the subvi).  The multiple calls to this subvi are made in sequential frames in a stacked sequence.  I believe stacked sequences are frowned upon by good labview people, right?  But putting that aside for the moment...
    The "#-of-pulses" input I give to the subvi is updated in a subvi front panel number indicator and a graph of this waveform.  Just not in the real output I measure from the board.  Why is the hardware output being asserted (with the original input value) before this new number can reach the DAQ Assistant?
    The sloppy fix to this is just to put that square wave creation code in my main program each time I need it.  This does work and fixes my problem.  However, I would like to use subvis to keep things clean.
    I am not a good Labview programmer, but have used this software for a number of projects and am stumped by this.  Any ideas?
    Thanks,
    John

    Hi John,
    I am running your code over here and seeing
    the same results.  I believe the problem is that the DAQ Assistant is
    being called inside a loop (really a sequence structure, but
    nonetheless more than once).  Sometimes it is difficult to troubleshoot
    the DAQ Assistant in cases like this--it is trying to be "smart" and
    seems to be avoiding re-configuring its parameters inside the loop. 
    This is intended to improve loop speed for when customers are
    performing continuous operations.  In this case, it is performing a
    finite generation, and the number of samples generated appears to carry
    over from one loop iteration to the other.
    It sounds
    like you have discovered one workaround for this already: putting a DAQ
    Assistant in each frame of the main VI.  Two other options that come to mind are:
    Use the lower-level DAQmx functions inside
    the sub VI.  Here you will have explicit control over when the task is
    created and cleared, and when parameters are set.  You can find
    examples of how to use the DAQmx API in the Example Finder at:
    Help >> Find Examples... >> Hardware Input and Output >> DAQmx
    Write
    a consistent amount of samples to the DAQ assistant by "zero-padding"
    your signal.  For example, instead of writing [10, 1010], try writing
    [1000, 1010].  In this case, it wouldn't need to reconfigure the number
    of samples to generate.
    One lesson to take away here is
    that the DAQ Assistant is good for basic functionality, but for more
    advanced control over the execution and configuration of your task you
    should learn to use the lower-level DAQmx functions.  In this case it
    sounds like the problem is actually a bug.  I'll file a bug report, since the DAQ
    Assistant is not checking for waveform timing changes even though your
    timing is set to Use
    Waveform Timing.
    Thank you for pointing out this odd
    behavior--out of curiosity which version of DAQmx are you using? 
    -John
    John Passiak

  • Hi I have subvi in subpanel does not update after opening

    Hi I have a problem with subvi updating inside the subpanel, after opening.
    I need  your advice, I am using  LabView 7.1.
    I am asking  for your opinion before I can post my code  because it is very large and made of many files outside the folder.
    Here's the description of my problem.
    - In the main vi, it has an event structure to open 3 references of the files, based on the ring control, Not only that, it also has events for many controls.
    - In each subvi, it also has an event structure ofr it's own controls to work inside
    - After opening the subvi in the subpanel, the controls like strings, are not updated, till the main vi is minimised and maximised again. Then the controls are updated. Weird... But then other controls are unresponsive and in the end I aborted it.
    Funny thing is that, when I stripped most of the parts, leaving the essential ones I wanted to focus and debug.
    It seems working and no problem.
    How am I going to troubleshoot? I don't have any faintest idea as to how to find the cause of trouble?
    Clement

    astroboy wrote:
    Funny thing is that, when I stripped most of the parts, leaving the essential ones I wanted to focus and debug.
    It seems working and no problem.
    The only think i can think of, strip the parts one by one ... when it works, probably you will have find the prolem (the last stripped).

  • Labview graph scale labels do not update

    I am using XScale.NameLbl.Text and YScale.NameLbl.Text graph properties to programmatically change the labels on the X & Y axis. It seems to work when I run the subVI containing the graph, but when the subVI is placed in an application, they do not update based on the plot data that is selected to be plotted.
    Attachments:
    WC3000_Histogram_Plots.vi ‏96 KB

    I think I understand your question. Your subvi has the waveform wired as an output. In the main vi that calls the subvi, you wire the output to a graph - correct? So you're looking for the graph properties in the subvi to be transfered to the main vi graph - correct?
    If this is correct - it doesn't work that way. The waveform is just a cluster of t0, deltat, and the y array of data. None of the graphs properties are passed out of the subvi.
    There are many ways to do what you're trying to do. You could wire the returned strings that you use for x and y labels as outputs of the subvi, then update the property node of the main vi graph. You could also pass a reference to the main vi graph to the subvi and make the x and y label changes to the main vi graph in
    the subvi. I think the first option is probably easier.
    Tim

  • Return results from ADEP in AS3 Arrays, not ArrayCollections

    Hi all,
    Is there any way to force ADEP to return results from data services in simple AS3 Arrays, not ArrayCollections? Here are my situation:
    In my project I use ADEP Data Management Services. To connect to ADEP services we use RTMP channel defined in services-config.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <services-config>
         <services>
              <service-include file-path="remoting-config.xml" />
              <service-include file-path="proxy-config.xml" />
              <service-include file-path="messaging-config.xml" />
              <service-include file-path="data-management-config.xml" />
              <service-include file-path="managed-remoting-config.xml" />
              <service class="fiber.data.services.ModelDeploymentService" id="model-deploy-service" />
              <default-channels>
                   <channel ref="my-rtmp"/>
              </default-channels>
         </services>
         <channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel">
              <endpoint url="rtmp://{server.name}:1000" class="flex.messaging.endpoints.RTMPEndpoint"/>
              <properties>
                   <idle-timeout-minutes>20</idle-timeout-minutes>
                   <block-rtmpt-polling-clients>true</block-rtmpt-polling-clients>
                   <rtmpt-poll-wait-millis-on-client>0</rtmpt-poll-wait-millis-on-client>
              </properties>
         </channel-definition>
    </services-config>
    To manage data in database we defined data services in data-management-config.xml like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <service id="data-service" class="flex.data.DataService">
        <adapters>
            <adapter-definition id="java-dao" class="flex.data.adapters.JavaAdapter"/>
            <adapter-definition id="mr-java-dao" class="flex.data.adapters.ManagedRemotingDataAdapter" />
            <adapter-definition id="actionscript" class="flex.data.adapters.ASObjectAdapter" default="true"/>
        </adapters>
        <default-channels>
            <channel ref="my-rtmp"/>
        </default-channels>
        <destination id="SomeProduct.SomeItems">
            <adapter ref="java-dao" />
            <properties>
                <source>flex.data.assemblers.SQLAssembler</source>
                <scope>application</scope>
                <metadata>
                    <identity property="ID" />
                </metadata>
                <server>
                    <database>
                        <datasource>java:comp/env/jdbc/SP</datasource>
                    </database>
                    <actionscript-class>com.somecompany.classes.SomeCoolClass</actionscript-class>
                    <create-item>
                        <procedure name="SomeItems_Insert">
                            <procedure-param property-value="#Session_ID#" />
                            <procedure-param property-value="#Division_ID#" />
                            <procedure-param property-value="#Salesrep_ID#" />
                            <procedure-param property-value="#Area_Code#" />
                            <procedure-param property-value="#Item_ID#" />
                        </procedure>
                        <id-query>SELECT IDENT_CURRENT('Work_Area_Item')</id-query>
                    </create-item>
                    <fill>
                        <name>all</name>
                        <procedure name="SomeItems_Get">
                            <procedure-param property-value="#Session_ID#" />
                            <procedure-param property-value="#Last_Sync_Time#" />
                        </procedure>
                    </fill>
                    <update-item>
                        <procedure name="SomeItems_Update">
                            <procedure-param property-value="#Session_ID#" />
                            <procedure-param property-value="#Division_ID#" />
                            <procedure-param property-value="#Salesrep_ID#" />
                            <procedure-param property-value="#Area_Code#" />
                            <procedure-param property-value="#Item_ID#" />
                       </procedure>
                    </update-item>
                    <delete-item>
                        <procedure name="SomeItems_Delete">
                            <procedure-param property-value="#Session_ID#" />
                            <procedure-param property-value="#Item_ID#" />
                        </procedure>
                    </delete-item>
                </server>
            </properties>
        </destination>
    </service>
    By default, ADEP returns results from SomeProduct.SomeItems destination to Flex side as ArrayCollection of SomeCoolClass instances but I need the data to be returned in simple AS3 Arrays. Recently, I found that there is small optional serialization configuration in channel-definition that should resolve my problem. So I updated my channel-definition in services-config.xml to this:
    <channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel">
         <endpoint url="rtmp://{server.name}:1000" class="flex.messaging.endpoints.RTMPEndpoint"/>
         <properties>
              <serialization>
                   <legacy-collection>true</legacy-collection>
              </serialization>
              <idle-timeout-minutes>20</idle-timeout-minutes>
              <block-rtmpt-polling-clients>true</block-rtmpt-polling-clients>
              <rtmpt-poll-wait-millis-on-client>0</rtmpt-poll-wait-millis-on-client>
         </properties>
    </channel-definition>
    However, result are still returned in ArrayCollections.
    Any ideas?
    Thanks in advance

    Thom Parker answered this here: http://forums.adobe.com/message/2614570#2614570
    Answer copied below:
    "The problem is that when the focus is on the text box
    it's in edit mode. It's only displaying the value interactively entered by
    the user, or as a consequence of the change event.  What you need to do is
    force the focus off of the text box in code.  You can do a little trick
    where you bounce it to a tiny transparent field, which then bounds the focus
    back so it doesn't look like the focus changed."
    What I ended up doing was calling up the dialog box, then using setfocus with no parameters to remove focus from the field, as follows:
    this.rawValue = this.dialogBoxFunction(this.rawValue); // passing current value so dialog box defaults to that value
    xfa.host.setFocus();
    Cheers,
    Marty.

  • Outlook 2010 SP1 Profile Does Not Update After Moving Mailbox Between Exchange 2010 SP2 Sites

    I am working on a large mailbox migration from one AD site to another. 
    Exchange version at both sites:Exchange 2010 SP2
    Two Mailbox Servers: MBX01 in site A / MBX02 in site B
    (There is a DAG but keeping this simple)
    Two CAS Arrays: CASA.domain.com / CASB.domain.com
    The RPCClientAccessServer property is set accordingly.  Where MBX01 is set to CASA.domain.com and MBX02 is set to CASB.domain.com
    Clients:Outlook 2010 SP1
    Scenario: I successfully move a mailbox from Site A to Site B.  The Outlook client does not automatically update its server settings to point to the new cas array (CASB.domain.com) and continues to connect to the old CAS server (CASA.domain.com).
    I have seen a few articles regarding this pointing to workarounds such as:
    - repairing the outlook profile on the client
    - delete the existing outlook profile
    - run a script to update the prf file (re-cache's email at the client)
    I am interested in knowing if anyone else has experienced this, what their solution was for a large migration and if any roll-ups or service packs have possibly fixed this problem.
    I would also like to know if you have seen this affect ActiveSync devices.  I am getting mixed results in my tests and thought it may be contributed toward different device types, mobile os versions, etc...
    I have posted this to the Exchange 2010 forum as well, just wasn't sure where to start.
    Thanks.
    Mike

    Hi,
    Seems you got several replies in the thread below that you posted in Exchange forum:
    http://social.technet.microsoft.com/Forums/exchange/en-US/68ae67c1-59f5-44bb-aadc-0aea3f72ad2d/outlook-profile-not-updated-to-new-cas-array-after-mailbox-move-between-sites?forum=exchange2010#68ae67c1-59f5-44bb-aadc-0aea3f72ad2d
    Please come back to the thread above and check if the replies are helpful.
    Since this issue is more related to Exchange, we can provide rarely assistance on this problem. If you need any help on Outlook client side, please don't hesitate to let me know.
    I would appreciate it if you could post the solution here when you found it, so that other community members who have same question in this forum will benefit from it.
    Best Regards,
    Steve Fan
    TechNet Community Support

  • Content filter not updating the Wod Doc

    Hi all
    I have created a content filter which updates the "author" value in a Word Doc.
    I have used Apache POI.
    public InputStream getInputStream() throws ContentException {
         try
              POIDocument pdoc;
              IResource resource=this.getResource();
              // HWPFDocument extends POIDocument
               HWPFDocument doc=new HWPFDocument(resource.getContent().getInputStream());
               int rno=Integer.parseInt(resource.getRevisionID());
               pdoc=doc;
              String created= resource.getCreatedBy();
              pdoc=doc;
              pdoc.getSummaryInformation().setAuthor(created);
              doc=(HWPFDocument)pdoc;
              return new ByteArrayInputStream(doc.getDataStream());
         catch (IOException ie)
         catch(WcmException we)
        return null;
    After deploying the PAR file, I restarted the server. Still the author name is not updated inside the document.
    Is there anything wrong with my code?
    Regards
    Parvathy

    Hi Julian
    The FileInputSteam Constructors and their respective parameters are below.
              FileInputStream fin=new FileInputStream(File);
              FileInputStream fin=new FileInputStream(FileDescriptor);
              FileInputStream fin=new FileInputStream(String);
    Which one will I use for my purpose?
    doc.getDataStream()
    returns a byte Array.
    How will I create a FileInputStream Object from a byte Array?
    " write it to a temporary" This I didn't understand.
    Regards
    Parvathy

  • How to update a chart when the array is updated

    Hi I am using an array to populate a chart in FB3 and having trouble updating the chart when the array is updated.
    Chart
             <mx:Label id="archiveTitle" x="10" y="10" text="Current Archive " fontSize="14" fontWeight="bold"/>
             <mx:PieChart id="chart" height="130" width="300" color="0x323232"
                showDataTips="false" dataProvider="{ratingAC}"  y="22">
                 <mx:series>
                    <mx:PieSeries field="Rating"/>
                </mx:series>
            </mx:PieChart>
    Array + Vars
             [Bindable]
             public var newsDB:ArrayCollection = mx.core.Application.application.newsDB as ArrayCollection;
             [Bindable]
             private var positive:int = 1;
             [Bindable]
             private var neutral:int = 0;
             [Bindable]
             private var negative:int = 0;
             [Bindable]
             private var ratingAC:ArrayCollection = new ArrayCollection([
             { Rating: 1 },  // no data
             { Rating: positive }, // [0] positive
             { Rating: neutral }, // [1] neutral
             { Rating: negative }  // [2] negative
            private function init():void{
                   buildChart();
                   newsDB.addEventListener(CollectionEvent.COLLECTION_CHANGE, test);
                   newsDB.addEventListener(CollectionEvent.COLLECTION_CHANGE, buildChart);
            private function test(e:CollectionEvent):void{
                 trace("array changed");
                 positive = 20
            private function buildChart(e:CollectionEvent=null):void{
                 for(var i:int; i<newsDB.length; i++){
                      if(newsDB[i].rateItem == 0){
                           trace(positive);
                           positive += 1;
                           //ratingAC.setItemAt(positive,0);
                           trace(positive);
                      if(newsDB[i].rateItem == 1){
                           neutral += 1;
                      if(newsDB[i].rateItem == 2){
                           negative += 1;

    Sorry, in my app I have an ArrayCollection of items from a news feed that the user has deemed important, and given each item a rating. The For loop will loop through the "newsDB" array and set the var accordingly (positive, negative, neutral). The variables are what is populating the arrayCollection (ratingAC). How would I either a) bind the variables to the ArrayCollection so that it updates when one has changed, or b) update the specific index in the array collection. When debugging, i notice that the variables are updating, but the arrayCollection is not.
    Thanks in advance!

  • Multicolumn listbox value not updating

    we are vi in which we need to update values to listbox, from subvi to main vi, there are several buttons in our subvi and for every subvi there is further one low level vi which appears as popup window, what shold happen is when i calling the lowest level subvi, it has some controls and indicators, those values should get updated to the subvi for every low level vi i have to add value to listbox instead of replacing, it is updating correctly if some element is already there in listbox but if we are clearing that listbox after than trying to add value to it, it is not updating the value. There are 2 columns in listbox , to the first column we want to add the serial number for each device and to the second column we want ti add item description, but the only problem we are facing if listbox is empty it is not updating the value.
    below i am attaching the program, this problem is coming in instrument vi( which is subvi to top level vi,) and all other low level vi( every control on instrument vi is low level vi)
    Attachments:
    Automation start.zip ‏1069 KB

    Thank you for reply,
    below i am attaching the same vi in lower version, i am not getting solution to this problem, why this listbox is not updating if it is not initialized to any value.
    Attachments:
    Automation start.zip ‏753 KB

  • Action Engine indicators do not update?

    This action engine is part of a larger test. I call it every 15 minutes to test for temperature stabilization (four consecutive readings at 15 minute intervals within three degrees)
    It seems to work as far as detecting stabilization but I don't understand why it's numerical array indicators do not update.
    If you run this by it's self and fill numbers in the Temperatures array control all the indicators work.
    But when it is a sub-vi all the indicators remain grayed out or in their initialized state when I open it while it is running.
    I even have brought the Stab Array out with a terminal thinking it would be updated every time the sub-vi ran, but it is not.
    What is going on here?
    Solved!
    Go to Solution.
    Attachments:
    Check Stab.png ‏50 KB

    It seems to work OK for me.
    Here's what I did:
    Put snippet on block diagram
    Disconnected Function control from Type Def
    Wired controls and indicators to connector pane
    Then I placed the AE in a main program. Being lazy, the main uses a breakpoint to stop each execution of the loop so you can vary the Temperature inputs.
    steve
    Weinberg's Second Law: If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
    Help the forum when you get help. Click the "Solution?" icon on the reply that answers your
    question. Give "Kudos" to replies that help.
    Attachments:
    main.vi ‏10 KB
    AE.vi ‏18 KB

  • DLL data from a memory address not updating at correct rate when using DAQ

    Hi,
    I am using a USB DAQPad-6015 to acquire data from 8 analog channels and using an external clock (200Hz). I am also retrieving data from a library function node call which schedules a callback function to run at approximately 1000Hz. The function prototype accepts a pointer to an array, and the array contents are updated each time the callback function is run. Thus in labview I initialize an array and pass this as a parameter and am able to retrieve the data.
    Using an event structure I am sampling the data from the library function node every time the DAQ takes a sample (so at 200Hz). I expect to see no repeated values from the dll data, but this isn't the case.
    I am not sure why this happens. I thought possibly acquiring data from the analog channels takes priority over the scheduled callback function -- thus it might not be running at 1000Hz as I expect -- but I'm wondering if there could be any other explanation.
    Any help would be much appreciated.
    I've attached a simplified version of the VI and the output data.
    Attachments:
    multifunction_data.xls ‏139 KB
    multchan1simp.vi ‏32 KB

    But the data in the array is updated after the library function is first called. I think somehow LabVIEW is accessing this from a memory address. The attached excel file shows the results from the data, and the value is updated every couple of samples. I'm just confused why it isn't updated every sample.
    I do have the source for the C dll though. I'll see if I can modifty it as you suggested.
    The actual callback function is the following:
    extern "C" __declspec(dllexport) HDCallbackCode HDCALLBACK updateDeviceCallback(void *pUserData)
        hdBeginFrame(hdGetCurrentDevice());
        /* Get the current location of the device (HD_GET_CURRENT_POSITION)
           We declare a vector of three doubles since hdGetDoublev returns
           the information in a vector of size 3. */
        hdGetDoublev(HD_CURRENT_POSITION, gServoDeviceData.m_devicePosition);
        hdGetDoublev(HD_CURRENT_JOINT_ANGLES, gServoDeviceData.m_deviceAngles);
        DevDataArray[0] = gServoDeviceData.m_devicePosition[0];
        DevDataArray[1] = gServoDeviceData.m_devicePosition[1];
        DevDataArray[2] = gServoDeviceData.m_devicePosition[2];
        DevDataArray[3] = gServoDeviceData.m_deviceAngles[0];
        DevDataArray[4] = gServoDeviceData.m_deviceAngles[1];
        DevDataArray[5] = gServoDeviceData.m_deviceAngles[2];
        memcpy(pUserData, &DevDataArray, 6*sizeof(HDdouble));
        hdEndFrame(hdGetCurrentDevice());
        return HD_CALLBACK_CONTINUE;    
    Thanks for your reply!

  • Array Insert/Update/Select in JDBC

    I've been using array processing in ODBC, OCI, and Pro*C for years and desperately need to do so in JDBC. I've thus far been unsuccessful and am beginning to doubt that it's supported which to me is unfathomable. I've likewise found many like inquiries on the net - none of which were addressed. There have been many respondants who don't undertstand what array processing is and mistake it for batch SQL statements. They are not the same. Batched SQL statements are seperate statements which are executed in a single call to the database engine. What I'm taking about is using a prepared statement and binding primitive arrays to the statement. A single statement is executed and the contents of the arrays passed to the database. I've conducted tests years ago and array insert/update is many times faster than batch statements. Does anyone know whether or not JDBC supports array processing? If anyone's interested, I can provide snippets via email which illustrate how this is done in ODBC and other API's.
    Thanks.

    You referred me to
    http://java.sun.com/products/jdbc/download.html. The
    only reference I found to arrays were SQL Arrays - not
    what I'm talking about. See prior C/ODBC snippet. Do
    you know how to do this in JDBC?You are talking about passing an array as a single parameter to and from the underlying database correct? (And that has nothing to do with batch processing.)
    If so in section 16.4 "Array Object"..... looking at that section gives the following reference....
    The Array object returned to an application by the ResultSet.getArray and
    CallableStatement.getArray methods is a logical pointer to the SQL ARRAY
    value in the database; it does not contain the contents of the SQL ARRAY value.
    The above has nothing to do with batch processing (although presumably one could use it in a batch process but then one can use String as well.)
    Of course perhaps there is something in there that says that only applies to batch processing. If so could you please point out the section and quote the text.

  • Tabular form does not update

    I don't have a problem, but I would like to offer a solution to people who might make the same mistake as I did:
    When you build a tabular form on a table and the submit button does not seem to work, check whether your table has a primary key.
    I created a table, triggers and all the other constraints and for some reason the (tabular) form I created did not update the table, even though I had told it that the primary key was the ID in the table and it was filled by a trigger (which was true).
    I tried creating a different form on a different table and then I noticed that the primary key was filled in for me this time, and that this hadn't been the case in the first form. I added the primary key to the table and voila, problem solved.
    Is this intended behavior ? I wonder why the user is allowed to specify the primary key when the wizard does not find it, because this does not seem to have any effect. So why not try to find the primary key and warn the user when it is not present?
    Just my 2 cents....

    Sloger,
    if this is your tabular form
    SELECT apex_item.checkbox (30,
    ...and this is your update statement
    FOR i IN 1..APEX_APPLICATION.G_f*30*.COUNT
    ...Then you will only ever update records that have been checked. Unchecked checkboxes are not passed back in the global array. You need to have a hidden column with the ID's for the record and loop through that when you are updating/inserting. That is why the built in tabular form has a MRU and a MRD. the MRU loops through the hidden ID column. The MRD loops through the checkbox.
    Thanks,
    Tyson Jouglet

  • FP.Get Image not working on a subVI if it has a picture control

    Download the attached (7.0).
    Open and save BOTH VIs in your own version. This is important, because it looks like if the VI is recompiled its FP is loaded into memory and the bug is not apparent.
    Run the VI. The indicators in the subVI are not updated the first time you run the VI.
    This happens in 8.6 as well and requires the subVI to have a picture control and to have its FP closed.
    One workaround is to use the first call? primitive and call the Open FP method (with the state set to hidden) when the VI starts running.
    Try to take over the world!
    Attachments:
    SubVI FP not updating.llb ‏30 KB

    Hey Tst,
    Thank you for the feedback.
    I tried the vi's you have attached here and it updated the first time I ran the Caller.vi.
    I must be doing something different from you.
    Aashish M
    Applications Engineer
    National Instruments
    http://www.ni.com/support/

Maybe you are looking for