WINCC做报表

我要做一个按钮当点击时预览用报表编辑器中布局做的报表,怎么实现、应编写什么脚本?
 是不是用这个函数RPTJobPrevie(pszJobName);这个函数中的pszJobName是什么的名字?具体应该怎么用?急用

最佳答案

一、 建立变量
 除建立项目所需的所有外部变量外,还需建立报表需要的内部变量:
 1、公用:year(无符号16位数)  month(无符号8位数)  day(无符号8位数)
 2、日报表用:a1(无符号8位数)  a2(无符号8位数)  a3(无符号16位数)
 ll1(文本变量16位字符集)  ll2(文本变量16位字符集)
 二、 变量记录
 1、 定时器
 根据归档时间组态定时器,将循环起始点设为0时0分0秒,以保证整点记录。
 2、 归档
 日、月、年报要创建不同的归档,归档周期不一样。
 3、归档组态
    变量归档周期小于等于1min的为快速归档,大于1min的为慢速归档,所以日、月、年报的归档都属于慢速归档。右键单击归档组态右侧栏中的Taglogging Slow,选择属性项,组态归档尺寸。“所有分段的时间段”即为所要存数据的最长时间,可根据用户需要更改为1-100年。“所有分段的最大尺寸”即为所存数据的最大尺寸,一条记录占的空间为2M(包括.ldf和.mdf两个文件),另外当前正在运行的记录占空间为51M,所以根据上述组态的最长时间和所要存的数据计算最大尺寸,比如一年内日报占用空间为:2×24×365×1+51=17571M,同样方法可以计算月报,年报的尺寸。预留一些余量,一般组态最大时间为100十亿字节足够。
 三、报表编辑器
 1、新建页面布局
    在新建的页面布局右侧工具栏的“运行系统”中选择:变量记录运行系统——变量表格,鼠标左键在页面中拖放画出表格。右键单击表格,选择属性项,在弹出对话框中选择“连接项”,组态其中的各项。时间范围的起始时间和终止时间连接第一步建立的ll1和 ll2。
    如果要添加标题则在视图选项中将页面切换到“静态部分”,加入静态文本。静态部分可以加入动态变量,但动态部分不能进行静态文本操作。(页面的灰色部分为静态部分)
 2、 新建打印作业
 在新建的打印作业中连接上面的页面布局。

 在画面中组态按钮,在按钮的鼠标动作中写如下代码:
 日报表代码:
 char datestr[10];
 char datestr1[10];
 sprintf(datestr,"%02d-%02d-%02d" ,GetTagWord("year"),GetTagWord("month"),GetTagWord("day"));
 SetTagChar("ll1",datestr);
 SetTagWord("a1",GetTagWord("day")+1);
 SetTagWord("a2",GetTagWord("month"));
 SetTagWord("a3",GetTagWord("year"));
 if(GetTagWord("a2")==1&&GetTagWord("day")==31)
 {
 SetTagWord("a2",2);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==2&&GetTagWord("day")==28)
 {
 SetTagWord("a2",3);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==3&&GetTagWord("day")==31)
 {
 SetTagWord("a2",4);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==4&&GetTagWord("day")==30)
 {
 SetTagWord("a2",5);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==5&&GetTagWord("day")==31)
 {
 SetTagWord("a2",6);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==6&&GetTagWord("day")==30)
 {
 SetTagWord("a2",7);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==7&&GetTagWord("day")==31)
 {
 SetTagWord("a2",8);
 SetTagWord("a1",1); 
 }
 else
 {
 if(GetTagWord("a2")==8&&GetTagWord("day")==31)
 {
 SetTagWord("a2",9);
 SetTagWord("a1",1); 
 }
 }
 if(GetTagWord("a2")==9&&GetTagWord("day")==30)
 {
 SetTagWord("a2",10);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==10&&GetTagWord("day")==31)
 {
 SetTagWord("a2",11);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==11&&GetTagWord("day")==30)
 {
 SetTagWord("a2",12);
 SetTagWord("a1",1); 
 }
 if(GetTagWord("a2")==12&&GetTagWord("day")==31)
 {
 SetTagWord("a2",1);
 SetTagWord("a1",1);
 SetTagWord("a3",GetTagWord("year")+1); 
 }
 sprintf(datestr1,"%02d-%02d-%02d ",GetTagWord("a3"),GetTagWord("a2"),GetTagWord("a1"));
 SetTagChar("ll2",datestr1);
 RPTJobPreview("PrintJob001");
 

提问者对于答案的评价:
非常感谢
 

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc278012.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 下午1:39
下一篇 2019年6月11日 下午1:39

相关推荐

  • wincc5.1画面问题

    从工控机上复制下来的wincc5.1画面文件,放到我的计算上。打开图形编辑器,画面中的静态文本,control和symbollibrary等不能显示出来,只是显示未知的对象 最佳答…

    SIMATIC WinCC 2019年6月11日
  • 请教关于wincc v5.0安装问题。谢谢!

    在安装wincc v5.0时,安装一半时,在进行到“安装程序正在调用下列组件的安装wincc授权”的时候,为什么不进行继续安装?在之前选择的是“以后安装授权”。是操作系统…

    SIMATIC WinCC 2019年6月11日
  • 在WINCC中添加网页浏览视频监控窗口

    在WINCC中添加网页浏览视频监控窗口,但是进网页后需要输入密码,能不能用脚本将网页设置成自动填写登陆名及密码,并自动点击登录 图片说明:    最佳答案 wi…

    2021年7月5日
  • wincc趋势记录保存的问题

    我用的是wincc6.0,现场的趋势记录是保存一周的,我想每周将它用优盘拷贝出来保存到其他电脑上,也就是将Archivemanager文件中的TagLoggingfast和slow…

    SIMATIC WinCC 2021年7月5日
  • 400DB块与WINCC的组合问题

    我在400PLC的程序里面的DB20属性里面看到如图所示,数据是连到工控机里面的WINCC画面里面去的,我WINCC原画面也有,请问,我要在WINCC哪个里面才能看到PLC的DB与…

    2017年12月7日
  • 按钮闪烁背景激活问题·

    我现在在wincc7.4中画了几个界面,界面之间会有跳转按钮,因为界面比较多,所以跳转按钮也比较多,所以想要当跳转按钮点击之后,跳转到对应的界面,之后对应的按钮会背景闪烁几秒然后自…

    SIMATIC WinCC 2020年11月1日
  • WinCC创建项目错误OLE INITIALIZATION FAILED

    创建项目时出现XREFS错误:OLE INITIALIZATION FAILED,然后出现“不能创建项目”提示;哪位同学遇见过这种情况,WinCC版本是6.03…

    SIMATIC WinCC 2019年6月11日
  • WinCC 7.0亚洲版的能源管理系统可以二次开发吗

    WinCC 7.0亚洲版的能源管理系统可以二次开发吗?麻烦各位大神解答一下,谢谢!! 最佳答案 EMS系统的使用与WinCC软件及其版本无关。宝信自动化大多采用希雅特软件…

    SIMATIC WinCC 2017年6月18日
  • SIMATIC WinCC flexible 2008显示字符串时提示地址错误

    用PLC建了两个字符串变量,地址为DB51 104,DB51 114。在wincc上面按照这两个地址输入,仿真运行之后,提示第二个地址错误,不知道什么原因。另外…

    2018年3月6日
  • WICC里模拟量报警颜色变化

    现在自己在做一个项目,对于Wicc里C语言变成这块还是比较陌生。现在业主要求我们在Wicc里的模拟量显示框里(也就是WICC的输出域)里做出当上限报警,上上限报警,下限,下下限报警…

    2017年11月25日