我最近在做一个动态打印报表的功能,曾在论坛中请教过大侠们解答,也有人给了我答案,我将答案整理了一下,但是无法实现功能,大家能不能帮我想想到底是哪里的问题。
脚本如下:
#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