搬家第14天-135.Wincc V7.3 c脚本 listview控件填入数据
以前的博客记录过使用vbs往listview填入常数,现在练习使用c脚本实现同样的功能,最终形成这样一个效果。
在画面上放入一个listview控件,名字修改为LV,放一个按钮,按钮的鼠标点击事件中添加以下c脚本:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#pragma code("kernel32.dll")
#define GetObject GetObject
int i;
__object *pdl=NULL;
__object *pic=NULL;
__object *obj=NULL;
__object *ListItem=NULL;
__object *ListSubItem=NULL;
pdl = __object_create("PDLRuntime");
pic=pdl->GetPicture("");
obj=pic->GetObject("LV");
obj->View =3; //设置外观为报表形式
obj->GridLines =TRUE; //显示网格线
obj->labeledit=TRUE;
obj->checkboxes=TRUE;
obj->AllowColumnReorder =TRUE;
obj->ColumnHeaders->Clear(); //清除原有表头
//表头制作
for(i=0;i<=4;i++)
obj->ColumnHeaders->Add();
obj->ColumnHeaders->item(1)->width=20;
obj->ColumnHeaders->item(2)->text="第一列";
obj->ColumnHeaders->item(2)->width=80;
obj->ColumnHeaders->item(3)->text="第二列";
obj->ColumnHeaders->item(3)->width=120;
obj->ColumnHeaders->item(4)->text="第三列";
obj->ColumnHeaders->item(4)->width=150;
obj->ColumnHeaders->item(5)->text="第四列";
obj->ColumnHeaders->item(5)->width=180;
//表格填入数据
obj->listitems->Clear(); //清除原有数据
//第一行数据
ListItem=obj->ListItems->add();
//第一行第一列
ListSubItem=ListItem->ListSubItems->add();
ListSubItem->text="第一行第一列";
//第一行第二列
ListSubItem=ListItem->ListSubItems->add();
ListSubItem->text="第一行第二列";
//第一行第三列
ListSubItem=ListItem->ListSubItems->add();
ListSubItem->text="第一行第三列";
//第一行第四列
ListSubItem=ListItem->ListSubItems->add();
ListSubItem->text="第一行第四列";
//第二行数据
ListItem=obj->ListItems->add();
//第二行第一列
ListSubItem=ListItem->ListSubItems->add();
ListSubItem->text="第二行第一列";
//第二行第二列
ListSubItem=ListItem->ListSubItems->add();
ListSubItem->text="第二行第二列";
//第二行第三列
ListSubItem=ListItem->ListSubItems->add();
ListSubItem->text="第二行第三列";
//第二行第四列
ListSubItem=ListItem->ListSubItems->add();
ListSubItem->text="第二行第四列";
__object_delete(obj);
__object_delete(pic);
__object_delete(pdl);
}