搬家第三天-83.Wincc V7.3 用户归档深入使用2-c列的显示和隐藏
前面的博客介绍了VBS脚本来显示和隐藏用户归档列,如果对vbs不熟悉,还可以使用c脚本实现同样的功能。
1. 页面打开的事件中写入以下c脚本
#include "apdefap.h"
void OnOpenPicture(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
SetPropDouble(lpszPictureName,"checkbox","Process",15);
}
2. 复选框控件checkbox的“事件-属性主题-输出输入-选择框-更改”事件写入以下c脚本:
#include "apdefap.h"
void OnPropertyChanged(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, long value)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
double pows,process;
int i;
//double process,result;
process=GetPropDouble(lpszPictureName,"checkbox","Process");
for(i=0;i<=3;i++)
{pows=pow(2,i);
SetPropDouble(lpszPictureName,"UA","ColumnIndex",i);
if((DWORD)process&(DWORD)pows) SetPropBOOL(lpszPictureName,"UA","ColumnVisible",TRUE);
else SetPropBOOL(lpszPictureName,"UA","ColumnVisible",FALSE);
}
}
保存运行就可以看到效果了。