在上面这篇文章中我谈到了创建通用引用的两个简便方法。我们创建通用引用的目的是通过通用引用的属性节点和方法节点等修改引用所指向的对象。这与我们直接创建前面板中控件的引用的目的是一样的。
 
我们必须注意,LV中的数据都是以输入控件、显示控件和常量的方式存在的,通用控件的引用本身也是一种特殊的控件,这导致了许多初学者在使用通用引用时出现了问题。(实际上他是创建了通用控件引用的引用——转载者加注)

NI论坛上有几个帖子就出现了这样的问题,我简单了回答了一下,但是网友无法理解,发邮件希望我给解答一下,在这里我一并回答这个问题。

帖子地址为:
http://forums.ni.com/t5/NI-LabVIEW-CVI-数据采集等产品讨论区/两个难题-关于显示数据和调用节点/td-p/1398578

下面就来解答这个问题:
 
对于前面板中的控件,可以直接通过控件的快捷菜单创建它的引用、属性节点、调用节点、常量、局部变量等等,以多列列表框为例,直接利用控件的快捷菜单。
 
Picture
在程序框图中的控件的接线端子中,同样可以利用接线端子的快捷菜单,创建指向控件的引用、属性节点等,与控件的快捷菜单功能是相同的。
 
Picture
我们知道,对于前面板中的控件,直接创建它的属性节点和调用节点时,是不需要连接引用的,这是因为我们通过快捷菜单创建时候,LV自然知道创建的属性节点和调用节点是指向这个特殊控件的。
 
实际上,我们也可以通过控件的引用,间接创建这个控件的属性节点和调用节点,在应用控制函数选板中提供了很多与引用有关的操作,包括属性节点和调用节点。

Picture
箭头所示的属性节点和调用节点在使用时候必须连接控件的引用,也就是说这里的属性节点和调用节点是通用的,不指向任何特定控件的,只有连接一个引用的时 候,它才会指向一个特定的控件或者特定的控件类型,指向特定的控件如下图所示,指向特定的控件类型则是我们将要重点讨论的。
 
Picture
红色框中所示的就是利用控件的引用和通用属性节点和方法节点,实现的功能是和框图左侧部分相同的。

如上图所示,如果简单的要使用控件的属性节点和方法节点,那么利用通用属性和通用调用方法似乎是没有意义的。的确是这样,通用属性节点和调用方法更为重要的意义在于它和通用控件引用相结合。

请参考上面的帖子,为什么网友会出现那样的问题?
 
Picture
从上面的图中,我们可以看出,网友已经成功地床架的多列列表框控件的引用。我们应该注意,这个控件引用在前面板上本身也是一个控件,所以网友通过这个控件 的快捷菜单创建的调用节点是直接指向前面板中的控件的,这不是我们希望的。这样实际创建的控件的引用的控件的调用方法,我们需要的是控件的引用的调用方 法。这有点类似于创建了C语言中指针的指针。因此在上面的快捷菜单中我们看不到列表框的属性和方法。
 
下面就是我们这个Nugget的内容。通过通用控件引用,创建属性节点和调用节点的方法.

1、对于通用控件,前面板中控件的快捷菜单和接线端子的快捷菜单是不同的。
 
Picture
我们这里创建的指向特定控件类型的属性和方法,但是并非指向特定控件的,只有在主VI中传递了一个列表框的引用,此时才会真正指向一个特定的控件。
 
2、第二种方法就是直接利用引用程序控制函数选板中的通用属性和通用调用节点。
 
Picture

顺便解答一下网友的另外两个问题:

快速表格控件在添加方式时,自动重置应设置为FALSE,只有把它放在WHILE连续运行时,才能看到添加效果。单次运行无所谓添加。

如果要操作EXCEL文件,应该使用报表生成工具包,它实际上是利用自动化服务器技术,封装了其中的细节,当然我们也可以直接利用ActiveX技术,但是要求必须熟悉EXECL自动化服务器。


 




Leave a Reply.