SOG-Helpcenter Logo SOG Business - Software

Implementierung von SOG Ereignissen


 

Beschreibung


Objekte in Objektbibliotheken sollten in der Lage sein, auf Ereignisse zu reagieren.

Um mögliche Ereignisse auf automatischem Wege aus Objektklassen extrahieren zu können, implementiert die SOG C# Bibliothek eigene Ereignissmethoden, die in Namen und Parametern den hier beschriebenen Vorgaben folgen müssen. Solche Ereignisse können dann automatisch z.B. in Context-Menüs zu dem entsprechenden Objekt angezeigt werden.

Implementierung



    public void SOGEventHandler_IhrName(object sender, SOGFireEventArgs feargs)
    {
        // Ihr Code
        return null;
    }

Über "sender" wird der Eventfunktion der Auslöser des Events mitgegeben. Über "feargs" werden evt. weitere benötigte Parameter übergeben.

Alle Eventnamen müssen mit "SOGEventHandler_" beginnen. Danach kann der Name Ihres zu implementierenden Events folgen. Über die Eigenschaft "Changed" der vom Aufrufer übergebene Variable "SOGFireEventArgs" kann das Objekt dem Aufrufer mitteilen, ob es sich selbst verändert hat. In diesem Fall kann der Aufrufer dafür sorgen, dass das Objekt in der Visualisierung aktualisiert wird.

Das SOGFireEventArgs Objekt enthält eine Eigenschaft "Redirect" vom Typ "SOGRedirect". Hier kann entweder "null" zurückgegeben werden, oder aber, für den Fall das ein neuer Dialogschritt initiiert werden soll, ein Objekt der SOGRedirect-Klasse angelegt werden.

    public void SOGEventHandler_Bearbeiten(object sender, SOGFireEventArgs feargs)
    {
        feargs.Redirect = new SOGRedirect( "BearbeitenKunde", m_sa, m_kdnr );
    }

In diesem Beispiel wird durch Auslösen des Events "Bearbeiten" zu dem Dialogschritt "BearbeitenKunde" mit den benötigten Parametern verzweigt.
Der Anzeigetext ergibt sich durch das Attribut "InputPrompt".

Festlegung der Verfügbarkeit von Events


Neben der eigentlichen Event-Funktionalität ist es häufig notwendig zu entscheiden, ob ein Event möglich ist, oder nicht, damit eine Anwendung eine Bildschirmausgabe entsprechend aufbereiten kann. So können z.B. Ereignisse in Kontextmenüs "gegrayed" , also als "zur Zeit nicht verfügbar" markiert werden, oder sie können "gecheckt", also angekreuzt dargestellt werden, um zu visualisieren, dass die entsprechende Funktion zur Zeit aktiviert ist.

Zu den Ereignissen, die ihre Darstellung derartig beeinflussen möchten, können Sie neben dem "SOGEventHandler" eine Method "SOGEventState" implementieren, die den Status des Ereignisses entsprechend setzen muss.

    public void SOGEventState_ShowLgpLfnrTxt( object sender, SOGMaskState State )
    {
        if ( m_lfnr==0 )
            State.Enabled=false;
    }

Die Funktion sorgt dafür, dass das Ereignis "disabled", also "unerreichbar", geschaltet wird, wenn das Datenfeld "m_lfnr" den Inhalt "0" hat.

Über den Ereignisstatus können Sie Designklassen setzen (CssClass), Ereignisse "disablen" (Enabled), Ereignisse unsichtbar schalten (Visible), eine Checkmark setzen (Checked) sowie ein Icon bestimmen, dass im Zusammenhang mit dem Ereignis angezeigt werden soll (Icon). Nicht jede Visualisierung unterstützt jedoch jede Anzeigevariante.

Gibt es keine "SOGEventState" Methode zu einem Ereignis, ist dieses immer verfügbar.

Achtung: Die SOGEventState-Methoden werden immer dann aufgerufen, wenn Ereignisse in Form von Schaltflächen oder Menüeinträgen visualisiert werden sollen. Dies kann also recht häufig der Fall sein. Sie sollten entsprechend effizient programmiert sein.