WinCC --> User Archiv --> C-Script --> ua-Befehl --> für markierte Zeile auslesen

CanYouHelpMe

Level-1
Beiträge
30
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
WinCC --> User Archiv --> C-Script --> ua-Befehl --> für markierte Zeile auslesen

Hallo Leute,

mit welchem ua-Befehl bekomme ich raus welche Zeile markiert ist? Ich möchte nämlich die Daten der Zeile welche markiert ist auslesen. Bei dem Beispiel welches ich unter der Hilfe gefunden habe, wählt das Script automatisch den ersten Datensatz aus. Doch das ist nicht immer erwünscht.
Hier ist das Script aus der Hilfe:



////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
//void UAReadFromArchive()

{

UAHCONNECT hConnect = 0;

UAHARCHIVE hArchive = 0;

LONG IndexArchive;

LONG FieldLength;

LONG FieldType;

LONG NumberOfFields;

LONG Index;

long IntValue;

double DoubleValue;

char ArchivName[255], StringField[255];

SYSTEMTIME SysDate;


//******* Connect to Component User Archives ****************************

if (uaConnect( &hConnect ) == FALSE )

{

printf("uaConnect error: %d\r\n", uaGetLastError() );

return;

}

if (hConnect == NULL)

{

printf("Handle UAHCONNECT equals 0\r\n" );

return;

}


//******* Connect to Archive via Archive Name ****************************

if (uaQueryArchiveByName( hConnect, "Batch_Lieferanten", &hArchive ) == FALSE )

{

printf("uaQueryArchive Error: %d\r\n" , uaGetLastError() );

goto finish;

}



//******* Opens Archive ******************************************************

if ( uaArchiveOpen( hArchive ) == FALSE )

{

printf("uaArchive Open Error\r\n" );

goto finish;

}


//******* Move to first record set ****************************************************

if (uaArchiveMoveFirst(hArchive) == FALSE )

{

printf("uaArchiveMoveFirst Error = %u\r\n" );

goto finish;

}

//******* Get Number of Fields **********************************************

NumberOfFields = uaArchiveGetFields( hArchive );

printf("Number of Fields = %u\r\n", NumberOfFields );


//******* Read and show Data Fields ****************************************

for ( Index = 1; Index < NumberOfFields; Index++ )

{

printf("Data of Field %u: \r\n", Index );

FieldType = uaArchiveGetFieldType( hArchive, Index );

switch ( FieldType )

{

case UA_FIELDTYPE_INTEGER :

printf("Field Type = Integer\r\n");

if (uaArchiveGetFieldValueLong ( hArchive, Index, &IntValue ) == TRUE )

printf("Field Value = %u\r\n", IntValue );

else

printf("Error callinguaArchiveGetFieldValueLong: %d\r\n", uaGetLastError() );


break;


case UA_FIELDTYPE_DOUBLE :

printf("Field Type = Double\r\n");

if (uaArchiveGetFieldValueDouble (

hArchive, Index, &DoubleValue ) == TRUE )
 
Zurück
Oben