NI Home > Community > NI Discussion Forums

LabWindows/CVI Idea Exchange

Showing results for 
Search instead for 
Do you mean 
The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea

We use the our development and target installation PC's to support both new and legacy projects that were developed under earlier versions of IVI Compliance.  As the only current way to change IVI versions is to uninstall and re-install, we are stuck using the earliest one as a common denominator.   With hundreds of old projects to re-compile, frequent across-the-board updates are not possible.  Newer versions of instrument drivers such as HSDIO are only compatible with later versions of IVI. 


I would like to have a reasonably easy way to switch IVI versions, so we can support both old and new code from our development PCs.  Even a batch file and some registry edit instructions would be better than the way it is now.  However, that would limit its use in a secure environment where the users don't have general admin privileges.


From an NI business perspective, this may be blocking customers from purchasing upgrades or new NI products.

Currently, it is only possible to load XML for parsing from an xml file.  In order to load xml data from a string, it is necessary to either write to a temporary file, or use the MSXML library directly.  It would be fairly simple to modify the CVIXMLLoadDocument() Function (or create a new function) which uses the MSXML IXMLDOMDocumentloadXML() function, which allows loading XML directly from a string. 


Adding this code to the current function after the IXMLDOMDocumentload() function would improve the CVIXMLLoadDocument() function so that it tries opening the input string as direct XML if it is not a path (Replaces line 167):


__caErrChk(MSXML_IXMLDOMDocumentload(xmlHdl, NULL, variantPath, &success));
	if(!success) //if loading as a path fails, try reading as direct XML code
        __caErrChk(MSXML_IXMLDOMDocumentloadXML(xmlHdl, NULL, fullPath, &success));    

I use SavePanelState and RecallPanelState all the time but it give me error when I add/change existing control. I would like to request save and recall only one control that way I don't have to worry about other controls which I am not interested in.

Status: Under Consideration
That's a good point. I was probably too rash in declining this suggestion.

add new plot styles providing error bars

Status: New
by Trusted Enthusiast on ‎10-20-2011 09:51 AM



I see no easy way to plot data in a scatter plot including their error bars...


Hence I suggest adding plot types such as



If this desire gets accomplished, it would also make sense to add some related attributes, specifying the size, type, and color of the error bar.



Browse any <file>.c, by right-click on a file in project view file list.

In Window "Source Code Browser/View" Browse Identifier:
Allow to copy entries in column 'Functions' and other columns, if useful.


This would help to create a content list in <file>.c or any other documentation.

Copy full columns or line by line might be useful.

Why does the numeric lab style have ATTR_FRAME_COLOR but not string, list box and text box?

It always seemed inconsistent to me.

Auto-Complete function

Status: New
by Member fishingman on ‎08-08-2011 09:29 AM


The idea is to automatically add the Auto-Complete function. that is, when you type the beginning of a function, the development interface  provides a set of functions. This option is present in most development software and facilitates the development too.


It has been discussed here.

I suggest to add a note to the documentation, for example



_TARGET_PRODUCT_VERSION_ and _TARGET_FILE_VERSION_ values are updated only when the file that contains them is recompiled.

So be sure to include them only in files that are recompiled at every build.


Status: Completed
Added in CVI 2013

Hello NI,


during program development and debugging typically there is more than just the source window visible, i.e. the lower part of the screen is used by the find or the build output window. Now, if I switch to a different tab/window to edit the UIR file, this build output window will still be there and take valuable space, although it is completely useless for editing the UI. If I close it, it will remain closed even if I switch back to the source code.


I would prefer that 'context sensitive' wndows such as 'find results' / 'build output' ... only show up if meaningful, while they are automatically hidden if not needed, i.e. when a UIR window is displayed, and automatically redisplayed if the source code window is back.


Thanks for possible consideration,


EVENT_SORT for table control

Status: Under Consideration
by Trusted Enthusiast on ‎07-09-2011 08:19 AM



I would consider it useful to have an event for table controls notifying the program if the user has sorted a column, in analogy to the event EVENT_SORT available for tree controls.


Thanks :smileywink:

Improved Single Row Scroll of Tab Panels

Status: New
by Trusted Enthusiast on ‎11-03-2012 01:19 PM



This suggestion is about an improved handling of tab panels. Let's assume there are several tab panels, but only 3-4 tabs fit in a row. Selecting 'Single Row Scroll' will show say 3.5 tab panels and the row selector. Now I'd like to access say tab panel 5: Right now this requires clicking on the row selector to show the desired tab AND then click on this tab to show the tab panel. It would be more convenient if clicking the row selector would automatically show the next tab, too.


Let me give an example: The desired tab is not shown in the scroll list below, so one has to click on the right arrow...




... until the tab shows up:




But still the first tab panel is displayed, so another mouse click is required:




It is not just that one more mouse click is needed, but the mouse needs to moved, too, to click on the respective tab... It would be much more convenient to simply click a few times at the same position...

Adding binary switches with led indication

Status: New
by Member ofirga on ‎10-31-2012 03:49 AM

As labview has them for ever, can you add them to CVI helping reduce the UIR handling and programming a bit?

This issue has been discussed in other threads:

When a stripchart is horizontally resized, the X-scale range can't be changed, so that visible data in shrunk or stretched to the new dimension. But this behavior is not so useful.

It would be better if resizing the chart changed the X-scale accordingly, so that a larger or shorter period would be displayed.


But if you set ATTR_POINTS_PER_SCREEN parameter all the data history is cleared, so that it's impossible to resize the chart.


I think that resizing a chart in the way I described is a quite common need, so I suggest to implement ATTR_POINTS_PER_SCREEN in a way that doesn't clear the whole data history.

ClearStripChart() should be the only function that clears the chart.

IDE: Vertical guides

Status: New
by Trusted Enthusiast ‎10-14-2012 05:59 AM - edited ‎10-14-2012 06:00 AM



even today source code needs to be printed (to paper, to PDF...). So for a given font and font size there is a maximum number of characters per line that can be printed without forcing a line break.

Accordingly, I have arranged my source code that none of the lines exceeds this limit. I would consider it convenient to have a faint grey vertical line indicating this limit. So I suggest adding a 'ruler' with user settable vertical guides.


Thanks for consideration.

ATTR_DIMMED for SetTreeItemAtribute()

Status: Under Consideration
by Active Participant vix on ‎05-13-2011 06:59 AM

A tree control can be used to implement radio button controls;

in this situation you can't completely dim one of the items (so that it is grayed and the user immediately sees it is inactive) because the function SetTreeItemAttribute() doesn't allow ATTR_DIMMED attribute.

You can dim the item label using SetTreeCellAttribute(), but the check box stays active (see this discussion).

The EVENT_MARK_STATE_CHANGE can be swallowed, but the check box has the aspect of an active check box, even if nothing happens when you click over it.


I suggest to add the attribute ATTR_DIMMED to SetTreeItemAttribute() so that the whole item can be dimmed (its check box too)

CVI work as web server

Status: New
by Member TECHNOFASE on ‎10-03-2012 02:45 PM

Please consider the possibility to enable the use of CVI application as web server so that the application will accessible to the web.

Its open one new world (wide  web..).


Consider the opportunity to ope to all smartphone device....

Add FP_Max() and FP_Min() functions

Status: New
by Active Participant vix on ‎10-02-2012 01:07 AM

Comparison between floating point numbers is best done using FP_Compare() - see CVI help for details.

Often you need to choose the maximum (or the minimum) of the two floating point numbers, and the most common approach is:

if (a > b) {

choose a

} else {

choose b


If you use FP_Compare instead of ">" you'll notice that FP_Compare is much slower than ">" (because it involves calculation of the ratio between the two numbers). This is extremely evident if you have to choose the maximum of several couples of numbers.

I think that the maximum (or the minimum) between two floating point numbers could be found in a more effective way, comparing the exponents of IEEE representation (for example), and calculate the ratio only if the exponents are equal.

For this reason I suggest two new functions FP_Max() and FP_Min() that would much more performant than the easy approach.

Handling of NAN values in PlotScaledIntensity()

Status: New
by Active Participant vix on ‎09-26-2012 01:15 AM

In this thread it has been discussed how PlotScaledIntensity() handles NAN values.

In CVI 2010 SP1 NAN values are plotted with the center-scale color (and this is a bug).

Unfortunately the fix is not easy, and there could be different ideas on how NAN values should be handled.


I suggest not to plot NAN values, or to plot them transparent so that the plot area size is visible under NAN pixels.

When you use NAN values in PlotY(), for example, this points are not plotted.

up/down control

Status: New
by Trusted Enthusiast ‎04-07-2011 06:18 AM - edited ‎04-07-2011 06:28 AM



I'd suggest to provide a simple up/down control, i.e. the arrows found in numeric or ring controls, but without the numeric / ring field.


For example, they might be used to adjust cursor position or scroll through a list.


Right now, it's not possible to set the numeric field width to zero, so there will always be a numeric control attached to the arrows (same is true for rings)


When I tried to accomplish something like this (following the discussion here) by putting two controls on top of each other, see below, I had to realize that z-plane order is not maintained. While this might be a bug, it's also not nice because the dashed line indicating the focus is disturbing, too.


Two controls on top of each other:




After clicking on the numeric control:







Summary: I am looking for this control:  up-down.jpg

I thought I'd submitted that in the past, but I can't find it.


I would like to programmatically do what the F11 button does in the user interface editor: change the style of a control into another one of a similar category, keeping whatever attributes are compatible. For instance a numeric into a thermometer, etc...


Currently ATTR_CTRL_STYLE is not settable, and I tried to write some way to transform a control into another with NewCtrl/DiscardCtrl but the main problem is that the control number changes, which complicates the rest of the program needlessly (you can't use constant #defines).

About LabWindows/CVI Idea Exchange

Do you have a feature idea for how to improve LabWindows/CVI? Submit and vote on ideas now!
  1. Browse by label or search in the LabWindows/CVI Idea Exchange to see if your idea has previously been submitted. If your idea exists, be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click New Idea to submit a product idea. You should submit a separate post for each idea. Watch as the community gives your idea kudos and adds their input.
  3. Give kudos to other ideas that you would like to see implemented!
  4. NI R&D will review ideas that have been submitted and update the status.

Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.

The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.

Top Kudoed Authors