In diesem Beitrag möchte ich zeigen, wie man eine Meldungsanzeige in IPSView realisieren kann.

Folgende Objekte werden in IP-Symcon benötigt:

  • String Variable – enthält die eigentliche Message
  • Boolean Variable – Statusanzeige “neue Meldung vorhanden”
  • String Variable – Remote Steuerung des aktuellen Popups
  • Skript für den Reset der Meldungen
  • Skript(e) für das Setzen bzw. Hinzufügen von Meldungen

 

Messaging_IP-Symcon_Objects

Mit folgenden Skript kann man eine Meldung hinzufügen:

<?
	// Neue Nachricht an die bestehenden Nachrichten anhngen
	SetValue(25122, GetValue(25122 ).PHP_EOL.PHP_EOL.'Meine neue Nachricht ...');
	
	// Set MessageStatus auf true setzen um das Vorhandensein einer neuen Nachricht anzuzeigen
	SetValue(56867, true);
	
	// Popup für Meldungen am Client einblenden
	SetValue(34795, 'MessagePopup');
?>

Erste Zeile fügt eine neue Meldung zu den bestehenden Meldungen in der MessageText Variable hinzu. Die zweite Zeile setzt die Statusvariable auf true, um am Client ein Icon anzuzeigen. Die dritte Zeile setzt das Popup das am Client angezeigt werden soll.

Um die Meldungen wieder zu löschen, führt man das Reset Skript aus.

 

<?
	// Meldungen löschen
	SetValue(25122, '');

	// Reset  MessageStatus 
	SetValue(56867, false);

	// Popup rücksetzen
	SetValue(34795, '');
?>

 

Integration in IPSView:

Als erstes setzt man die Variable RemotePopup um eine Synchronisierung des aktiven Popups zu ermöglichen. Diese Eigenschaft findet man wenn man die Seite im Zeichenfenster selektiert (Property „Aktives Popup“, Experteneinstellungen müssen aktiviert sein):

 

Messaging_Designer_RemotePopup

Nun erstellt man ein neues Popup Fenster und benennt es „MessagePopup“. Danach platziert man eine TextBox von der Variable MessageText und einen Button, der auf das Skript „ClearMessages“ verlinkt ist.

Alternativ kann man auch eine HTMLBox für die Meldungen verwenden, in diesem Fall kann man bei den Meldungen auch HTML Elemente verwenden.

 

Messaging_Designer_Popup

Die eigentlich Anzeige des Meldungsfensters realisiert man jetzt in dem Teil der View, wo das Popup angezeigt werden soll. In meinem Fall ist es die Header Inlinepage meiner View. Hier positioniert man als erstes ein ToggleImage von der Variable „MessageStatus“. Für „Bild Aus“ wählt man ein transparentes Image und für „Bild Ein“ ein Bild das neue Meldungen signalisieren soll.

 

Messaging_Designer_HeaderImage

Darüber legt man nun ein DetailImage und wählt als Popupseite die oben erzeugte Seite „MessagePopup“. Als Image nimmt man hier ebenfalls ein transparentes Image.

 

Messaging_Designer_HeaderDetail

Wenn man jetzt das Skript zum Setzen einer Message ausführt, erscheint das Image in der Titelleiste der View und das Popup wird automatisch angezeigt. Beim Betätigen des Buttons „Meldungen löschen“, werden die Meldungen gelöscht, das Popup geschlossen und auch das Image wieder ausgeblendet.

Messaging_Client_MessagePopup