自动打印报表

我最近在做一个动态打印报表的功能,曾在论坛中请教过大侠们解答,也有人给了我答案,我将答案整理了一下,但是无法实现功能,大家能不能帮我想想到底是哪里的问题。
 脚本如下:
 #pragma option(mbcs)
 //**********************************
 typedef struct 
 {
 int tmsec;
 int tmmin;
 int tmhour;
 int tmmday;
 int tmmon;
 int tmyear;
 int tmwday;
 int tmyday;
 int tmisdst;
 }tm;
 SYSTEMTIME st1;
 SYSTEMTIME st2;

 //**********************************

 time_t   yest;
 tm *tm1;
 yest   =   time(NULL)  -  (time_t)(60*60*24); //当前时间减去一天时间
 tm1 = gmtime(&yest);//把日期和时间转换为格林威治(GMT)时间
 //**********************************
 st1.wYear=tm1->tmyear;
 st1.wMonth=tm1->tmmon;
 st1.wDay=tm1->tmmday;
 st1.wHour=tm1->tmhour;
 st1.wMinute=tm1->tmmin;
 st1.wSecond=tm1->tmsec;
 //**********************************转回正常时间
 st2.wYear=GetTagWord("year");
 st2.wMonth=GetTagWord("month");
 st2.wDay=GetTagWord("day");
 st2.wHour=GetTagWord("hour");
 st2.wMinute=GetTagWord("minute");
 st2.wSecond=GetTagWord("second");
 ModifyPrintJob(st1,st2,"report.rpl"); //修改打印作业的启始时间和结束时间。
 RPTJobPreview("PrintJob"); 

 
 手册里写的只是怎么组态12个变量,从而在画面指定时间来打印,我现在需要做的是,不需要业主选择,每天自动打印,因此我需要大家来帮我看看脚本这样写对不对,而不是手册里的那个方法,我以前也是用那个方法.
 我要不要添加time.h的头文件?
 

最佳答案

1、不需要加time.h,WinCC已经集成了一些time的处理函数。
 2、gmtime转换之后还需要进行一下处理,因为tmyear实际上是当前年-1900,而tmmon则是0-11,所以需要对代码进行修改。
 st1.wYear=tm1->tmyear+1900;
 st1.wMonth=tm1->tmmon+1;
 另外时间可能也不对,你试试用tm1 = localtime(&yest);

 对你的上一个问题表示道歉。

提问者对于答案的评价:
你看,要是你不回答,都没人去回答我的问题,你能回答我已经很感谢啦,再次谢谢啦!

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

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

相关推荐