指导:
缺省情况下,仅当消息顺序报表页完全填充完,打印布局才能打印出来。从WinCC V6.0 SP3 起,可以使用 "MSRTPrintMProt" 函数,在消息顺序报表完全填充完之前来打印。
此信息清参考 WinCC 在线帮助下的 "WinCC Information System > Working with WinCC > Documentation of Configuration and Runtime Data > Runtime Documentation > Reporting Messages in Runtime > Outputting Runtime Data with the Message Sequence Report" 和 "WinCC ODK (Open Development Kit)". 的文档,关于ODK 的信息请参见条目:9652128.n
声明:
BOOL MSRTPrintMProt (DWORD* pdwLines, LPCMN_ERROR lpError);n
参数/返回值:
参数 | 数据类型 | 描述 |
pdwLines | DWORD* | 使用参数 "pdwLines" 向函数传递指向DWORD 型变量的指针, 函数将要打印的行数写到该地址。 |
lpError | LPCMN_ERROR | 使用参数 "lpError" 向函数传递指向CMN_ERROR型变量的指针, 如果有错误或警告发生,函数将相应的错误信息写到该地址。 |
Return | BOOL | 返回 "TRUE" ,当: n
若失败,返回 "FALSE". |
下面的脚本说明了如何在鼠标点击中调用函数 "MSRTPrintMProt"。
#include "apdefap.h" void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { DWORD dwLines = 0; CMN_ERROR scError; BOOL bOK; printf ("rn#Info001: MSRTPrintMProt() ==> ... is working!rn"); bOK = MSRTPrintMProt( &dwLines, &scError ); printf ("#Info002: MSRTPrintMProt() ==> bOK=%d dwLines=%d scError="%s"rn", bOK, dwLines, scError.szErrorText ); } |
注意:
此脚本必须在消息顺序报表所在的WinCC计算机上执行。n
调用时,"MSRTPrintMProt"函数会确定要被打印的消息的数目。如果在打印作业中至少有一条消息存在且未被成功输出,那么消息顺序报表将形成图形文件,传送到打印机。
函数在参数"pdwLines"中返回被打印的消息数。如果函数 "MSRTPrintMProt" 确定没有新的消息要打印,那么没有消息报表产生并输出,这种情况下,参数"pdwLines"的返回值为 "0"。
仅当先前触发的打印任务完成后,函数 "MSRTPrintMProt" 才能触发打印新的消息顺序报表。如果先前触发的打印任务还未完成,而再次调用 "MSRTPrintMProt" ,函数会在参数 "pdwLines" 中返回一个大于 "0"的值 。但是在这种情况下,不会创建和打印新页。
"MSRTPrintMProt" 函数需要更多的运算时间来准备新的一页消息顺序报表。 其他的动作 (比如:循环 C 动作或使用脚本切换画面) 因此可能会延迟被处理。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc338059.html