一、安装WinCC7.5
二、功能介绍
2.1 计算机、变量管理、图形编辑器
2.1.1 计算机
计算机 -> 启动,设置可启用的功能
计算机 -> 图形运行系统,可设置运行属性
2.1.2 变量管理
变量管理:用于建立与其他设备的连接,变量的建立
2.1.3 图像编辑器
2.2 标准对象、智能对象中必须掌握的应用
2.2.1 标准对象
线、圆、静态文本
2.2.2 智能对象
- 画面窗口:用于基本页眉页脚不变。
- 控件
- OLE对象:插入EXCEL表格
- 输入输出域:
- 3D棒图
2.3 窗口对象、控件
2.3.1 窗口对象
2.3.1.1 按钮
- 按钮:普通的自复位按钮
- 圆形按钮:可以设置是否自锁
- 滚动条对象:通过改变滚动条上下,改变值
2.3.2 控件
- WinCC Digital/Analog Clock Control 时钟控件
- WinCC Gauge Control 量表控件
- WinCC Alarm Control 报警控件
- WinCC Online Trend Control 在线趋势
- WinCC Online Table Control 在线表格
- WinCC Ruler Control 标尺控件
2.4 报警记录、变量记录、用户管理器
2.4.1 报警记录
报警记录:设定各种报警
2.4.2 变量记录
变量记录:又叫过程值归档,即把PLC运行的一些变量值记录下来,存储在电脑的数据库里。用趋势图、表格、打印报表等方式呈现出来
2.4.3 用户管理器
用户管理器:登录权限
三、
四、11大应用
4.1 内部变量、外部变量
4.1.1 外部变量
- 二进制
- 有符号8位数
- 无符号8位数
- 有符号16位数
- 无符号16位数
- 有符号32位数
- 无符号32位数
- 浮点数32位 IEEE754
- 浮点数64位 IEEE754
- 文本变量 8位字符集:英文字母,一个字母占一个字节
- 文本变量 16位字符集:汉字,一个汉字占一个字
- 原始数据变量
- 日期/时间
- 文本参考:多语言切换
- 原始数据变量:略
- 结构变量:相当于UDT
4.1.1.1 结构变量
结构变量使用
结构变量相当于PLC的结构体:
①在“结构变量“目录下新建 结构类型(结构体名字)
②在“结构类型“目录下新建 结构类型元素(单个结构体内的元素)
③有了“结构类型元素”,就可以新建 结构变量(实际的结构体变量,可以理解为Java中 new对象)
④有了“结构变量”就自动生成了 结构变量元素
⑤“结构变量元素“,就是每个实际的点位信号,有了”结构变量“就自动套用”结构类型元素“直接生成”结构变量元素“
结构变量地址
1.绝对地址。有了结构变量后,给每个结构变量元素赋值绝对地址
2.AS地址偏移。结构变量对应程序中有关联的一组数据,这组数据普遍有固定的偏移量,所以,有了结构变量后,可以只给结构变量赋值绝对地址,其他元素使用WinCC里AS偏移即可,结构变量元素的地址直接生成。AS长度指程序中该数据类型的长度,AS偏移量指偏移字节数,AS偏移位指在当前偏移量下的偏移位。
程序数据类型与WinCC数据类型对应关系表
4.3 在上位机显示PLC数据
4.3.1 输入输出文本框
可以读写显示PLC量
4.3.2 静态文本框
静态文本框就是写字的地方
4.3.3 条形图
就是温度计的样式
4.3.4 滚动条
相当于页面的滚动条,可以设置最大值、最小值、步长
4.3.5 文本列表
- 属性 -> 样式 -> 作为下拉列表框显示:可以将文本列表用作下拉列表
- 属性 -> 输入/输出 -> 分配:设定实际值与显示文本的对应关系
- 属性 -> 输入/输出 -> 可见行数
4.3.6 画面切换
4.3.6.1 按钮切换
4.3.6.2 动态向导
添加按钮 -> 工具栏:视图 -> 工具栏 -> 动态向导
4.3.7 画面窗口切换
步骤:
- 新建初始画面。画面里初始效果,改为否。(下列每个画面都需要)
- 插入三个画面窗口:①画面页眉 坐标点(0,0)(宽,高)② 画面页体 ③画面页脚 坐标点(x,y)
- 新建页眉、页脚画面。上处插入的三个画面窗口不能在页眉页脚中添加字,所以需要进行画面
- 设定页眉,设定页眉画面的高、宽;设定页脚,设定页脚画面的高、宽。在页眉页脚上写字(静态文本)。在页脚插入两个按钮,显示不同画面。
- 新建显示画面,修改画面大小
- 新建内部变量,叫做“画面切换”
- 对两个画面的切换按钮处理,事件->鼠标->左键->切换画面
五、系统架构
5.1 客户机/服务器系统
5.1.1 多用户系统
性能限制:
- 1个WinCC服务器可以连接最多64个WinCC客户机
- 服务器带可视化,只能带4个客户机
5.1.1.1 组态前准备
- 软件安装
- 服务器与客户机操作系统与wincc版本兼容。
- 服务器与客户机安装的wincc版本必需安全一致
- 设定权限
- 服务器客户机使用相同的用户名以及密码,如果不使用相同的用户名与密码,需将客户机的用户名密码添加到服务器系统中。
- 在用户的用户组中,添加Administrators用户组以及Simatic HMI用户组。
- 网络访问
- 分配IP地址
- 服务器客户机能ping通对方计算机名
5.1.1.2 客户机登录
右键“计算机”->“管理”
右键 用户名 -> “属性” -> “隶属于”,需要同时属于 Administrators 和 SIMATIC HMI 两个用户组。同时,需要屏蔽Guest用户
服务器和计算机能ping通对方的计算机名。经测试,两台计算机可以不是同网段,但必须能ping通计算机才行
这张图片就是远程访问,IP不在同网络,能ping通计算机名字就行。
对于不同网段的网络 (服务器和客户机通过交换机通信)即便IP能ping通,但计算机名依然无法ping通,此时需要用Administrator账户(必须是这个账号)修改配置文件《hosts》,其路径是“ C:\Windows\System32\drivers\etc\hosts ”。修改内容是在其中
加入“目标电脑的IP [空格] 目标电脑的计算机名”,如“10.70.110.65 DESKTOP-5786”
此外,如果还是无法在shell中找到服务器,可以在下图中直接添加服务器的地址。
5.1.2 分布式系统
5.1.3 标准客户机
六、菜单和工具栏
用户数据:填写需要切换的画面文件名称
七、报警记录
变量记录 以模拟量为主
报警记录 侧重开关量
7.1 报警记录的常用功能
报警记录:主要用于设定各种报警、故障、警告等。
通常用WinCC Alarm Control控件,以表格形式显示
使用步骤:
- 修改启动,勾选报警记录运行系统,并重新激活wincc
7.2 电机过载报警案例
步骤:
- 在变量管理里,建立两个变量。Q0.0得电是,表示电机过载,M0.0进行确认。
- 在报警里,消息变量选择Q0.0,确认变量选择M0.0
消息文本:电机过载。当过载时会显示。
错误点:提示什么地方出了问题。 - 选中报警,然后把右边的属性打开,可以修改颜色。
- 在图形编辑器中,打开控件WinCC Alarm Control
八、 VBS与数据库
8.1 VB基础
8.1.1 VB基础语法
- 注释:单引号
- VB中只有一种数据类型 Variant,所以也是所有函数返回值的数据类型
- 变量声明:Dim、public、private。Dim申明为局部变量,与申明方法的范围相同;public公共变量,可从一个类中访问另一个类;private申明为过程级别的变量,作用域是一个类内部。
- 强制申明,“Option Explicit”,将此关键字添加道脚本中第一行即可,所有使用未申明的变量就会报错。
8.1.2 数组
数组申明:Dim A(10)。下标从0开始
三维数组申明:Dim B(2,4,6)。第一个数组表示第一个维度中的元素数量
申明一个动态数组:先申明一个空数组Dim C(),之后确定元素个数ReDim
C(30)。如果修改后元素数量少于修改前,那么多出来的部分元素会丢失。
8.1.3 控制语句
'1. Do循环
Do While 条件 '当条件满足时执行循环
循环体
Exit Do '直接跳出循环体
Loop
Do until 条件 '一直循环,直到条件满足跳出
循环体
exit do
loop
'2. While循环
While 条件 '条件成立执行
循环体
Wend
'3. for循环
for
Next
'4. forEach循环
for Each 元素 in 集合
循环体
Next
8.1.4 过程
- Sub:子程序,可以带参数,但不带返回值
- Function:函数,可以带参数,可以返回值
'Sub
Sub test1 '定义Sub,没有参数
End Sub
test1 '调用test1
Sub test2(a) '定义Sub,参数为a
End Sub
test2("123") '调用test2,实参为“123”
8.1.5 VB字符串处理
- 清空格:Ltrim、Rtrim、Trim
- 分割字符串:Split
- 截取字符串:left、right、Mid
- 替换字符串:replace
- 获取字符串长度:Len
- 数字转为字符串:Str(number)
- 字符串转为数字:Var(string)
a = " 学习WinCC 先看VB脚本 "
msgbox Ltrim(a)
msgbox Rtrim(a)
msgbox Trim(a) '只能删除左右的空格,中间的删不了
b = "1,2,3,4,5"
c = Split(b, ",")
msgbox c(0) '分割后是数组
d = "学好VB学WinCC"
e = Left(d, 2)
msgbox e
f = right(d,3)
msgbox f
g = Mid(d, 2, 3) '下标从1计数
msgbox g
h = "Cimplicity很好用"
msgbox Replace(h, "Cimplicity", "WinCC")
msgbox Len(h)
8.1.6 日期时间函数
- date():取系统当前日期
- time():取系统当前时间
- now():取系统当前时间及日期值 Datetime类型
- timer():取当前时间距离零点秒值,计时器,可计算时间差
- DateAdd(间隔单位,间隔值,日期):推算相邻日期
- DateDiff(间隔单位,日期一,日期二):计算时间差 日期二-日期一
- Datepart(间隔单位,日期):计算日期的间隔单位值
- Dateserial(date):输出日期值(按序列计算)
- Timeserial(time):输出时间值(按序列计算)
- DateValue(datetime):取出字符串中日期值
- Timevalue(datetime):取出字符串中时间值
- weekday(date):计算星期几,返回结果是1~7,表示周日~周六
- MonthName(date):输出月分名
- year(datetime):截取年份
- month(datetime):截取月份
- day(datetime):截取日
- hour(datetime):截取小时
- minute(datetime):截取分钟
- second(datetime):截取秒
8.1.7 格式化函数
-
Format()
-
FormatNumber(num, 2):将num格式化为2位小数
-
FormatDateTime()
-
FormatCurrency():货币格式化
8.2 VB对象操作
8.2.1 CreateObject方法
CreateObject:创建并返回一个ActiveX对象的引用。可以访问windows系统内安装的所有com对象,并且可以调用这边部件中存放的命令
- Scripting.Filesystemobject:提供一整套文件系统操作函数
- Excel.Application:Excel实列程序
- Word.Application:word实列程序
- ADODB.Connection:数据库连接实列
- WScript.Network:提供计算机网络相关操作
- msxml2.domdocument:提供XML文档操作方法
- Wscript.Shell:提供操作系统相关操作
- scripting.dictionary:提供字典相关方法
8.2.2 文件及文件夹管理
文件夹常用操作:
- CreateFolder:创建一个空文件夹
- DeleteFolder(File):删除文件夹
- FolderExist(File):确认文件夹是否存在
- CopyFolder(File):复制文件夹
- MoveFolder(File):移动文件夹
文件常用操作:
- GetExtensionName:获取文件后缀
- GetBaseName:获取文件名称
- GetParentFolderName:获取文件所在文件夹,全路径
Dim fso
Set fso = CreateObject("Scripting.Filesystemobject")
fso.BuildPath '
fso.CopyFile '复制文件
fso.CopyFolder '复制文件夹
fso.CreateFolder '
fso.CreateTextFile '
fso.DeleteFile '
fso.DeleteFolder '
fso.DriverExists '
fso.Drivers '
fso.FileExists '文件是否存在
fso.FolderExists '
fso.GetAbsolutePathName '获取绝对路径
fso.GetBaseName '
fso.GetDriver '
8.2.3 txt文件操作
8.2.4 excel文件操作
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
oExcel.visible = true '可以看到文件的打开、关闭过程
oExcel.Workbooks.Add '新建工作簿
oExcel.Workbooks.Open "D:\test\test2.xls" '打开一个excel文件
oExcel.Cells(1,4) = "Vbs" '向单元格写入数据,Cells(行号,列号),其中列号是序号,不是A1,A2,。。。
msgbox OExcel.Cells(1,4).value '获取单元格的值
oExcel.Save "D:\test\test.xls" '新建工作簿后保存工作簿
oExcel.ActiveWorkbook.SaveAs "D:\test\test3.xls" '当前文件另存为
oExcel.Quit '系统默认新建工作簿后为打开状态(即便没有窗口也是打开状态),需要退出后台
8.3 MSSQL数据库与VBS脚本
8.3.1 ADO对象
- Connection对象:用于创建一个到达某个数据源的开放连接
- Command对象:用于执行面向数据库的一次简单查询。执行后返回一个RecordSet对象
- RecordSet对象:用于容纳一个来自数据库表的记录集
- Record对象:用于容纳记录集中的一行、或文件系统的一个文件或目录
- Field对象:包含有关RecordSet对象中某一列的信息。RecordSet中每一列对应一个Filed对象
- Error对象:包含与单个操作(涉及提供者)有关的数据访问错误的详细信息
- Parameter对象:可提供有关被用于存储过程或查询中的一个单个参数的信息
- Property对象:ADO对象有两种类型的属性:内置属性和动态属性。如定义记录集是否支持更新
- Stream对象:用于读写以及处理二进制数据或文本流
8.3.2 VBS通过ODBC连接SQL数据库
'vbs通过ODBC连接SQL
'1. 创建一个数据库的 ADO连接
dim oConn
set oConn = WScript.CreateObject("ADODB.Connection")
oConn.ConnectionString = "Provider=MSDASQL;DSN=DSN_name;UID=;PWD=" 'DSN_name就是windows配置的ODBC的连接点
oConn.CursorLocation = 3
'2. 打开数据库连接
oConn.Open
'3. 创建记录集
set ORecoderSet = CreateObject("ADODB.Recordset")
set ORecoderSet = oConn.Execute("select * from P2")
'4. 从记录集中提取需要的数据
'显示结果集中记录的条数。查询结果不会放到ORecoderSet中,增删改是可以的
msgbox "total:" & ORecoderSet.RecordCount
if(ORecoderSet.RecordCount <> 0) then
ORecoderSet.MoveFirst
for i = 1 to ORecoderSet.RecordCount
MsgBox ORecoderSet.Fields(0).value 'Fields表示结果集中列的集合,下标从0开始
ORecoderSet.MoveNext
next
end if
'5. 关闭记录集
set ORecoderSet = Nothing
'6. 关闭连接
oConn.Close
set oConn = Nothing
8.3.3 VBS通过OLEDB连接数据库
'vbs通过OLEDB连接数据库
'1. 创建一个到数据库的 ADO连接
dim oConn
set oConn = WScript.CreateObject("ADODB.Connection")
oConn.ConnectionString = ""
'本地连接:"Provider=SQLOLEDB.1;integrated security=sspi;Persist Security Info=false;Initial Catalog=BOOKSTORE;Data Source=AJAIPC\WINCC"
'远程连接:"Provider=SQLOLEDB.1;Persist Security Info=false;UserID=sa;Password=123456;Initial Catalog=BOOKSTORE;Data Source=192.168.31.115,1433"
'Provider指定驱动程序:SQLNCLI.1是sql server原生驱动,功能完成,但需要安装sql server客户端驱动程序;SQLOLEDB.1是Windows集成的驱动程序
'integrated security=sspi Windows身份验证
'Persist Security Info 是否保存登录信息
'Initial Catalog 数据库名
'Data Source 数据库服务器名
oConn.CursorLocation = 3
'2. 打开数据库连接
oConn.Open
'3. 创建记录集
set oRecordSet = CreateObject("ADOBD.Recordset")
set oRecordSet = oConn.Execute("select * from tableName")
'4. 从记录集中提取需要的数据
'显示结果集中记录的条数。查询结果不会放到ORecoderSet中,增删改是可以的
msgbox "total:" & ORecoderSet.RecordCount
if(ORecoderSet.RecordCount <> 0) then
ORecoderSet.MoveFirst
for i = 1 to ORecoderSet.RecordCount
MsgBox ORecoderSet.Fields(0).value 'Fields表示结果集中列的集合,下标从0开始
ORecoderSet.MoveNext
next
end if
'5. 关闭记录集
set ORecoderSet = Nothing
'6. 关闭连接
oConn.Close
set oConn = Nothing
8.3 VB操作数据库操作
ADO开发数据库的三大组件:Command、Connection、RecordSet
connection:连接对象
command:SQL执行对象
recordset:结果集
在VB中,对变量赋值可以使用 “变量名 = 变量值”,但给对象赋值时,需要使用 “Set 对象名 = 对象值”。且必须在使用后将对象名释放 “Set 对象名 = Nothing”
'连接对象 connection
Dim cnn As New ADODB.Connection
cnn.ConnectionString=""
'Provider=SQLOLEDB.1;
'Persist Security Info=False;
'User ID=sa;
'PWD=sa;
'Initial Catalog=student_db;初始表名
'Data Source=.;初始数据库
cnn.CursorLocation = adUserClient '指定ADODB库应使用客户端游标来访问记录集
cnn.Open '启动数据库连接。之后将通过cnn对象执行SQL语句
MsgBox cnn.State '1表示连接正常,0表示连接异常
'记录集对象 recordSet
Dim rst As New ADODB.Recordset
rst.Open "SELECT * FROM curriculum", cnn, adOpenStatic, adLockOptimistic
Set DataGridl.DataSource = rst 'DataGridl是VB窗体中一个控件,类似表格的效果
'rst查看第一条:rst.MoveFirst
'rst查看下一条:rst.MoveNext
'rst查看上一条:rst.MovePrevious
'rst查看最后一条:rst.MoveLast
'rst的结果集判断最后一条: rst.EOF = True
'rst的结果集判断第一条: rst.BOF = True
'SQL执行对象
'通常与recordSet一起使用
Dim sqlstr
sqlstr = "" '字符串连接可以用+号
Dim cmm As New ADODB.Command
cmm.ActiveConnection = cnn
cmm.CommandText = sqlstr
cmm.CommandType = adCmdText
cmd.Execute
8.2 WinCC中连接Sql Server 的WinCC数据库
数据库操作对象 | 对象方法与属性 | 方法的作用 |
---|---|---|
Connection | ConnectionString | 指定数据库连接参数 |
CursorLocation | 指定游标操作,默认为3,表示用户游标 | |
Open | 建立连接 |
'WinCC中用VB脚本连接数据库
'数据库l
Dim adoConn '数据库连接对象 connection
Dim adors '数据库结果集对象 recordSet
Dim adoComm '数据库指令对象 command
'普通对象
Dim sqlStr 'SQL语句 字符串
Dim HMIObject1, HMIObject2, HMIObject3 '画面上的控件对象
'对象类型的变量在使用后必须释放
九、WinCC脚本
9.1 VB脚本
9.1.1 基础介绍
- 项目模块/项目过程:只能在当前的项目中重新获取。由于过程存储在项目目录中,所有在复制项目时自动复制这些过程。项目模块存储在wincc文件系统的下列路径:<项目路径>\ScriptLib< Moduname >.bmo
- 标准过程:可通过所有与项目连接的计算机调入。在复制项目到另一个计算机上时,必须手动将标准过程复制到目标计算机上的相应目录中。标准模块存储在:<wincc安装路径>\ApLib\ScriptLibStd< Moduname >.bmo
- 动作:可以独立运行的过程,拥有触发器可以自主运行。存储在wincc文件系统的下列路径:<项目路径>\ScripAct< Moduname >.bmo
9.1.2 WinCC中的VBS
wincc中vbs脚本与系统自带的vbs脚本区别:1. wincc中vbs增加了wincc中特有的对象,如wincc画面对象、变量对象等;2. 去除了wincc中不适用的函数,如 sleep函数
9.2 C脚本
9.2.1 C脚本中变量类型对应的数据类型
9.2.2 C标准函数
- alarm组:包含了与wincc报警相关的函数
- graphics组:包含用于图形系统编程的函数
- report组:包含用于启动报表打印的函数
- userArc组:包含访问和操作用户归档的函数
- WinCC组:包含WinCC系统的函数
- Windows组:仅包含ProgramExecute函数
9.2.3 内部函数
- allocate组:包含分配和释放内存的函数
- c_bib组:包含来自C库的C函数
- graphics组:包含读取或设置图形对象属性的函数
- tag组:包含读取或设置变量的函数
- WinCC组:包含在运行系统中定义各种设置的函数
9.2.4 动作和函数的区别
- 动作具有触发器
- 可以为动作分配权限
- 动作没有参数
9.2.5 WinCC常用C脚本
//1. 用户注销
#pragma code("useadmin.dll")
#include "PWRT_api.h"
#pragma code()
PWRTLogout();
//2. 用户登录
#pragma code("useadin.dll")
#include "PWRT_api.h"
#pragma code()
PWRTLogin();
//3. 关闭项目并推出wincc
ExitWinCC();
//4. 退出运行到wincc资源管理器
DeactivateRTProject();
//5. 点击事件弹出对话框,通过点击弹出对话框的确定和取消按钮实现对变量的置位或取消
int r;
r = MessageBox(NULL, "YES为开,NO为关", "确定开命令", MB_YESNO | MB_SYSTEMMODAL);
if(r == IDYES)
SetTagBit("TAGNAME", TRUE);
else
SetTagBit("TAGNAME", FALSE);
十、报表制作
10.1 控件
10.1.1 控件的共同属性
Backcolor 背景颜色
Width、height 宽度、高度
Enable 使能
Visible 可见性
10.1.2 时间控件
- 时间控件 DtPicker:设置、获取日期。使用前需要添加:右键ActiveX控件,选择“添加”,选择“Microsoft Date and Time Picker Control”
- 时钟控件 DaclockCtrl:显示时间。有两种显示方式:①表盘式 ②文本式:在属性中将“模拟”改为否即可
10.1.2 消息框
10.1.3 输入框
10.1.4 下拉菜单
重要属性:
- NumberLines
- Index
- text
- sellndex
- seltext
10.1.5 多选框和单选框
重要属性:
- BoxCount 选项数量
- index
- text
- Process (十进制)选了哪些值
单选框:用户一旦选择便无法取消。在需要取消选择的地方,需要设置空白选项或复位按钮
重要属性:
5. NumberLines
6. Index
7. text
8. selIndex:设置、获取被选中序号
9. seltext:设置、获取被选中文本
10.1.6 图片
10.1.7 滚动条和进度条
slideCtrl 滚动条的重要属性:
- Position:滑块位置
- RangeMax:上限值
- RangeMin:下限值
ProcessBar 进度条的重要属性:
- Process\value
10.1.8 文件对话框 common dialog
在项目运行时,这个控件是不可见的
重要属性:
- Filter:过滤器
Dim comm Set comm = ScreenItems.Item("控件1") comm.Filter = "Test(*.txt)"
- InitDir:默认路径
- showOpen:打开对话框
- showSave:保存对话框
- FileName:获取用户选择的文件名(绝对路径)
10.1.9 表格控件
MsHflexGrid:主要用于数据显示,操作简单,单元格不可编辑
DataGridview:主要用于数据动态显示,可编辑。
10.1.9.1 MsHFlexGrid
重要对象与属性:
- Row:行
- Col:列
- FixedRows:固定行数
- FixedCols:固定列数
- TextMatrix:给单元格赋值或取值。下标从0开始
- DataSource:从数据库中获取查询数据后,数据库保存在adoRs中,直接用DataSource=adoRS即可获取全部数据。MsFlexGrid控件没有这个属性
- colwidth(x)=2500:修改第x列的宽度为2500
Dim FlexGrid
Set FlexGrid = ScreenItems.Item("FlexGrid")
With FlexGrid
'初始化表结构
.Rows = 15
.Cols = 11
.FixedRows = 1
.FixedCols = 1
'初始化表头
.TextMatrix(0,1) = "日期"
.TextMatrix(0,2) = "时间"
.TextMatrix(0,3) = "PDP1"
.TextMatrix(0,4) = "PDP2"
.TextMatrix(0,5) = "PDP3"
.TextMatrix(0,6) = "PDP4"
.TextMatrix(0,7) = "WDP1"
.TextMatrix(0,8) = "WDP2"
.TextMatrix(0,9) = "WDP3"
.TextMatrix(0,10) = "WDP4"
.TextMatrix(1,0) = "Andon"
.TextMatrix(2,0) = "BC"
.TextMatrix(3,0) = "BD"
.TextMatrix(4,0) = "ER"
.TextMatrix(5,0) = "ERRS1"
.TextMatrix(6,0) = "ERRS2"
End With '第27行
Dim i, j
For i = 0 To FlexGrid.rows - 1
FlexGrid.row = i
For j = 0 To FlexGrid.Cols - 1
flexgrid.Col = j
If i Mod 2 = 0 Then
FlexGrid.BackColor = RGb(255,0,0)
End If
Next
Next
End Sub
10.2 图表
报表常用图表类型:
- line:直线图
- spline:曲线图
- column:柱状图
- bar:条形图
- stack:堆图。强调一组数据中各项的比例及趋势,如用于设备故障分线
- pie:饼图
10.2.1 图表控件 Chart
推荐:
- Ms chart
- Ms Office chart
先添加控件:右键单击“ActiveX控件”->“添加/删除”【这里因为截图未显示】
正常是没有这个控件的,需要有对应包,并且注册后,才能看到
MsChart控件属性:
- RowCount:设置作图数据的行数
- ColumnCount:设置作图数据的列数
- TitleText:设置图题
- RowLabelCount:设置行标的个数
- RowLabel:设置行标
图表控件的类型:
6. 0 -> 3维条形图
7. 1 -> 2维条形图
8. 2 -> 3维折线图
9. 3 -> 2维折线图
10. 4 -> 3维域型图
11. 5 -> 2维域型图
12. 6 -> 3维阶梯图
13. 7 -> 2维阶梯图
14. 8 -> 3维联合图
15. 9 -> 2维联合图
10.2.2 标图控件 Ms Office Chart
10.3 动作效果
10.4 趋势控件
10.4.1 实时趋势图
可以设置两个数值轴,使用变量时需要选择用哪个轴