搬家第11天-147.Wincc V7.3 OWC Chart控件初步使用9-一个控件呈现多种图表

有时候我们希望在同一个chart中同事看到柱状图和曲线图,这个可以通过在chart控件的add事件中增加图表来实现。假设画面中已经有了一个数据表格LV,放置一个OWC Chart控件,名字修改为Chart,放置一个按钮,按钮的鼠标点击事件中添加以下vbs代码:

Sub OnClick(ByVal Item)    
Dim LV,Chart,cht,c,cst,dl,xValue(),y1Value(),y2Value(),y3Value(),y4Value(),count,i
Set Chart=ScreenItems("Chart")
Set LV=ScreenItems("LV")
count=LV.listitems.count
Redim xValue(count),y1Value(count),y2Value(count),y3Value(count),y4Value(count)
Set c=Chart.constants
Chart.Clear '先清空
Set cht=Chart.Charts.Add
Chart.HasChartSpaceTitle=True
Set cst=Chart.ChartSpaceTitle 

'定义横纵坐标内容数组
For i=1 To count
 xValue(i)=CStr(i) & "-" & CStr(LV.Listitems.item(i).listsubitems.item(3).text)
 y1Value(i)=LV.Listitems.item(i).listsubitems.item(4).text
 y2Value(i)=LV.Listitems.item(i).listsubitems.item(5).text
 y3Value(i)=LV.Listitems.item(i).listsubitems.item(6).text
Next

'初始化图表内容
With Cht
 '.type=c.chChartTypeLine '不带标记的直线图标
 .type=c.chChartTypeSmoothLine
 For i=0 To 2
  .SeriesCollection.Add
  .SeriesCollection.item(i).caption="流量" & CStr(i+1) '修改图列名称
  Set dl = .SeriesCollection.item(i).DataLabelsCollection.Add
  dl.HasValue = True
  dl.Font.Size = 9
  dl.Font.Color = vbBlack
 Next
 '坐标轴范围
 With .Axes
  .Item(1).Scaling.Minimum=1
  .Item(1).Scaling.Maximum=count
  .Item(1).HasTitle=True
  .Item(1).Title.Caption ="时间"
  .Item(0).Scaling.Minimum=0
  .Item(0).Scaling.Maximum=250
  .Item(0).HasTitle=True
  .Item(0).Title.Caption ="流量"
 '有主网格线
  .Item(0).HasMajorGridlines=True
  .Item(0).HasTickLabels=True
  .Item(0).HasAutoMajorUnit=True
 End With
 .HasLegend =True
End With

With cst
 .Caption="这是三个流量对比的图表"
 .Font.Color =vbBlue
 .Font.Name="微软雅黑"
 .Font.size=20
End With

'添加数据
 'X轴数据
 cht.SetData c.chDimCategories,c.chDataLiteral,xValue
 'Y轴数据
 cht.SeriesCollection.item(0).SetData c.chDimValues,c.chDataLiteral,y1Value
 cht.SeriesCollection.item(1).SetData c.chDimValues,c.chDataLiteral,y2Value
 cht.SeriesCollection.item(2).SetData c.chDimValues,c.chDataLiteral,y3Value

' 绘制柱状图
Set cht=Chart.Charts.Add
'chart.Charts.Item(1).Left =0
With Cht
 .type=c.chChartTypeColumnClustered '柱状图
 For i=0 To 2
  .SeriesCollection.Add
 Next
 '添加数据
 'X轴数据
 cht.SetData c.chDimCategories,c.chDataLiteral,xValue
 'Y轴数据
 cht.SeriesCollection.item(0).SetData c.chDimValues,c.chDataLiteral,y1Value
 cht.SeriesCollection.item(1).SetData c.chDimValues,c.chDataLiteral,y2Value
 cht.SeriesCollection.item(2).SetData c.chDimValues,c.chDataLiteral,y3Value
End With
End Sub

最终做出来就是这个效果:

posted @ 2021-02-08 20:46  来自金沙江的小鱼  阅读(909)  评论(0编辑  收藏  举报