组态王7.5日月年报例程

本文将介绍组态王7.5版本的日报、月报以及年报的实现过程。日报、月报和年报均设置了两个页面,一个页面在后台做数据处理,并保存报表,另一个页面通过查询已经保存好的报表文件来实现报表查询,具体实现过程如下:

一、日报的生成

1.新建后台处理画面做数据处理

报表名称为Report5,这里相当于一个模板,设计可以自由发挥,average、max、min函数均为报表单元格函数,产品帮助中报表系统章节可以查询到

2.写事件命令语言

脚本如下:

string FileName;

FileName=InfoAppDir()+"日报\"+ StrFromReal( \\local\$Year, 0, "f" )+"年"+StrFromReal(\\local\$Month, 0, "f" )+"月"+StrFromReal(\\local\$Day, 0, "f" )+"日"+".rtl";

//如果日报路径下没有当天的文件就清空后台日报,并保存报表到日报路径下,如果日报路径下有当天的报表就直接加载报表

long return01=InfoFile( Filename, 1, \\local\$Minute );

if (return01==0)

{

ReportSetCellString2("Report5", 6, 1,29,11, "");

ReportSaveAs("Report5",FileName);

}

else

{

ReportLoad("Report5",FileName);

}

//后台日报填充数值

ReportSetCellString("Report5", 3,10, \\local\$Date);

long hang=\\local\$Hour+6;

string timestr=time(\\local\$Hour,0,0);

ReportSetCellString("Report5", hang,1, timestr);

ReportSetCellValue("Report5", hang,2,\\local\颗粒物);

ReportSetCellValue("Report5", hang,3,\\local\颗粒物折算);

ReportSetCellValue("Report5", hang,4, \\local\SO2);

ReportSetCellValue("Report5", hang,5, \\local\SO2折算);

ReportSetCellValue("Report5", hang,6, \\local\NO2);

ReportSetCellValue("Report5", hang,7, \\local\NO2折算);

ReportSetCellValue("Report5", hang,8, \\local\流量);

ReportSetCellValue("Report5", hang,9, \\local\O2);

ReportSetCellValue("Report5", hang,10, \\local\温度);

ReportSetCellValue("Report5", hang,11, \\local\水分);

ReportSaveAs("Report5",FileName);

3.新建日报画面

画面命令语言显示时:

脚本:

string FileName;

报表名="";

FileName=InfoAppDir()+"日报\"+"*.rtl";

listClear("报表查询");

ListLoadFileName( "报表查询", FileName );

画面中其他按钮中

圈1:下拉框控件关联报表名这个字符串变量

圈2

脚本:

string FileName;

FileName=InfoAppDir()+"日报\"+"*.rtl";

listClear("报表查询");

ListLoadFileName( "报表查询", FileName );

圈3:

脚本:

string FileName;

FileName=InfoAppDir()+"日报\"+\\local\报表名;

FileDelete( Filename );

string FileName1;

FileName1=InfoAppDir()+"日报\*.rtl";

listClear("报表查询");

ListLoadFileName( "报表查询", FileName1 );

圈4

string FileName;

FileName=InfoAppDir()+"日报\"+\\local\报表名;

ReportLoad("Report1",FileName);

二、月报的生成

  1. 新建后台月报画面

  1. 写事件命令语言

脚本如下:

ShowPicture("后台月报");

HidePicture("后台月报");

string FileName;

FileName=InfoAppDir()+"月报\"+ StrFromReal( \\local\$Year, 0, "f" )+"年"+StrFromReal(\\local\$Month, 0, "f" )+"月"+".rtl";

判断月报目录下是否已经有当月的报表文件了

long return02;

return02=InfoFile( Filename, 1, \\local\$Minute );

if (return02==0)

{

ReportSetCellString2("Roport7", 6, 1, 36, 11, "");

Reportsaveas("Roport7",FileName);

\\local\日计数=0;

}

else

{

ReportLoad("Report7",FileName);

}

string riqi=StrFromReal(\\local\$Year, 0,"f" )+"年"+StrFromReal( \\local\$Month, 0,"f" )+"月";//填充月份

ReportSetCellString("Report7", 3, 10, riqi);

long hang;

hang= $Day+5;

\\local\日计数=\\local\日计数+1;

string str;

long Value;

str=ReportGetCellString("Report5", 3, 10);//取日报的日期,填充到后台月报

ReportSetCellString("Report7", hang, 1, str);

Value=ReportGetCellValue("Report5", 30, 2);//将日报表中的统计数据(平均值)输入到月报表中

ReportSetCellValue("Report7", hang, 2, Value);

Value=ReportGetCellValue("Report5", 30, 3);

ReportSetCellValue("Report7", hang, 3, Value);

Value=ReportGetCellValue("Report5", 30, 4);

ReportSetCellValue("Report7", hang, 4, Value);

Value=ReportGetCellValue("Report5", 30, 5);

ReportSetCellValue("Report7", hang, 5, Value);

Value=ReportGetCellValue("Report5", 30, 6);

ReportSetCellValue("Report7", hang, 6, Value);

Value=ReportGetCellValue("Report5", 30, 7);

ReportSetCellValue("Report7", hang, 7, Value);

Value=ReportGetCellValue("Report5", 30, 8);

ReportSetCellValue("Report7", hang, 8, Value);

Value=ReportGetCellValue("Report5", 30, 9);

ReportSetCellValue("Report7", hang, 9, Value);

Value=ReportGetCellValue("Report5", 30, 10);

ReportSetCellValue("Report7", hang, 10, Value);

Value=ReportGetCellValue("Report5", 30, 11);

ReportSetCellValue("Report7", hang, 11, Value);

Reportsaveas("Report7",FileName);

//将日报表中的统计数据(平均值)输入到月报表中

Value=ReportGetCellValue("Report7", 39, 2);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 2, Value);

Value=ReportGetCellValue("Report7", 39, 3);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 3, Value);

Value=ReportGetCellValue("Report7", 39, 4);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 4, Value);

Value=ReportGetCellValue("Report7", 39, 5);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 5, Value);

Value=ReportGetCellValue("Report7", 39, 6);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 6, Value);

Value=ReportGetCellValue("Report7", 39, 7);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 7, Value);

Value=ReportGetCellValue("Report7", 39, 8);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 8, Value);

Value=ReportGetCellValue("Report7", 39, 9);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 9, Value);

Value=ReportGetCellValue("Report7", 39, 10);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 10, Value);

Value=ReportGetCellValue("Report7", 39, 11);

Value=Value/\\local\日计数;

ReportSetCellValue("Report7", 37, 11, Value);

//将累计值转换为平均值

Reportsaveas("Report7",FileName);

  1. 新建月报画面

画面命令语言显示时:

脚本:

string FileName;

报表名="";

FileName=InfoAppDir()+"月报\"+"*.rtl";

listClear("月报查询");

ListLoadFileName( "月报查询", FileName );

画面中其他按钮:

圈2

脚本:

string FileName;

FileName=InfoAppDir()+"月报\"+"*.rtl";

listClear("月报查询");

ListLoadFileName( "月报查询", FileName );

圈3:

脚本:

string FileName;

FileName=InfoAppDir()+"月报\"+\\local\报表名;

FileDelete( Filename );

string FileName1;

FileName1=InfoAppDir()+"月报\*.rtl";

listClear("月报查询");

ListLoadFileName( "月报查询", FileName1 );

圈4:

string FileName;

FileName=InfoAppDir()+"月报\"+\\local\报表名;

ReportLoad("月报",FileName);

三、年报的生成

  1. 新建后台年报

  1. 新建数据改变命令语言

脚本:

ShowPicture("后台年报");

HidePicture("后台年报");

string FileName;

FileName=InfoAppDir()+"年报\"+ StrFromReal( \\local\$Year, 0, "f" )+"年"+".rtl";

判断年报目录下是否已经有当年的报表文件了

long return02;

return02=InfoFile( Filename, 1, \\local\$Minute );

if (return02==0)

{

ReportSetCellString2("Roport0", 6, 1, 18, 11, "");

Reportsaveas("Roport0",FileName);

月计数=0;

}

else

{

ReportLoad("Report0",FileName);

}

string riqi=StrFromReal(\\local\$Year, 0,"f" )+"年";//填充年份

ReportSetCellString("Report0", 3, 10, riqi);

long hang;

hang=\\local\$Month+5;

月计数=月计数+1;

string str;

long Value;

str=ReportGetCellString("Report7", 3, 10);

ReportSetCellString("Report0", hang, 1, str);

Value=ReportGetCellValue("Report7", 37, 2);

ReportSetCellValue("Report0", hang, 2, Value);

Value=ReportGetCellValue("Report7", 37, 3);

ReportSetCellValue("Report0", hang, 3, Value);

Value=ReportGetCellValue("Report7", 37, 4);

ReportSetCellValue("Report0", hang, 4, Value);

Value=ReportGetCellValue("Report7", 37, 5);

ReportSetCellValue("Report0", hang, 5, Value);

Value=ReportGetCellValue("Report7", 37, 6);

ReportSetCellValue("Report0", hang, 6, Value);

Value=ReportGetCellValue("Report7", 37, 7);

ReportSetCellValue("Report0", hang, 7, Value);

Value=ReportGetCellValue("Report7", 37, 8);

ReportSetCellValue("Report0", hang, 8, Value);

Value=ReportGetCellValue("Report7", 37, 9);

ReportSetCellValue("Report0", hang, 9, Value);

Value=ReportGetCellValue("Report7", 37, 10);

ReportSetCellValue("Report0", hang, 10, Value);

Value=ReportGetCellValue("Report7", 37, 11);

ReportSetCellValue("Report0", hang, 11, Value);

//将月报表中的统计数据(平均值)输入到年报表中

Value=ReportGetCellValue("Report0", 21, 2);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 2, Value);

Value=ReportGetCellValue("Report0", 21, 3);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 3, Value);

Value=ReportGetCellValue("Report0", 21, 4);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 4, Value);

Value=ReportGetCellValue("Report0", 21, 5);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 5, Value);

Value=ReportGetCellValue("Report0", 21, 6);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 6, Value);

Value=ReportGetCellValue("Report0", 21, 7);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 7, Value);

Value=ReportGetCellValue("Report0", 21, 8);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 8, Value);

Value=ReportGetCellValue("Report0", 21, 9);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 9, Value);

Value=ReportGetCellValue("Report0", 21, 10);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 10, Value);

Value=ReportGetCellValue("Report0", 21, 11);

Value=Value/月计数;

ReportSetCellValue("Report0", 19, 11, Value);

//将年报中的各月平均值计算后输入到年报平均值中

Reportsaveas("Report0",FileName);

//按照固定路径格式保存年报

  1. 新建年报查询画面

画面命令语言显示时:

脚本:

string FileName;

FileName=InfoAppDir()+"年报\"+"*.rtl";

listClear("报表名");

ListLoadFileName( "报表名", FileName );

画面中其他按钮

圈2:

脚本:

string FileName1;

FileName1=InfoAppDir()+"年报\"+"*.rtl";

listClear("报表名");

ListLoadFileName( "报表名", FileName1 );

圈3

脚本:

string FileName;

FileName=InfoAppDir()+"年报\"+\\local\报表名;

ReportLoad("年报",FileName);

圈4:

脚本:

string FileName;

FileName=InfoAppDir()+"年报\"+\\local\报表名;

FileDelete( Filename );

string FileName1;

FileName1=InfoAppDir()+"年报\"+"*.rtl";

listClear("报表名");

ListLoadFileName( "报表名", FileName1 );

以上为功能实现说明,可私信索要例程

也可自行网盘保存

通过网盘分享的文件:7.5日月年报.zip
链接: https://pan.baidu.com/s/1b85yYiRq3hJAk0nzzYSh9g 提取码: enha 

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值