搬家第三天-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);  
}
}

保存运行就可以看到效果了。

posted @ 2021-01-31 16:14  来自金沙江的小鱼  阅读(470)  评论(0编辑  收藏  举报