例程:组态王日报表的实现
统日报表”,点击右键在快捷菜单中选择“设置单元格格式”,设置字体、对齐方式、边框等。我们按照此方法设计日报表的格式,如图三所示:
图三 日报表
3.2) 创建日历控件:
我们按照日期进行历史数据的查询生成日报表,使用微软提供的通用控件“Microsoft Date and Time Picker Control ”,此控件在安装VB或者VC或者Office2000后会在通用控件中找到。
插入通过控件,如图四所示:选择后画到画面上,双击控件,在“常规”选项卡中为控件命名为“ADate”,点击“确定”,保存画面。再次双击日历控件,选择“事件”选项卡,点击在“事件”选项卡中点击CloseUp事件,弹出控件事件函数编辑窗口,在函数声明中为此函数命名:CloseUp();在编辑窗口中编写脚本程序,在编写脚本程序之前在数据词典中定义字符串变量“选择日期”,如图五所示:
北京亚控科技发展有限公司 6 例程:组态王日报表的实现
图四 日历控件
脚本程序如下:
float Ayear; float Amonth; float Aday; long x; long y; long Row; long StartTime; string temp; Ayear=ADate.Year; Amonth=ADate.Month; Aday=ADate.Day;
北京亚控科技发展有限公司 7 例程:组态王日报表的实现
temp=StrFromInt( Ayear, 10 ); if(Amonth<10)
temp=temp+\else
temp=temp+\if(Aday<10)
temp=temp+\else
temp=temp+\\\\\本站点\\选择日期=temp;
ReportSetCellString2(\清空单元格 ReportSetCellString(\填写日期 StartTime=HTConvertTime(Ayear,Amonth,Aday,0,0,0);
ReportSetHistData(\\本站点\\压力\StartTime, 3600, \
ReportSetHistData(\\本站点\\温度\StartTime, 3600, \
ReportSetHistData(\\本站点\\密度\StartTime, 3600, \
ReportSetHistData(\\本站点\\电流\StartTime, 3600, \
ReportSetHistData(\\本站点\\电压\StartTime, 3600,
北京亚控科技发展有限公司 8 例程:组态王日报表的实现
\x=0;
while(x<24) { row=4+x;
y=StartTime+x*3600; temp=StrFromTime( y, 2 );
ReportSetCellString(\ x=x+1; }
编辑完成后点击“确认”,完成对日历控件的设置。下面我们对报表进行保存和打印。 在画面上添加两个按钮,按钮文本分别为“保存”、“打印”。双击“保存”按钮,弹出“动画连接”,点击“命令语言连接”的“弹起时”,编写报表保存的脚本程序。报表保存的格式为“xls”文件,如图六所示:脚本程序如下:
string filename;
filename=InfoAppDir()+\\\\本站点\\选择日期+\ReportSaveAs(\
双击“打印”按钮,弹出“动画连接”,点击“命令语言连接”的“弹起时”,编写报表打印的脚本程序。如图七所示:脚本程序如下:
ReportPrintSetup(\
北京亚控科技发展有限公司 9 例程:组态王日报表的实现
图五 控件事件函数
图六 保存报表
北京亚控科技发展有限公司 10