Skip to main content

Dialog in einer Visualisierung aufrufen

Sie können für eine Visualisierung eine Benutzereingabe konfigurieren, die bewirkt, dass sich eine Visualisierung als Dialog öffnet. Beispielsweise klickt ein Benutzer auf eine Schaltfläche, woraufhin sich ein Dialog öffnet und zur Eingabe von Werten auffordert. Ein Dialog wird verwendet, um Eingaben vom Benutzer einzuholen und kann, wenn er modal ist, dazu führen, dass Eingaben außerhalb des Dialogs geblockt werden.

Nur Visualisierungen, die den Visualisierungstyp Dialog haben, können als Dialog geöffnet werden. Sie konfigurieren den Visualisierungstyp im Dialog Eigenschaften eines Visualisierungsobjekts.

Prozedur. Prinzipielle Vorgehensweise:

Voraussetzung: Im Projekt sind eine Hauptvisualisierung und ein Dialog vorhanden.

  1. Konfigurieren Sie eine Benutzereingabe für die Hauptvisualisierung mit der Aktion OpenDialog für den Dialog.

    Das Öffnen des Dialogs ist konfiguriert.

  2. Konfigurieren Sie eine Benutzereingabe für ein Element des Dialogs mit der Aktion CloseDialog.

    Tipp: Bei nicht modalen Dialogen können Sie die Benutzereingabe für das Schließen auch außerhalb des Dialogs konfigurieren.

    Das Schließen des Dialogs ist konfiguriert.

Tipp

Anstelle von selbst erstellten Dialogen können Sie auch Dialoge aus Bibliotheken verwenden. Wenn beispielsweise die Bibliothek VisuDialogs im Projekt eingebunden ist, können Sie die darin enthaltenen Dialoge VisuDialogs.Login oder VisuDialogs.FileOpenSave verwenden.

  1. Wählen Sie in der Ansicht Geräte das Objekt aus, öffnen Sie das Kontextmenü und wählen Sie den Befehl Eigenschaften aus.

  2. Wählen Sie die Registerkarte Visualisierung aus.

  3. Aktivieren Sie die Option Dialog und beenden Sie den Dialog mit OK.

    Die Visualisierung hat den Visualisierungstypen Dialog und kann als solcher aufgerufen werden.

Bei Dialogaufrufen klickt üblicherweise ein Benutzer auf eine Schaltfläche, woraufhin sich ein Dialog öffnet und zur Eingabe auffordert.

Im folgenden Beispiel ermöglicht ein Dialog, der einen Kalender darstellt, die Eingabe eines Datums.

Voraussetzung: Das Projekt enthält die Visualisierungen visMain und dlgCalender.

  1. Stellen Sie den Visualisierungstypen von dlgCalender auf Dialog.

  2. Ziehen Sie ein Rechteck in die Visualisierung visMain.

  3. Konfigurieren Sie die Eigenschaft Texte → Text mit dem Text Due Date: %t[yyyy-MM-dd].

    Konfigurieren Sie die Eigenschaft Textvariablen → Textvariable mit PLC_PRG.dateDue.

  4. Ziehen Sie eine Schaltfläche in die Visualisierung.

  5. Konfigurieren Sie die Eigenschaft Texte → Text mit dem Text Open dialog.

    Konfigurieren Sie die Eigenschaft Eingabekonfiguration → OnMouseClick für die Aktion Dialog öffnen mit dlgCalender.

    Die Benutzereingabe für das Öffnen des Dialogs ist konfiguriert.

  6. Doppelklicken Sie auf den Dialog dlgCalender.

  7. Ziehen Sie ein Element Datumsauswahl in den Visualisierungseditor.

  8. Konfigurieren Sie die Eigenschaft Texte → Text mit Due Date: %t[yyyy-MM-dd].

    Konfigurieren Sie die Eigenschaft Variable mit PLC_PRG.dateCalender.

    Das Element ist konfiguriert.

  9. Ziehen Sie eine Schaltfläche in den Visualisierungseditor.

  10. Konfigurieren Sie die Eigenschaft Texte → Text mit OK.

  11. Konfigurieren Sie die Eigenschaft Eingabekonfiguration → OnMouseClick für die Aktion Dialog schließen mit dlgCalender, Result: OK.

  12. Konfigurieren Sie eine weitere Eigenschaft Eingabekonfiguration → OnMouseClick für die Aktion ST-Code ausführen mit PLC_PRG.dateDue := PLC_PRG.dateCalendar;.

    Die Benutzereingabe für das Schließen des Dialogs ist konfiguriert.

  13. Ziehen Sie eine weitere Schaltfläche in den Visualisierungseditor.

  14. Konfigurieren Sie die Eigenschaft Texte → Text mit Cancel.

  15. Konfigurieren Sie die Eigenschaft Eingabekonfiguration → OnMouseClick für die Aktion Dialog schließen mit dlgCalender, Result: Cancel.

    Die Benutzereingabe für das Abbrechen des Dialogs ist konfiguriert.

  16. Übersetzen, laden und starten Sie die Applikation.

    _visu_img_dlg_calendar.png

Variablendeklaration:

PROGRAM PLC_PRG
VAR
    dateDue : DATE := DATE#2000-01-01;
    dateCalendar : DATE;
END_VAR                    

Sie können einen Dialog mittels Applikationscode öffnen oder einen Dialog applikativ öffnen. Verwenden Sie dabei für einen einfachen Zugriff die Schnittstellen der Bibliothek Visu Utils. Wenn Sie Visu Utils im Bibliotheksverwalter öffnen, können Sie die Bibliothek nach ihrem Inhalt durchsuchen und auf die Bibliotheksdokumentation zugreifen.

Mit den Funktionsbausteinen FbOpenDialog, FbOpenDialogExtended und FbCloseDialog der Bibliothek Visu Utils können Sie Dialoge öffnen und schließen. Soll ein Dialog global geöffnet oder geschlossen werden, so muss der Parameter itfClientFilter := VU.Globals.AllClients beim Aufruf des Bausteins gesetzt sein. Dann erscheint oder verschwindet der Dialog gleichzeitig auf allen Darstellungsvarianten, die unter dem Visualisierungsmanager konfiguriert sind.

Tipp

Bis CODESYS V3.5 SP10 konnten Sie einen programmatischen Zugriff auf Dialoge nur mit Hilfe der Funktionalität des internen Dialogmanagers implementieren. Ab V3.5 SP11 steht Ihnen dafür die Bibliothek Visu Utils zur Verfügung.

In diesem Beispielprojekt wird über die Schnittstellen der Bibliothek „Visu Utils” programmatisch auf Dialoge zugegriffen. Sie können dort nachvollziehen, wie das Öffnen eines Dialogs oder die Übergabe von Parametern an einen Dialog implementiert ist.