您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Wincc-V7.3-MSHFGrid数据显示的格式问题
WinccV7.3MSHFGrid数据显示的格式问题我们在Wincc中使用MSHFGrid控件时,有时候读取上来的数据显示出来是这个样子的。读取出来的数据有的整数部分0被舍去,有的小数位数太多很难看,这样我们就需要在读取数据表的时候对数据格式做一下处理,读取数据表的方式也需要做一下修改。下面就介绍如何处理数据显示乱的问题。一准备工作假设SQLServer中有这样一张表。它的数据是这个样子:可以看出,原表中有0,有恨小的数据,有小数位数多的数据。Wincc页面中放置一个MSHFGrid控件,名字修改为MSHFGrid,放置一个按钮,按钮鼠标点击事件中写入一下VBS代码SubOnClick(ByValItem)DimconnDimssqlDimorsDimocomDimsconDimMSHFGridDimADODCDimPCNameDimi,jPCName=HMIRuntime.Tags(@LocalMachineName).Readscon=Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=MyDB;DataSource=&PCName&\WINCCssql=select*fromNumberFormatSetconn=CreateObject(ADODB.Connection)conn.ConnectionString=sconconn.Cursorlocation=3conn.openSetors=CreateObject(ADODB.RecordSet)Setocom=CreateObject(ADODB.Command)ocom.commandtype=1Setocom.ActiveConnection=connocom.CommandText=ssqlSetors=ocom.ExecuteSetMSHFGrid=ScreenItems(MSHFGrid)'MSHFGrid表格大小处理MSHFGrid.cols=ors.fields.count+1MSHFGrid.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'从第一条记录开始'第一列日期时间Fori=1Toors.recordcountMSHFGrid.TextMatrix(i,1)=ors.fields(0)'日期时间不需要格式处理ors.movenext'下一条记录Nextors.movefirstFori=1Toors.recordcountForj=2Toors.fields.countMSHFGrid.TextMatrix(i,j)=Formatnumber(ors.fields(j-1),2,-1)Nextors.movenext'下一条记录NextMSHFGrid.RefreshMSHFGrid.colwidth(1)=2500Setors=Nothingconn.closeSetconn=NothingEndSub'重要的函数Formatnumber使用了三个参数,第一个是要转换的数字,第二个是保留几位小数,第三个是设定是否需要对整数部分为0时显示0(-1显示0,0不显示,1根据操作系统设定)保存运行,现在的效果是这样子:
本文标题:Wincc-V7.3-MSHFGrid数据显示的格式问题
链接地址:https://www.777doc.com/doc-4993196 .html