TriggerFormLayer

EwaArtikelFormenBerechnung

Beschreibung: folgt bald

Beispiel: folgt bald

EwaBarcodeEngine

Beschreibung: folgt bald

Beispiel: folgt bald

EwaBarcodeEngineStart

Das neue Ereignis 'EwaBarcodeEngineStart' wird nach dem Einscannen von einem oder mehreren miteinander verbundenen Barcode-Aktionen und vor deren Standardverarbeitung ausgelöst. Jede Barcode-Aktion besteht aus einem zweistelligen Kennzeichen und beliebig vielen Werten. Für kundenspezifische Entwicklungen sind alle zweistelligen Kennungen beginnend mit X oder Y reserviert. Ein Beispiel für ein kundenspezifisches Szenario wäre ein eigener Barcode, der Werkzeuge einbucht. Dazu würden ein Steuerbarcode sowie vier Werte für Anwender, Arbeitsgang, Maschine und Werkzeug eingescannt, z.B. "$XWmüller%1234%456%789/", um einzubuchen, dass der Anwender Müller für die Bearbeitung des angegebenen Arbeitsgangs '1234' das Werkzeug '456' in Maschine '789' eingespannt hat.

Mittels 'AktionAusführen = False' kann die Barcode-Verarbeitung des Standards unterbunden werden.

Mit dem neuen Ereignis können folgende Szenarien abgebildet werden:

  • Individuellen Code für eigenen Barcode ausführen, Standardausführung für diese Aktion ausschalten
  • Mittels Plausibilitäten Barcodes und Werte checken und ggf. Standardausführung unterbinden
  • Barcode-Aktionen bzw. deren Werte vor der Standardausführung verändern, löschen oder hinzufügen
  • Programmierungen erstellen, welche ausgeführt werden, bevor danach die Standardausführung erfolgt

Mittels der Prozedur 'EasyBdeForm.MeldungSetzen()' können eigene Meldungen im Meldungsbereich des easyBde-Fensters eingeblendet werden, um den Anwender über Status der Bearbeitung seiner Barcode-Aktion zu informieren.


VB.NET SDK-Programmcode

  

        Private Sub TriggerFormLayer_EwaBarcodeEngineStart(EasyBdeForm As EasyBdeFRM, e As BarcodeEngineEventArgs) Handles Me.EwaBarcodeEngineStart 

            If e.BarcodeAktionOBJ.Kennung = "XW" Then 

                Dim anwender As String = e.BarcodeAktionOBJ.Wert1 

                Dim arbeitsgang As String = e.BarcodeAktionOBJ.Wert2 

                Dim werkzeug As String = e.BarcodeAktionOBJ.WerteListe(2) 

                Dim maschine As String = e.BarcodeAktionOBJ.WerteListe(3) 

                If AFkt.WerkzeugBuchen(anwender, arbeitsgang, werkzeug, maschine) Then 

                    EasyBdeForm.MeldungSetzen(0, werkzeug & " wurde vom Anwender " & anwender & " auf Maschine " & maschine & " in " & arbeitsgang & "gebucht.") 

                Else 

                    EasyBdeForm.MeldungSetzen(0, "FEHLER: Bitte scannen Sie gültige Werte für Anwender, Arbeitsgang, Werkzeug und Maschine ein.") 

                End If 

                e.Ausführen = False 

            End If 

        End Sub 

EwaBelegAktion

Das Ereignis 'EwaBelegAktion' wird verwendet, um auf bestimmte Aktionen in der Beleg-Bearbeitung reagieren und diese eventuell auch abfangen zu können. Zur Zeit steht folgende Aktion zu Verfügung:

  • BelegAktionTyp.ManuellErledigt
  • BelegAktionTyp.ManuellGesperrt

Somit kann der eigene Code schon direkt beim Betätigen des Toolbar-Buttons ausgeführt werden (also noch vor der Meldung von easyWinArt usw.), unmittelbar vor der Durchführung der Aktion oder nachdem die Aktion durchgeführt wurde. Weiterhin lässt sich der eigene Code auch nur auf eine bestimmte Aktion, z.B. das manuelle Erledigen einer Rechnung, einschränken.

In unterem Beispiel ist dargestellt, wie sich das Manuelle Erledigen für Rechnungen verhindern lässt.


VB.NET SDK-Programmcode

  

#Region " TriggerFormLayer_EwaBelegAktion-Ereignis " 

        Private Sub TriggerFormLayer_EwaBelegAktion(sender As Object, e As BelegAktionEventArgs, ByRef AktionAusführen As Boolean) Handles Me.EwaBelegAktion 

                If e.VorgangForm.BelegTypGUID = BT.VkRechnung AndAlso e.TypBelegAktion = BelegAktionTyp.ManuellErledigt AndAlso

                   e.Zeitpunkt = BelegAktionZeitpunkt.BelegAktionStart Then 

                    Fkt.Meldung("Manuelles Erledigen ist für Verkaufs-Rechunngen nicht zugelassen."

                    AktionAusführen = False 

                End If 

        End Sub 

#End Region

EwaFibuBuchungsExport

Dieser Trigger wird nach einer erfolgreichen Fibu-Ausgabe, d.h. nach dem Export der finanzbuchhaltungsrelevanten Daten im Format 'Datev-Format', 'DATEV-KNE' oder 'Syska-Euro-Fibu' ausgelöst. Im EventArg 'FibuBuchungsExportEventArgs' werden das Hauptfenster sowie das Format-Objekt (DatevFormat, DatevKNE, Syska) übergeben. Im Format-Objekt stehen folgende Eigenschaften zur Verfügung: ExportPfad, VonDatum, BisDatum, FibuAusgabeNummer, ErzeugteDateien (Liste)


VB.NET SDK-Programmcode

  

#Region " TriggerFormLayer_EwaFibuBuchungsExport-Ereignis " 

    Private Sub TriggerFormLayer_EwaFibuBuchungsExport(ByVal sender As Object, ByVal e As FibuBuchungsExportEventArgs) Handles Me.EwaFibuBuchungsExport

        '>>> Prüfen, ob das FibuFormat wie erwartet DatevKNE ist 

        If TypeOf e.FibuAusgabeFormat Is DatevKNE Then 

            Dim DatevKneOBJ As DatevKNE = CType(e.FibuAusgabeFormat, DatevKNE) 

            '>>> Erste erzeugte Datei ausgeben 

            Fkt.Meldung(DatevKneOBJ.ErzeugteDateien(0)) 

        End If

    End Sub 

#End Region

EwaImportAdressen

Beschreibung: folgt bald

Beispiel: folgt bald

EwaImportInDrehscheibeArtikel

Beschreibung: folgt bald

Beispiel: folgt bald

EwaImportInDrehscheibeBelege

Beschreibung: folgt bald

Beispiel: folgt bald

EwaImportInDrehscheibeLagerBuchungen

Beschreibung: folgt bald

Beispiel: folgt bald

EwaNachUpdateEasyWinArt

Das Ereignis 'EwaNachUpdateEasyWinArt' wird ganz am Ende vom letzten Teil (Teil 3) des automatischen Programm-Updates ausgelöst. Sinnvoll kann es eingesetzt werden, um gewünschte Änderungen an der Datenank einzustellen, die bei jedem Update auf Default zurückgesetzt werden, wie es z.B. derzeit noch mit den Benennungen der Suchlisten-Spalten der Fall ist.

In unterem Beispiel werden zwei Spalten der Suchliste der Menüfunktion 'Adressen' umbenannt. Die Textnummer muss auf 0 gesetzt werden, damit die Texte auch tatsächlich verwendet werden, Oberflächen-Mehrsprachigkeit wird nicht benötigt. Die GUIDs der Spalten, welche umbenannt werden sollen, wurden zuvor der Tabelle 'MenueFunktionenSelect' entnommen, können aber auch direkt in der Menüfunktion 'Menü-Funktionen-Select' (über Strg+J) nachgesehen werden.


VB.NET SDK-Programmcode: Beispiel

  

#Region " TriggerFormLayer_EwaNachUpdateEasyWinArt-Ereignis " 

        Private Sub TriggerFormLayer_EwaNachUpdateEasyWinArt(ByVal ProgrammUpdateForm As ProgrammUpdateFRM, ByVal e As FormFrameworkEventArgs) Handles Me.EwaNachUpdateEasyWinArt

            Dim LieferantenNummerBeimKundenSelectGUID As Guid = New Guid("2c57b797-d282-4ea6-8fcb-2f798e665c7f") 

            Dim KundenNummerBeimLieferantSelectGUID As Guid = New Guid("28ece749-f4bd-4b5e-9e9e-a5881697c475") 

            Dim datenDatebankenDIC As Dictionary(Of String, SQLServerZugriff) = Nothing 

            Dim tmpDBZ As SQLServerZugriff 

            '>>> Struktur mit allen Datenbanken aller aktiver Update-Mandanten erstellen 

            Dim zugriffsSTR As MandantenDbStr = Datenbank.AlleMandantenSQLServerZugriffe(True) 

            '>>> Dictionary mit den Daten-Datenbanken aller aktiver Update-Mandanten erstellen 

            datenDatebankenDIC = zugriffsSTR.DatenDIC 

            '>>> Änderungen durchführen an allen Daten-Datenbanken der produktiven Update-Mandanten 

            For Each tmpDBZ In datenDatebankenDIC.Values 

                '>>> Name der Spalte LieferantenNummerBeimKunden in der Suchliste ändern in Adressen 

                tmpDBZ.LöscheFelder() 

                tmpDBZ.AddFelder(TBL.MenueFunktionenSelect.AnzeigeVC, "Fremdnummer VKT", EwaSQL.NVarChar) 

                tmpDBZ.AddFelder(TBL.MenueFunktionenSelect.AnzeigenTextNummerINT, 0, EwaSQL.Integer) 

                tmpDBZ.UpdateDatensatz(TBL.MenueFunktionenSelect.TBL, LieferantenNummerBeimKundenSelectGUID) 

                '>>> Name der Spalte KundenNummerBeimLieferant in der Suchliste ändern in Adressen 

                tmpDBZ.LöscheFelder() 

                tmpDBZ.AddFelder(TBL.MenueFunktionenSelect.AnzeigeVC, "Fremdnummer FKT", EwaSQL.NVarChar) 

                tmpDBZ.AddFelder(TBL.MenueFunktionenSelect.AnzeigenTextNummerINT, 0, EwaSQL.Integer) 

                tmpDBZ.UpdateDatensatz(TBL.MenueFunktionenSelect.TBL, KundenNummerBeimLieferantSelectGUID) 

            Next

        End Sub 

#End Region

EwaPositionenZiehen

Dieses Ereignis wird verwendet, um auf das nachträgliche Ziehen von Positionen in einen Beleg bzw. auf das nachträgliche Verknüpfen einer (unverknüpften) Position Einfluss nehmen zu können. Zur Zeit läuft das Ereignis zu drei verschiedenen Zeitpunkten ab:

  • PositionenZiehenZeitpunkt.PositionenZiehenStart
  • PositionenZiehenZeitpunkt.PositionenZiehenVorAusführung
  • PositionenZiehenZeitpunkt.PositionenZiehenNachAusführung

Damit kann Code direkt bei Betätigung des entsprechenden Buttons, nach Auswahl der Positionen und Mengen oder nach dem Erzeugen der neuen Positionen bzw. Verknüpfungen ausgelöst werden.

Beispiel 1: Hier werden im Grunde alle Möglichkeiten des Triggers mit einigen theoretischen Code-Schnipseln dargestellt.


VB.NET: EwaPositionenZiehen - Beispiel 1

  

        Private Sub TriggerFormLayer_EwaPositionenZiehen(sender As Object, e As PositionenZiehenEventArgs, ByRef AktionAusführen As Boolean) Handles Me.EwaPositionenZiehen 

            '>>> Positionen ziehen am Vorgang 

            If e.ZiehenTyp = PositionenZiehenTyp.PositionenZiehenAmVorgang Then 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenStart Then 

                    FktF.Meldung("Das Ziehen am Vorgang ist nicht gestattet.", e.Form) 

                    AktionAusführen = False 

                End If 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenVorAusführung Then 

                    If e.ZuZiehendePositionenDIC.Select(Function(x) x.Value).Sum > 10 Then 

                        FktF.Meldung("Das Ziehen am Vorgang von in der Summe mehr als 10 Stück über alle ausgewählten Positionen ist nicht gestattet.", e.Form) 

                        AktionAusführen = False 

                    End If 

                End If 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenNachAusführung Then 

                    '>>> Bei allen neu erzeugten Positionen wird die Bemerkung auf 'abc' gesetzt 

                    Dim tmpDBZ As SQLServerZugriff = Datenbank.DatenDB 

                    For Each neuePosition In e.ErzeugtePositionenDIC.Select(Function(x) x.Key) 

                        '>>> UPDATE: 

                        tmpDBZ.LöscheFelder() 

                        tmpDBZ.AddFelder(TBL.VorgangsPosition.BemerkungVC, "abc", EwaSQL.NVarChar) 

                        tmpDBZ.UpdateDatensatz(TBL.VorgangsPosition.TBL, neuePosition) 

                    Next 

                End If 

            End If 

            '>>> Positionen ziehen an der Position 

            If e.ZiehenTyp = PositionenZiehenTyp.PositionenZiehenAnDenPositionen Then 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenStart Then 

                    FktF.Meldung("Das Ziehen an den Positionen ist nicht gestattet.", e.Form) 

                    AktionAusführen = False 

                End If 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenVorAusführung Then 

                    If e.ZuZiehendePositionenDIC.ContainsKey(C.ToGuidX("83bcb926-1938-4a94-a85c-398971b19efd")) Then 

                        FktF.Meldung("Das Ziehen des Artikels mit der GUID '83bcb926-1938-4a94-a85c-398971b19efd' ist nicht gestattet.", e.Form) 

                        AktionAusführen = False 

                    End If 

                End If 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenNachAusführung Then 

                    '>>> Bei allen neu erzeugten Positionen wird die Bemerkung auf 'abc' gesetzt 

                    Dim tmpDBZ As SQLServerZugriff = Datenbank.DatenDB 

                    FktF.Meldung("Es wurden " & e.ErzeugtePositionenDIC.Count & " Positionen erzeugt.", e.Form) 

                End If 

            End If 

            '>>> Position nachträglich verknüpfen 

            If e.ZiehenTyp = PositionenZiehenTyp.PositionNachträglichVerknüpfenAnDenPositionen Then 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenStart Then 

                    FktF.Meldung("Das nachträgliche Verknüpfen ist nicht gestattet.", e.Form) 

                    AktionAusführen = False 

                End If 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenVorAusführung Then 

                    FktF.Meldung("Hinweis A.", e.Form) 

                End If 

                If e.Zeitpunkt = PositionenZiehenZeitpunkt.PositionenZiehenNachAusführung Then 

                    FktF.Meldung("Hinweis B.", e.Form) 

                End If 

            End If 

        End Sub

EwaProgrammstartMenueFunktionen

Beschreibung: folgt bald

Beispiel: folgt bald

EwaProgrammstartMenueFunktionenLinks

Beschreibung: folgt bald

Beispiel: folgt bald

EwaProgrammstartMenueFunktionenSelect

Beschreibung: folgt bald

Beispiel: folgt bald

EwaSchedulerTaskAuslösen

Beschreibung: folgt bald

Beispiel: folgt bald

EwaTeilSammelPushen

Das Ereignis 'EwaTeilSammelPushen' wird verwendet, um auf das Teil- oder Sammel-Pushen eines Beleges Einfluss nehmen zu können. Zur Zeit läuft das Ereignis zu drei verschiedenen Zeitpunkten ab:

  • TeilSammelPushenZeitpunkt.TeilSammelPushenStart
  • TeilSammelPushenZeitpunkt.TeilSammelPushenVorAusführung
  • TeilSammelPushenZeitpunkt.TeilSammelPushenNachAusführung

Somit kann der eigene Code schon direkt beim Betätigen des Toolbar-Buttons ausgeführt werden (also noch vor der Meldung von easyWinArt usw.), unmittelbar vor der Durchführung des Pushens oder nachdem das Pushen durchgeführt wurde. Weiterhin lässt sich der eigene Code auch nur auf einen bestimmten Belegtyp, z.B. Auftrag, einschränken.

In unterem Beispiel ist dargestellt, wie sich das Teil-Pushen und Sammel-Pushen von Aufträgen verhindern lässt.


VB.NET SDK-Programmcode

  

#Region " TriggerFormLayer_EwaTeilSammelPushen-Ereignis " 

        Private Sub TriggerFormLayer_EwaTeilSammelPushen(ByVal sender As Object, ByVal e As TeilSammelPushenEventArgs, ByRef AktionAusführen As Boolean) Handles Me.EwaTeilSammelPushen 

                '>>> Nur beim Erzeugen einer VK-Lieferung UND unmittelbar vor dem Ausführen des Pushens 

                If (e.BpTyp = BPT.TeilPushen OrElse e.BpTyp = BPT.SammelPushen) AndAlso

                    e.VorgangForm.BelegTypGUID = BT.VkAuftrag AndAlso

                    e.Zeitpunkt = TeilSammelPushenZeitpunkt.TeilSammelPushenVorAusführung Then 

                    '>>> Meldung: 

                    FktF.Meldung("Teil-Pushen und Sammel-Pushen sind nicht zulässig.", e.VorgangForm) 

                    AktionAusführen = False 

                End If 

        End Sub 

#End Region

EwaToolbarVerknüpfungenAusführen

Das Ereignis 'EwaToolbarVerknüpfungenAusführen' wird verwendet, um auf die Funktionen wie 'zur Rechnung pushen', 'zur Bestellung pushen' etc. eines Beleges Einfluss nehmen zu können. Zur Zeit läuft das Ereignis zu drei verschiedenen Zeitpunkten ab:

  • ToolbarVerknüpfungenAusführenZeitpunkt.VerknüpfungenAusführenStart
  • ToolbarVerknüpfungenAusführenZeitpunkt.VerknüpfungenAusführenVorAusführung
  • ToolbarVerknüpfungenAusführenZeitpunkt.VerknüpfungenAusführenNachAusführung

Somit kann der eigene Code schon direkt beim Betätigen des Toolbar-Buttons ausgeführt werden (also noch vor der Meldung von easyWinArt usw.), unmittelbar vor der Durchführung der Aktion oder nachdem die Aktion durchgeführt wurde. Weiterhin lässt sich der eigene Code auch nur auf eine bestimmte Aktion, z.B. das Erstellen einer Rechnung, einschränken.

In unterem Beispiel ist dargestellt, wie sich das Pushen von Aufträgen zu Lieferungen verhindern lässt, mit Code für alle drei Zeitpunkte.


VB.NET SDK-Programmcode

  

#Region " TriggerFormLayer_EwaToolbarVerknüpfungenAusführen-Ereignis " 

    Private Sub TriggerFormLayer_EwaToolbarVerknüpfungenAusführen(ByVal sender As Object, ByVal e As ToolbarVerknüpfungenAusführenEventArgs, ByRef AktionAusführen As Boolean) Handles Me.EwaToolbarVerknüpfungenAusführen 

            '>>> Das Erstellen von Lieferungen verhindern:  

            If e.Zeitpunkt = ToolbarVerknüpfungenAusführenZeitpunkt.VerknüpfungenAusführenStart AndAlso

                (e.BtkTyp = BTTK.VkAuftragLieferung OrElse e.BtkTyp = BTTK.VkAuftragLieferungUndRechnung) Then 

                '>>> Meldung  

                FktF.Meldung("Start: Lieferung erstellen nicht erlaubt.", e.VorgangForm) 

                AktionAusführen = False 

            End If 

            If e.Zeitpunkt = ToolbarVerknüpfungenAusführenZeitpunkt.VerknüpfungenAusführenVorAusführung AndAlso

                (e.BtKennung = BtKennung.VkAuftragLieferung OrElse e.BtKennung = BtKennung.VkAuftragLieferungUndRechnung) Then 

                '>>> Meldung  

                FktF.Meldung("VorAusführung: Lieferung erstellen nicht erlaubt.", e.VorgangForm) 

                AktionAusführen = False 

            End If 

            If e.Zeitpunkt = ToolbarVerknüpfungenAusführenZeitpunkt.VerknüpfungenAusführenNachAusführung AndAlso

                (e.BtKennung = BtKennung.VkAuftragLieferung OrElse e.BtKennung = BtKennung.VkAuftragLieferungUndRechnung) Then 

                '>>> Meldung  

                FktF.Meldung("NachAusführung: Lieferung erstellen nicht erlaubt.", e.VorgangForm) 

                AktionAusführen = False 

            End If

        End Sub 

#End Region

Beratung erwünscht?

Gerne können Sie mich oder einen mein­er freund­lichen Kollegen telefonisch er­reichen:  +49 2161 277 680

Alter­na­tiv schrei­ben Sie uns an  info@it-easy.de oder nutz­en Sie das nach­folgende Kontakt­formular.

Ihr Ralf Jasper
Kundenservice

Mitarbeiterfoto von Herrn Ralf Jasper

Rückruf-Service

Für eine möglichst unkomplizierte Kontaktaufnahme füllen Sie bitte das unten stehende Formular aus und klicken auf „Rückruf anfordern“.