WinCC Flex // Realtime Auswahlfenster

hoT

Level-1
Beiträge
109
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich habe eine Liste mit Namen.Diese müssen mit einem aufklappbaren Fenster angezeigt werden.
Je nach Eingabe der ersten Buchstaben sollen die Namen eingegrenzt werden und somit die
Auswahlliste in Echtzeit verkleinert werden. Wie im Browser von der Art her.

Nun meine Frage wie mach ich das?

Es gibt zwar Textlisten jedoch sind diese fest d.h. keine Eingrenzung in Realtime möglich...

Würde mich über Eure Hilfe freuen! :TOOL:

6rntgd1h.jpg
 
Hallo,
ich weiß jetzt gerade nicht, ob dir das weiterhilft ... aber :
Etwas Ähnliches habe ich mal mit ProTool erstellt.
Meine Vorgehensweise da war :
Ich hatte eine Anzahl Strings definiert, deren Inhalt ich auf dem Auswahlbildschirm angezeigt habe. Weiterhin gab es ein Eingabefeld. Auf dieses Eingabefeld war ein Script "bei Wertänderung" verknüpt, dass nach der Eingabe passende Inhalte aus der Vorgabeliste gesucht hat und diese dann angezeigt hat. War ich mit der Anzeige einverstanden, so war jedes Anzeigefeld auch eine Taste, dass dann die Auswahl übernommen hat.
Das sollte es in etwa sein.
Machbar wäre das gleiche m.E. auf mit Flex - allerdings nur in der PC-Runtime ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider kann man von Skripten aus nicht auf Textlisten in den Bildern schreibend zugreifen. Gabs im Siemens Support Forum schonmal eine Anfrage,

Aber ab WinCCflexible 2008 kann man Textlisten mit Strings aus Variablen dynamisch befüllen.
Damit kann man einen Filtermechanismus folgendermaßen realisieren:

1) Mal legt eine Textliste an in der alle Texte stehen (z.B. "txtListData")

2) Man legt so viele interne Variablen vom Typ String an, wie man Einträge in der Textliste maximal hat. Damit man in Schleifen auf den Variablennamen zugreifen kann, nennt man sie z.B. txtListString_1, txtListString_2, usf.

3) Eine weitere Textliste anlegen ("txtListFiltered") in der nachher die gefilterten Einträge angezeigt werden. In den Textlisteneinträgen werden die internen Strings mit <tag txtListString_1> usw. eingetragen.

4) In einem Bild ein Eingabefeld für den Filterstring mit einer internen Variable "strFilterString" verknüpfen.

5) Folgendes Skript "filterStrings" anlegen:
Code:
Dim i, j, pos
Dim strSearch, strEntry
Dim MAXTEXTLIST     

MAXTEXTLIST = 10    ' Anzahl der Einträge

' Filterstring aus Eingabefeld
strSearch = SmartTags("strFilterString")

j = 0
For i = 0 To MAXTEXTLIST
    ' Text aus Gesamtliste einlesen
    LookupText strEntry, i, "de-DE", "txtListData"
    ' Textvergleich durchführen, bei erstem Zeichen beginnen
    pos = InStr(1, strEntry, strSearch, 1)
    If (pos = 1) Then
        ' In "Gefunden" Liste eintragen
        SmartTags("txtListString_" & j + 1) = strEntry
        j = j + 1
    End If    
Next

' restliche Einträge leeren
For i = j To MAXTEXTLIST
    SmartTags("txtListString_" & i + 1) = ""
Next
6) Symbolisches Auswahlfeld mit der Textliste "txtListFiltered" verknüpfen.

7) Im Ereignis des Eingabefeldes das Skript "filterStrings" aufrufen.
 
Zurück
Oben