日报表解释说明

发布时间 : 星期日 文章日报表解释说明更新完毕开始阅读

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

联系合同范文客服:xxxxx#qq.com(#替换为@)