报表系统应用例程
说明文档
此文档由北京亚控公司提供,仅作为KingSCADA3.0报表系统应用的使用参考,其中涉及内容的详细说明请参考KingSCADA3.0的使用说明或咨询技术支持
师。
目 录
11. 概述
12. 例程
12.1 实时报表
32.2 历史报表
72.3 日报表
113. 注意事项
1. 概述
数据报表是生产过程中必不可少的一个部分,利用报表系统可对生产过程中产生的事件、报警、实时和历史数据
并查询,以一定格式输出给用户。它是反映生产过程中的数据、状态等,并对数据进行记录的一种重要形式。
KingSCADA3.0提供内嵌式报表系统,工程人员可以任意设置报表格式并通过系统提供的报表函数在报表中实现各种运算、数据转换、统计
和打印等操作,在KingSCADA3.0系统中既可以实现实时数据报表,也可以实现历史数据报表,同时还支持在线修改报表格式的功能。
下面通过一个例程来介绍报表的各种功能。
2. 例程
2.1 实时报表
在此例程中我们定义两个变量,分别为temperature、pressure、flow。
新建画面,画面名称“Report”,在画面上添加一报表控件,如图1所示。
图1 报表窗口
设置报表窗属性:
ShowRowTitle:设置为“false”,报表窗口中不显示行号,如:1,2,3,4……
ShowColumnTitle:设置为“false”,报表窗口中不显示列号,如:A,B,C,D……
如图2所示。
图2 报表窗口属性
选中报表窗口 →单击鼠标右键,在弹出的右键菜单中执行“编辑”命令,弹出报表工具箱,如3所示:
图3报表工具箱
单击
单元格格式菜单,设置报表单元格的背景色,字体等。
单击按钮弹出变量选择窗口,选择要查询实时数据的变量。在运行环境中可以看到该变量的实时值,或者在某个单元格中直接输入变量的名称,输入格式如:=\\local\flow。
报表设置完成后,如图4所示。
图4 实时报表窗口
2.2 历史报表
变量Temperature、Pressure、flow设置保存历史数据,系统运行后记录历史数据。
第一步:添加报表窗
在画面“Report”上再添加一个报表窗口,设置报表窗属性。
ShowRowTitle:设置为“false”,报表窗口中不显示行号,如:1,2,3,4……
ShowColumnTitle:设置为“false”,报表窗口中不显示列号,如:A,B,C,D……
HistoryTags:单击该项,在弹出的变量选择窗口中选择要查询历史数据的变量Temperature、Pressure、flow。
如图5所示。
图5 报表窗属性
选中报表窗口 →单击鼠标右键,在弹出的右键菜单中执行“编辑”命令,通过报表工具箱,设置报表格式,如图6所示。
图6 历史报表窗口
第二步:添加日期时间控件及文本
在图形编辑器中单击“对象”菜单 →Windows UI →日期时间控件,在画面上添加两个日期时间控件“UIDateTime1”和“UIDateTime2”,其属性设置,如图7所示:
图7 日期时间控件属性
再添加文本“Text3”,模拟值输入和模拟值输出动画链接关联变量\\local\StepTime,如图8所示。
图8 动画连接
第三步:添加、设置按钮
1)查询按钮:
打开图库精灵,在画面上添加一按钮,在按钮上再添加文本为:查询,该按钮按下命令语言如下:
long year1;
long month1;
long day1;
long hour1;
long minute1;
long second1;
long year2;
long month2;
long day2;
long hour2;
long minute2;
long second2;
long StartTime;
long EndTime;
year1=UIDateTime1.Year;
month1=UIDateTime1.Month;
day1=UIDateTime1.Day;
hour1=UIDateTime1.Hour;
minute1=UIDateTime1.Minute;
second1=UIDateTime1.Second;
year2=UIDateTime2.Year;
month2=UIDateTime2.Month;
day2=UIDateTime2.Day;
hour2=UIDateTime2.Hour;
minute2=UIDateTime2.Minute;
second2=UIDateTime2.Second;
string str=InfoAppDir()+"Report\model.rtl";
Report0.ReportLoad(str);
Report0.SetCellString(2,4,\\local\$Date); //填写日期
StartTime=ConvertTimeToSecond(year1,month1,day1,hour1,minute1,second1,0);
EndTime=ConvertTimeToSecond(year2,month2,day2,hour2,minute2,second2,0);
Report0.SetTime(StartTime,EndTime,\\local\StepTime);
Report0.SetHistData("\\local\temperature",2);
Report0.SetHistData("\\local\pressure",3);
Report0.SetHistData("\\local\flow",4);
Report0.Query();
编辑完成后点击“确认”,完成查询按钮的设置。
2)保存按钮
在画面上添加保存按钮,该按钮按下命令语言如下:
string filename1;
string str1;
str1=StrFromInt(\\local\$Year, 10)+StrFromInt(\\local\$Month, 10)+StrFromInt(\\local\$Day, 10)+StrFromInt(\\local\$Hour, 10);
filename1=InfoAppDir()+"Report\"+str1+".csv";
\\local\filename=InfoAppDir()+"Report\"+str1+".rtl";
Report0.ReportSaveAs(filename);
Report0.ReportSaveAs(filename1);
3)打印预览按钮
在画面上添加打印预览按钮,该按钮按下命令语言如下:
Report0.Preview();
4)打印按钮
在画面上添加打印按钮,该按钮按下命令语言如下:
Report0.Print();
5)SetTimes查询按钮
在画面上添加SetTimes查询按钮,该按钮按下命令语言如下:
Report0.SetTimes();
Report0.Query();
6)查询关系数据库按钮
在画面上添加查询关系数据库按钮,该按钮按下命令语言如下:
KDBGetDataset("MyDataset", "DSN=data", "select dateandtime,temperature,pressure,flow from data");
Report0.SetDataset2("MyDataset",4,1);
注:查询关系数据库之前先要建立ODBC数据源,然后在系统脚本应用程序启动时和应用程序关闭时连接和断开数据库。
2.3 日报表
第一步:制作报表画面
新建画面,画面名称“DayReport”。在画面上添加一报表控件,属性设置与实时报表相同。
通过报表工具栏设置报表格式,如图10所示。
图10 日报表窗口
第二步:创建日期时间控件
在图形编辑器中单击“对象”菜单 →Windows UI →日期时间控件,在画面上添加日期时间控件,其属性设置,如图11所示:
图11 日期时间控件属性
第三步:创建组合框控件
在图形编辑器中单击“对象”菜单 →Windows UI →组合框控件,在画面上添加组合框控件,在组合框控件的下拉列表选项改变时触发事件OnSelectedIndexChange()里写如下脚本,如图12所示。
\\local\filename=UIComboBox1.GetCurrentText();
图12 组合框控件脚本
注意:开发过程当中,往画面上添加一个组合框时,要点击一下它的下拉按钮,使组合框的纵向扩大,以避免运行过程中下拉列表项不显示的问
。
第四步:添加、设置按钮
1)查询按钮
在画面上添加一按钮,按钮文本为:查询,该按钮按下命令语言如下:
float y1;
float m1;
float d1;
long StartTime;
long EndTime;
string dtime1;
y1=UIDateTime1.Year;
m1=UIDateTime1.Month;
d1=UIDateTime1.Day;
dtime1=StrFromReal(y1,0,"f")+"-"+StrFromReal(m1,0,"f")+"-"+StrFromReal(d1,0,"f");
\\local\selectdate=dtime1;
Report0.SetCellString(2,4,dtime1); //填写日期
Report0.SetCellStrings(4,1,27,4,""); //清空单元格
StartTime=ConvertTimeToSecond(y1,m1,d1,0,0,0,0);
EndTime=ConvertTimeToSecond(y1,m1,d1,23,59,59,0);
Report0.SetTime(StartTime,EndTime,3600000);
Report0.SetHistData("\\local\temperature",2);
Report0.SetHistData("\\local\pressure",3);
Report0.SetHistData("\\local\flow",4);
Report0.Query();
编辑完成后点击“确认”,完成查询按钮的设置。
2)保存按钮
在画面上添加保存按钮,该按钮按下命令语言如下:
string filename1;
string str;
int index1;
str=InfoAppDir()+"DayReport\"+"list.csv";
filename1=InfoAppDir()+"DayReport\"+\\local\selectdate+".csv";
\\local\filename=InfoAppDir()+"DayReport\"+\\local\selectdate+".rtl";
Report0.ReportSaveAs(filename);
Report0.ReportSaveAs(filename1);
//更新列表框内容,列表框内显示的是生成的所有报表文件
\\local\selectindex=UIComboBox1.GetFirstIndex(\\local\selectdate,0);
if (\\local\selectindex!=0)
{
UIComboBox1.DeleteItem(\\local\selectindex);
}
UIComboBox1.AddItem(\\local\selectdate);
UIComboBox1.ExportToFile(str);
3)读取报表按钮
在画面上添加读取报表按钮,该按钮按下命令语言如下:
string filename1;
filename1=InfoAppDir()+"DayReport\"+\\local\filename+".rtl";
Report0.ReportLoad(filename1);
4)打印预览按钮
在画面上添加打印预览按钮,该按钮按下命令语言如下:
Report0.Preview();
5)打印按钮
在画面上添加打印按钮,该按钮按下命令语言如下:
Report0.Print();
3. 注意事项
本演示工程只是简单的报表的应用例程,更深一步的学习使用请参考KingSCADA3.0的使用手册以及函数手册,或者参加北京亚控的
班。如有问题请致电亚控公司技术部。
PAGE