33.Wincc V7.3 MSHFGrid 读取表格数据并制作表头
标签:
winccvbsmshfgrid表头 |
分类: 西门子软硬件 |
在Wincc页面上使用MSHFGrid控件可以读取数据库表,一般来说,显示效果是这样的:

这样的话,我们就需要在处理MSHFGrid控件时,多做一些处理。下面详细描述一下实现这种效果的步骤。
一 准备工作

在WINCC页面上放置一个MSHFGrid控件,名字叫做MSHFGrid,一个按钮,按钮的点击事件VBS脚本如下:
Sub OnClick(ByVal
Item)
Dim conn
Dim ssql
Dim ors
Dim ocom
Dim scon
Dim MSHFGrid
Dim ADODC
Dim PCName
Dim i,j,InsertRowCount,colcount
PCName=HMIRuntime.Tags("@LocalMachineName").Read
scon="Provider = SQLOLEDB.1;Integrated Security=SSPI;Persist
SecurityInfo=False;Initial Catalog =MyDB;Data Source = "
&PCName & "\WINCC"
ssql="select * from charttable"
Set conn=CreateObject("ADODB.Connection")
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
Set MSHFGrid=ScreenItems("MSHFGrid")
Set MSHFGrid.DataSource=ors
MSHFGrid.Refresh
MSHFGrid.colwidth(1)=2500
Set ors=Nothing
conn.close
Set conn=Nothing
'以下代码添加表头
InsertRowCount=3
For i=1 To InsertRowCount
Next
'写“表头”
For i=1 To MSHFGrid.Cols-1
Next
For i=1 To MSHFGrid.Cols-1
Next
colcount=MSHFGrid.Cols
MSHFGrid.MergeCells= 1 '合并方式为自由合并
For j=1 To colcount-1
Next
MSHFGrid.Mergerow(1)=True
MSHFGrid.Mergerow(2)=True
'MSHFGrid.AllowUserResizing=3 '行高列宽皆可调整
MSHFGrid.Row=1
MSHFGrid.Col=1
'单元格对齐方式 CellAlignment
'0 左,顶部
'1 左,居中
'2 左,底部
'3 居中,顶部
'4 居中,居中
'5 居中,底部
'6 右,顶部
'7 右,居中
'8 右,底部
'9 默认方式:也即字符串左,居中;数值右,居中
MSHFGrid.CellAlignment=4
MSHFGrid.Row=2
MSHFGrid.Col=1
MSHFGrid.CellAlignment=7
'设置表头两行行高
MSHFGrid.Row=1
MSHFGrid.CellFontSize =14
MSHFGrid.Row=2
MSHFGrid.CellFontSize =14
MSHFGrid.RowHeight(1)=600
MSHFGrid.RowHeight(2)=600
End Sub

加载中…