35.Wincc V7.3 OWC控件读取SQL Server数据表并后台导出到excel文件生成统计图表

标签:
winccvbsowcexcel报表 |
分类: 西门子软硬件 |
本文阐述在Wincc V7.3中,如何利用OWC控件读取数据表,以及如何后台导出excel文件,同时声称统计图表、
一 准备工作
假设sql server有这样一张数据表
在Wincc页面中放一个OWC控件,名字修改为OWC,放置一个按钮钮,按钮脚本为:
Sub OnClick(ByVal
Item)
Dim OWC
Dim PCName
Dim scon,ssql,conn,ors,ocom
Dim rscount
Dim InsertRowCount,i,j,k,m,SourceData
Dim xlapp,fileName,objsheet,objchart
Dim web
Set OWC=ScreenItems("OWC")
'以下代码首先计算记录数
PCName=HMIRuntime.Tags("@LocalMachineName").Read
scon="Provider = SQLOLEDB.1;Integrated Security=SSPI;Persist
SecurityInfo=False;Initial Catalog =MyDB;Data Source = "
&PCName & "\WINCC"
Set conn=CreateObject("ADODB.Connection")
ssql="select * from charttable"
conn.ConnectionString=scon
conn.Cursorlocation=3
conn.open
Set ors=CreateObject("ADODB.RecordSet")
Set ocom=CreateObject("ADODB.Command")
ocom.commandtype=1
Set ocom.ActiveConnection=conn
ocom.CommandText=ssql
Set ors=ocom.Execute
HMIRuntime.Tags("OWCRecordCount").Write ors.recordcount
'定义表格的数据来源
OWC.ActiveSheet.ConnectionString=scon
OWC.ActiveSheet.CommandText =ssql
'日期时间格式的字段处理
OWC.Range("a2:a" &
CStr(ors.recordcount+1)).NumberFormat="yyyy/mm/dd h:mm:ss"
'插入若干行,行数由InsertRowCount定义,表头排版可能有好几行
InsertRowCount=1
rscount=InsertRowCount+1+ors.recordcount '判断最终表格有多少行,便于绘制表格线
For i=1 To InsertRowCount
Next
'合并单元格,并写表头,字体大小,加粗
OWC.ActiveSheet.Range("a1:e1").Merge
OWC.ActiveSheet.Cells(1,1)="***报表"
OWC.ActiveSheet.Cells(1,1).Font.Size=20
OWC.ActiveSheet.cells(1,1).Font.Bold=True
'加边框
OWC.ActiveWorkbook.Sheets(1).Range("a2:e" &
rscount).Borders(1).LineStyle=1
OWC.ActiveWorkbook.Sheets(1).Range("a2:e" &
rscount).Borders(2).LineStyle=1
OWC.ActiveWorkbook.Sheets(1).Range("a2:e" &
rscount).Borders(3).LineStyle=1
OWC.ActiveWorkbook.Sheets(1).Range("a2:e" &
rscount).Borders(4).LineStyle=1
'居中显示
OWC.ActiveSheet.Cells(1,1).HorizontalAlignment =-4108
'开始导出到Excel
Set xlapp=CreateObject("Excel.Application")
xlapp.visible=False
xlapp.workbooks.add
Set objsheet=xlapp.worksheets(1)
For k=1 To ors.fields.count
Next
objsheet.cells(1,1)="XX装置生产工艺参数报表"
m=ors.recordcount
For i=1 To m
Next
'以下代码处理日期时间数据格式以及表格边框线、标题合并单元格等排版
'以下代码用于生成散点图,在2013版本office测试,其他版本可能无效,此处仅做思路示范
'添加图表以及修改位置和大小
'添加数据
'以下代码用于后台保存
End Sub
保存后运行,OWC查询数据表结果是这样子: