Sonstiges Wincc V8.0 Textliste dynamisch füllen

MaikH

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich beschäftige mich gerade mit dem Wincc V8.0 und bin etwas am verzweifeln.
Ich habe folgendes Problem:
- ich habe eine Textliste erstellt und mit statischen Texten versehen (Funktioniert einwandfrei)
- nun möchte ich die Textliste gerne dynamisch (durch eine Textvariable) ersetzen .
Gibt es eine Möglichkeit wie man das realisieren kann?

Danke schon einmal
Maik
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich befülle in WinCC V7.4 ein Kombinationslistenfeld, dynamisch von einer externen SQL Datenbank.

C:
#include "apdefap.h"
void OnOpenPicture(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{




#define GetObject GetObject
__object *pdl=NULL;
__object *pic=NULL;
__object *obj=NULL;

int iRecordCount;
long Charge;
BOOL bintern;
extern __object *gcn, *grsDaten;
char strSQLStatement[900];
char sType[50];
char sNummer[150];
int n=0;
bintern = TRUE;


pdl = __object_create("PDLRuntime");
pic=pdl->GetPicture(lpszPictureName);

obj=pic->GetObject("Kombinationsfeld1");


obj->NumberLines=0;



    if (gcn->State==0)
    {
    printf("Connection Failed.  Reconnecting\r\n");

    if (ConnectToDB () == 0)
    bintern=TRUE;
    else
    bintern=FALSE;
    
      return;
    }   

printf (gcn->State);


    
    if (bintern)
    {
    grsDaten = __object_create("ADODB.RecordSet");
        
    // runs a SELECT statement against the connection object to populate the recordset object
    // there are several ways to do this and I have chosen this one because it allows me to define a dynamic recordset
    // which means that I can navigate through the results and also return the record count.
    sprintf(strSQLStatement, "SELECT Mischernummer,Bezeichnung FROM Mischungen ORDER BY Mischernummer");
     grsDaten->CursorLocation = 3;
    grsDaten->Open(strSQLStatement, gcn,1,3);
            
    // outputs how many rows were returned from the above query
        iRecordCount = grsDaten->RecordCount();
                  //  printf("Mischungen: iRecordCount: %d \r\n", iRecordCount);

n = 0;
//Cycle through recordset and add item to combobox.
while (!grsDaten->eof)
{
n++;
strcpy(sNummer,(char *)grsDaten->Fields(0));
strcpy(sType,(char *)grsDaten->Fields(1));


strcat(sNummer," ");

// Index selektieren
obj->NumberLines=n;
obj->AddItem(n,strcat(sNummer,sType));


 


grsDaten->Movenext;
}


    grsDaten->Close;
__object_delete(grsDaten);
    }

__object_delete(obj);
__object_delete(pic);
__object_delete(pdl);



}
 
Danke für die schnellen Antworten, werde es morgen mal versuchen.
Hoffe das es mit den Script funktioniert, da ich Web ux nutzen möchte und nicht Webnavigator.
 
Moin, habe es so wie oben beschrieben leider nicht hinbekommen.
Aber so funktioniert es auch.
Danke für eure Hilfe
MaikH
 

Anhänge

  • Dropdown.PNG
    Dropdown.PNG
    19,6 KB · Aufrufe: 28
Zurück
Oben