先说一下我用listview干什么吧。
我是在一个设备当中使用listview来查看当前的生成批次,然后在另外一个io域当中输入相应的批次记录,实现数据查询的目的,后来,同事反馈说,这样看到了数据,还要手动输入一次,太麻烦,于是,加了一段选中对应的批次号,自动在io域当中填入对应的批次号,最早画面是在wincc7.5sp2组态的,代码如下:
Sub ItemClick(Byval Item, Byref ObjectItem)
Dim obj
Set obj =ScreenItems("CarryID")
obj.OutputValue = item.listitems(CInt(ObjectItem)).subitems(1)
End Sub
但是到了wincc8.0里面,这个代码就一直报错,报错内容如下:
Application :
Picture : 报表查询_工艺数据记录.pdl_Events
Function : Sub X63A7X4EF61_ItemClick(Byval Item, Byref ObjectItem)
Line : 8
Error : 对象不支持此属性或方法: 'Item.ListItems(...).subitems'
忙了一个晚上,查不出问题的原因是什么,今天早上脑子一抽筋,给listitems加了一个中转,居然又神奇的正常工作了,代码变成了下面这样
Sub ItemClick(Byval Item, Byref ObjectItem)
Dim obj
Set obj =ScreenItems("CarryID")
Dim t
Set t = item.listitems
obj.OutputValue =t(CInt(ObjectItem)).subitems(1)
End Sub
个人觉得是因为wincc8.0对vbs代码做了安全审查,items(...)被wincc的代码安全审核屏蔽了,所以无法正常工作