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