142.Wincc V7.3使用c脚本将sql server数据表内容显示在ListView控件中
标签:
winccv7.3c脚本treeview装入sql数据 |
分类: 西门子软硬件 |
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
#pragma code("kernel32.dll")
#define GetObject GetObject
int i,RsCount;
__object *pdl=NULL;
__object *pic=NULL;
__object *tv=NULL;
__object *NodeIndex;
__object *cn=NULL;
__object *rs=NULL;
char
sql[256],Relative[10],key[10],txtDate[10];//flow1[20],flow2[20],flow3[20];
char *connstr="Provider=SQLOLEDB.1;password=sa;user id =sa;Initial
Catalog=Report;Data Source=.\\WINCC";
pdl = __object_create("PDLRuntime");
pic=pdl->GetPicture("");
tv=pic->GetObject("TV");
cn=__object_create("ADODB.Connection");
rs=__object_create("ADODB.RecordSet");
sprintf(sql,"%s","select
CurDate,Convert(varchar(10),flow1),Convert(varchar(10),flow2),Convert(varchar(10),flow3)
from report" );
cn->open(connstr);
if (cn->State == 0)// 为0表示连接数据库不成功
else
{
rs->Open(sql,cn,3,1);
RsCount=rs->RecordCount;
rs->MoveFirst();
tv->Nodes->Clear(); //先清空
tv->Style=6; //6.直线、+/-和文本;
tv->LineStyle =1;
//treeview填入数据
//第一级节点
NodeIndex=tv->Nodes->Add();;
NodeIndex->key="Class0";
NodeIndex->Text="Report数据表";
//填入第二季节点-“日期时间”
for(i=1;i<=RsCount;i++)
{
}
//填入第三级节点flow1,flow2,flow3
rs->MoveFirst();
for(i=1;i<=RsCount;i++)
{
}
for (i=1;i<=tv->nodes->count;i++)
}
if(cn->State != 0)
__object_delete(tv);
__object_delete(pic);
__object_delete(pdl);
}
保存运行之后,可以得到下面的效果:

加载中…