趋势中的index、numitems、itemvisible属性的具体用法

我现在打算只做一张趋势,可以增加笔,减少笔,在上面可以做趋势分析,因此我想知道如何获得趋势的某个曲线,属性里的index不知道怎么用,例如趋势上有好多根曲线,A、B、C。。。
 如果我要把A曲线删掉,而不是隐藏掉,应该怎么做,怎么获取A曲线的唯一属性。
 帮助中的deletedata也不明白是啥意思。

 下面的脚本中,我用了两个LISTBOX控件
 第一个控件放满所有的需要显示的变量曲线名
 第二个控件用来装“添加”进来的笔
 趋势中显示第二个控件里的笔

 增加笔的脚本

 Dim lstListBox
 Dim lstListBox1
 Dim trend
 Dim listtext
 Set trend= ScreenItems("控件2")
 trend.NumItems=trend.NumItems+1
 Set lstListBox = ScreenItems("listbox")
 Set lstListBox1 = ScreenItems("listbox1")
 If lstListBox.listindex=0 Then
 lstListBox1.AddItem "1_listbox_Field"
 trend.TagName="AI\NewTag"
 trend.color=RGB(255, 0, 0)
 trend.write
 End If

 减少笔的脚本

 Dim trend
 Dim lstListBox
 Dim lstListBox1
 Set trend= ScreenItems("控件2")
 Set lstListBox = ScreenItems("listbox")
 Set lstListBox1 = ScreenItems("listbox1")
 lstListBox1.RemoveItem lstListBox1.listindex
 MsgBox ActiveDocument.Selection(1).ObjectName
 If lstListBox1.selected(0)=True Then
 trend.index = 0
 If trend.index = 0 Then
 trend.ItemVisible = 0'这样写无法实现功能
 End If
 End If
 但是将趋势控件的NUMITEMS减小也不对
 因为当我添加A、B\、C三条曲线时,我是将NUMITEMS增加,因此INDEX的顺序是0、1、2。删除的时候它就以2、1、0的顺序删除,而不是我想删除哪个就删除哪个。
 请高手给我点思路。非常感谢!
 

问题补充:
我是第二种思路,还烦您多解释一下,不是特别清楚你的意思
 你意思是不是我添加的时候 一次性添加4个 移动到BOX2 删除的时候再清空BOX2 同时添加3个?

最佳答案

1、如果你的多条曲线同时只显示一条,根本就不必去关心添加删除问题,趋势控件只需要预先设置一条曲线,通过脚本控制其TagName就可以达到目的。

  2、如果添加ABC三条曲线,且三条曲线都要显示,而且还要实现动态删除,这样稍微麻烦一点,思路如下:
  2.1   删除曲线只用来更新ListBox1的内容
  2.2  曲线的内容根据ListBox1的内容来更新,需要编写一个遍历程序
      trend.NumItems= lstListBox1.ListCount  '#重新设置曲线的数量
      For i=0 To (lstListBox1.ListCount-1)
   trend.Index=i
   trend.TagName = lstListBox1.List(i)  '#将Listbox的内容添加为曲线名称
          Next
 --------------------------------------------------------
 比方原有A、B、C三条曲线,,现在要删除B:
 你原来的思路是想办法获取B曲线,然后删除它。
 我的思路是直接重新设置趋势控件的内容,NumItems=2,第一条为A,第二条为C,也就相当于把B删除了。
 不知道我表达清楚了没有,呵呵。

提问者对于答案的评价:
非常感谢大师的解答,您对我的恩情,我永远不会忘啊!
 我把正确答案附下:
 增加笔:
 Dim lstListBox,lstListBox1
 Dim trend
 Set trend= ScreenItems("控件2")
 Set lstListBox = ScreenItems("listbox")
 Set lstListBox1 = ScreenItems("listbox1")

 If lstListBox.text<>"" Then
  lstListBox1.AddItem lstListBox.Text
  lstListBox.RemoveItem lstListBox.ListIndex
 End If 

 Dim  i,TrendColor(3)
 TrendColor(0) = vbRed
 TrendColor(1) = vbBlue
 TrendColor(2) = vbYellow
 TrendColor(3) = vbCyan
 trend.NumItems = lstListBox1.ListCount
 For i=0 To (lstListBox1.ListCount-1)
  trend.Index=i
  trend.Color=TrendColor(i)
  trend.TagName = lstListBox1.List(i) 
 Next
 trend.Command="Reload"
 减少笔:
 Dim lstListBox
 Dim lstListBox1
 Dim trend
 Dim listtext
 Set trend= ScreenItems("控件2")
 Set lstListBox = ScreenItems("listbox")
 Set lstListBox1 = ScreenItems("listbox1")
 If lstListBox1.text<>"" Then
  lstListBox.AddItem lstListBox1.Text
  lstListBox1.RemoveItem lstListBox1.ListIndex
 End If

 Dim  i,TrendColor(3)
 TrendColor(0) = vbRed
 TrendColor(1) = vbBlue
 TrendColor(2) = vbYellow
 TrendColor(3) = vbCyan
 trend.NumItems = lstListBox1.ListCount
 For i=0 To (lstListBox1.ListCount-1)
  trend.Index=i
  trend.Color=TrendColor(i)
  trend.TagName = lstListBox1.List(i)
 Next
 trend.Command="Reload"

 

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc271238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午8:12
下一篇 2019年6月11日 上午8:12

相关推荐

  • WINCC项目复制器问题!

    项目能打开 进入编辑模式 项目复制器 另存就会提示 如图WIN7系统 64位WINCC7.2共享啥的都试了 不好使有人知…

    2021年7月5日
  • WINCC全局画面

    请教一下大家,WINCC全局画面怎么做?我想把报警控件做在全局画面中,没报警时隐藏,有报警时不管在哪个界面都能弹出,不知道能不能实现,软件版本V7.4+SP1 图片说明: &nbs…

    2020年11月1日
  • WinCC中的静态文本和按钮上的文字怎么另起一行?

    WinCC中的静态文本和按钮上的文字怎么另起一行?求解,谢谢 最佳答案 可以输入。在静态文本或按钮的属性-->‘字体’-->‘文本’中存的就是按钮上的文字。在文本属性中…

    SIMATIC WinCC 2019年6月11日
  • wincc 历史趋势打印时与系统时间差了一个小时

    wincc 历史趋势打印时与系统时间差了一个小时 最佳答案 为什么在导出备份文件中包含的时间标志(归档片段)和段中包含的本地时间数据不符? 描述: W…

    SIMATIC WinCC 2019年6月11日
  • 关于 datamonitor问题

    使用EXCEL读取数据正常,但是用WEB进入不了服务器,总是提示说密码错误,已经按照说明输入的是wincc管理员密码和本机用户密码,还不行。请教。谢谢 问题补充:谢谢网友的回答。&…

    SIMATIC WinCC 2019年6月11日
  • VBS全局脚本改变画面窗口中的对象的属性

    如下,vbs改变“histogram_main2001-2002”画面中“画面窗口1”中的棒图对象的属性,运行一直没有,求大神解惑?Sub procedure3Dim&n…

    SIMATIC WinCC 2017年6月1日
  • Wincc datemonitor

    wincc datemonitor   软件在内网中有下载吗?现在的版本有哪些啊? 最佳答案 下载连接:http://www.dfhsoft…

    SIMATIC WinCC 2019年6月11日
  • wincc连通性软件包问题

    请问各位大侠,我通过编程读出数据库的归档数据写入EXCEL,但是读出的归档时间和电脑系统时间总是差了8个小时,不知是什么原因,怎样解决?请各位指教,多谢了! 最佳答案 归档记录使用…

    SIMATIC WinCC 2019年6月11日
  • 参数应该填在什么地方

    下面是wincc 自带 ON/OFF 开关的c程序 我应该把变量放在什么地方 #include "apdefa…

    SIMATIC WinCC 2019年6月11日
  • wincc编译过程出错

    六套PLC 一个os,编译过程出错,说一个变量存在多次,如下是编译的错误信息:到底是什么问题啊,SIMATIC AS-OS-Engineering V…

    SIMATIC WinCC 2019年6月11日