目录
一、准备工作
先从数据库中读取数据,和之前的一样。(58条消息) WinCC笔记:02.MSHFlex控件 —— (2) 插入一列模拟的checkbox_qq_42016887的博客-CSDN博客
二、代码
Sub OnOpen()
Dim grid,PCName,i,colcount
Set grid=ScreenItems("grid")
PCName=HMIRuntime.Tags("@LocalMachineName").Read
Dim conn,ors1,ocom1
Set conn=Createobject("ADODB.Connection")
Set ors1=Createobject("ADODB.Recordset")
Set ocom1=Createobject("ADODB.Command")
conn.cursorlocation=3
conn.connectionstring="Driver={SQL Server};Server="&PCName&"\WINCC;database=ATS_WINCC;UID=;PWD=;"
conn.open
Set ocom1.Activeconnection=conn
ocom1.commandtype=1
ocom1.commandtext="select * from Information"
Set ors1=ocom1.Execute
Set grid.DataSource = ors1
colcount=grid.Cols -1
For i=1 To colcount
grid.TextMatrix(3,i)=grid.TextMatrix(0,i)
grid.TextMatrix(0,i)=""
grid.TextMatrix(1,i)="装置参数"
grid.TextMatrix(2,i)="时间"&Now
Next
With grid
.colwidth(0)=100
.colwidth(1)=2000
.colwidth(2)=2500
.colwidth(3)=4000
.Rowheight(1)=600
.Rowheight(2)=600
.backcolorBkg=&HC0C0C0
.mergecells=1
.mergerow(1)=True
.mergerow(2)=True
.Row=1
.Col=1
.Cellalignment=4
.Row=2
.Col=1
.Cellalignment=7
.Fixedrows=4
End With
End Sub
三、效果
四、代码分析
1.Mergecells
常数 | 值 | 描述 |
flexMergeNever | 0 | 不显示。包含相同内容的但愿不分组。 缺省设置。 |
flexMergeFree | 1 | 自由。包含相同内容的单元总是合并。 |
flexMergeRestrictRows | 2 | 限制行。只有行中包含相同内容的相邻单元(向当前单元左边)才合并。 |
flexMergeRestrictColumns | 3 | 限制列。只有列中包含相同内容的相邻单元(向当前单元上边)才合并。 |
flexMergeRestrictBoth | 4 | 限制行和列。只有在行中(向左)或在列中(向上)包含相同内容的单元才合并。 |
2.Mergecol、Mergerow属性
object.Mergecol(number)=True
object.Mergecol(number)=False
object.Mergerow(number)=True
object.Mergerow(number)=False
3.Fixedrows、Fixedcols属性
object.Fixedrows=number (number: 冻结的行数)
object.Fixedcols=number (number: 冻结的列数)
五、数据显示格式
Formatnumber函数
FormatNumber(Expression[,NumDigAfterDec[,IncLeadingDig[,UseParForNegNum[,GroupDig]]]])
参数 | 描述 |
Expression | 必须。需被格式化的表达式 |
NumDigAfterDec | 可选。小数点右侧显示位数的数值。 |
IncLeadingDig | 可选。指示是否显示小数值的前导0: -2 = 使用计算机的区域设置 -1 = True 0 = False |
UseParForNegNum | 可选。是否将负值置于括号中: -2 = 使用计算机的区域设置 -1 = True 0 = False |
GroupDig | 可选。是否使用计算机区域设置中指定的数字分组符号将数字分组: -2 = 使用计算机的区域设置 -1 = True 0 = False |
例1:
Formatnumber(200,3) → 200.000
六、隐藏行或列
1. Object.ColWidth(列)=0
2. Object.RowHeight(行)=0
注:ColIsvisible为只读属性,列是否在画面中显示(有的因为宽度不够被隐藏),可见为-1,不可见为0
RowIsvisible为只读属性,列是否在画面中显示(有的因为宽度不够被隐藏),可见为-1,不可见为0