搜索
您的当前位置:首页正文

Wincc V7.3 MSHFGrid数据显示的格式问题

来源:榕意旅游网


Wincc V7.3 MSHFGrid数据显示的格式问题

我们在Wincc中使用MSHFGrid控件时,有时候读取上来的数据显示出来是这个样子的。

读取出来的数据有的整数部分0被舍去,有的小数位数太多很难看,这样我们就需要在读取数据表的时候对数据格式做一下处理,读取数据表的方式也需要做一下修改。下面就介绍如何处理数据显示乱的问题。

一 准备工作

假设SQL Server中有这样一张表。

它的数据是这个样子:

可以看出,原表中有0,有恨小的数据,有小数位数多的数据。

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

PCName=HMIRuntime.Tags(\"@LocalMachineName\").Read

scon=\"Provider = SQLOLEDB.1;Integrated Security=SSPI;Persist Catalog =MyDB;Data Source = \" &PCName & \"\\WINCC\"

ssql=\"select * from NumberFormat\"

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

SecurityInfo=False;Initial

Set ors=ocom.Execute

Set MSHFGrid=ScreenItems(\"MSHFGrid\")

'MSHFGrid表格大小处理

MSHFGrid.cols=ors.fields.count+1

MSHFGrid.Rows=ors.recordcount+1

'MSHFGrid 表头处理

MSHFGrid.TextMatrix(0,1)=\"日期时间\"

MSHFGrid.TextMatrix(0,2)=\"流量\"

MSHFGrid.TextMatrix(0,3)=\"压力\"

MSHFGrid.TextMatrix(0,4)=\"液位\"

MSHFGrid.TextMatrix(0,5)=\"电流\"

'处理数据显示格式,数据库中.fields编号从0开始

ors.movefirst '从第一条记录开始

'第一列日期时间

For i=1 To ors.recordcount

MSHFGrid.TextMatrix(i,1)=ors.fields(0) '日期时间不需要格式处理

ors.movenext '下一条记录

Next

ors.movefirst

For i=1 To ors.recordcount

For j=2 To ors.fields.count

MSHFGrid.TextMatrix(i,j)=Formatnumber(ors.fields(j-1),2,-1)

Next

ors.movenext '下一条记录

Next

MSHFGrid.Refresh

MSHFGrid.colwidth(1)=2500

Set ors=Nothing

conn.close

Set conn=Nothing

End Sub

'重要的函数Formatnumber使用了三个参数,第一个是要转换的数字,第二个是保留几位小数,第三个是设定是否需要对整数部分为0时显示0(-1 显示0, 0不显示,1根据操作系统设定)

保存运行,现在的效果是这样子:

因篇幅问题不能全部显示,请点此查看更多更全内容

Top