当前位置:首页 > 日报表解释说明
1 全局脚本
在全局脚本里建立起与数据库的连接,通过定时整点触发脚本,把变量写到数据库。WINCC里全局脚本触发定时器设定是每小时整点触发。
Option Explicit 变量声明 Function action 功能操作 Dim database 定义 数据库 Dim strcn,cn Dim is_SQL
Dim riqi
Dim yali,wendu,liuliang,zhongliang,dianya,sudu 定义压力、温度、、、、 Dim DateTime 定义日期 时间 riqi=Now
Set yali= HMIRuntime.Tags(\人机界面运行时间 标签 yali.Read
Set wendu= HMIRuntime.Tags(\wendu.Read
Set liuliang= HMIRuntime.Tags(\liuliang.Read
Set zhongliang= HMIRuntime.Tags(\zhongliang.Read
Set dianya= HMIRuntime.Tags(\dianya.Read
Set sudu= HMIRuntime.Tags(\sudu.Read
strcn=\Security=SSPI;Persist Security Info=False;Initial Catalog=baobiao1;Data Source=.\\wincc\Set cn=CreateObject(\cn.connectionString=strcn cn.Open
is_SQL=\into ribao(riqi,yali,wendu,liuliang,zhongliang,dianya,sudu) Values('\riqi &\&\&\&\cn.Execute is_SQL
cn.Close End Functi
2 查询按钮
Sub OnClick(ByVal Item)
Dim i, n, k, n1, a1, b1, c1, d1, e1, f1 Dim MSFlexGrid1
Dim Sql, oCom, conn, sql1, oCom1 Dim j, b, z
Dim ylp, wdp, llp, ylx, wdx, llx, yld, wdd, lld Dim zlp, dyp, sdp, zlx, dyx, sdx, zld, dyd, sdd
【压力、温度、流量、重力、电压、速度的平均值、最小值、最大值】 Dim strcn, cn Dim a, shi, t, x
Dim oRs, oRs1 Dim Text2
Dim BeginDate 开始日期 Dim EndDate 结束日期 Dim By, Bm, Bd 定义开始年月日
Dim Ny, Nm, Nd, c, e, f 定义结束年月日
Dim Date1,Date2
【定义函数命令:
】
Set Text2 = ScreenItems(\Set Date1 = ScreenItems(\Set Date2 = ScreenItems(\
Set MSFlexGrid1 = ScreenItems(\
【ScreenItems为画面对象集合,把定义的函数与画面中的控件进行映射
】
By = Year(Date1.Value) Bm = Month(Date1.Value)
Bd = Day(Date1.Value) 【BY BM BD 为date1的年月日定义,B为begin开始时间】
Ny = Year(Date2.Value) Nm = Month(Date2.Value)
Nd = Day(Date2.Value) 【NY NM ND 为date2的年月日定义,N的end结束时间】 BeginDate = By & \EndDate = Ny & \e = By & \f = Ny & \
If By > Ny Or By = Ny And Bm > Nm Or By = Ny And Bm = Nm And Bd > Nd Then
MsgBox \输入的时间不正确\错误的起始时间\【MsgBox为弹出的对话框控件】 End If
'以上程序为日期查询
2.1 '建立连接
Sql = \CONVERT(char(19), riqi, 20) AS riqi, yali, wendu, liuliang, zhongliang, dianya, sudu FROM ribao WHERE riqi BETWEEN '\& EndDate & \
【CONVERT 在SQL(结构化语言)中的一个系统函数 一般用法
convert 函数 用来转换数据类型
例子:SELECT CONVERT (VARCHAR(5),12345) 返回:字符串 '12345'
http://www.w3school.com.cn/sql/sql_orderby.asp】
sql1 = \avg(yali)as ylp,avg(wendu)as wdp,avg(liuliang)as llp,avg(zhongliang)as zlp,avg(dianya)as dyp,avg(sudu)as sdp,min(yali)as ylx,min(wendu)as wdx,min(liuliang)As llx,min(zhongliang)As zlx,min(dianya)As dyx,min(sudu)As sdx,max(yali)As yld,max(wendu)As wdd,max(liuliang)As lld,max(zhongliang)As zld,max(dianya)As dyd,max(sudu)As sdd from ribao where riqi between '\
【http://www.w3school.com.cn/sql/sql_func_avg.asp】
strcn = \Security=SSPI;Persist SecurityInfo=False;Initial Catalog=baobiao1;Data Source=.\\wincc\ Set conn = CreateObject(\ conn.ConnectionString = strcn conn.CursorLocation = 3 conn.Open '使用命令文本查询
Set oRs = CreateObject(\
Set oCom = CreateObject(\ oCom.CommandType = 1
Set oCom.ActiveConnection = conn oCom.CommandText = Sql Set oRs = oCom.Execute
n = oRs.RecordCount 【RecordCount指示 Recordset 对象中记录的当前数目】 Text2.Text = n 【Text2 为日报表中静态文本的查询到的记录数的文本内容为n】 Set oCom1 = CreateObject(\ oCom1.CommandType = 1
Set oCom1.ActiveConnection = conn oCom1.CommandText = sql1 Set oRs1 = oCom1.Execute n1 = oRs1.RecordCount
ylp = oRs1(\oRs1(\llx = oRs1(\yld = oRs1(\wdd = oRs1(\lld = oRs1(\
zlp = oRs1(\oRs1(\sdx = oRs1(\zld = oRs1(\dyd = oRs1(\sdd = oRs1(\
If n = 0 Then 【查询的结果数为0时显示内容】 MsgBox \对不起,没有找到符合条件的数据\没有相关数据\End If
oRs.Requery
MSFlexGrid1.Clear
【使用FlexGrid ActiveX控件可以在Microsoft Visual Basic的窗体中创建一个电子数据表格,也可称之为网格,
http://baike.http://www.china-audit.com//link?url=gdGZm1tyQhFpO4MlKlEiFPvRS990aO0n5y9PFHPR1aedWB4XLJL05K68bL84l6aa】
MSFlexGrid1.Rows = oRs.RecordCount + 6 MSFlexGrid1.ColWidth(0) = 800 MSFlexGrid1.ColWidth(1) = 2100 MSFlexGrid1.ColWidth(2) = 1000 MSFlexGrid1.ColWidth(3) = 1000 MSFlexGrid1.ColWidth(4) = 1000 MSFlexGrid1.ColWidth(5) = 1000 MSFlexGrid1.ColWidth(6) = 1000 MSFlexGrid1.ColWidth(7) = 1000
'合并单元格,并把单元格的内容写为R980履带式布料机日报表 MSFlexGrid1.Row = 0 For z = 0 To 7
MSFlexGrid1.Col = z
共分享92篇相关文档