Unter Extras finden Sie das Menü
Tabellenauslöser.
Tabellen-Trigger werden verwendet, um kleine Codestücke zu erstellen, die kleine Aufgaben in den Tabellen/Dateien in Uniconta automatisieren können.
Jeglicher Support in Bezug auf Auslöser ist kostenpflichtiger Support. Wenn Sie Auslöser für Ihre Konten erstellt haben und diese zu Herausforderungen für die Konten führen, handelt es sich um kostenpflichtigen Support, wenn Sie den Support kontaktieren.
Die Beispiele in diesem Artikel sind indikativ und funktionieren in einem Standard Uniconta Buchhaltungssystem. Es liegt in Ihrer eigenen Verantwortung, sie zu verwenden, und Sie sollten sie in einer Testumgebung testen, bevor Sie sie in einer Betriebsumgebung programmieren.
Tipps:
Der Wert eines benutzerdefinierten
fldNote-Feldes wird wie folgt aufgerufen:
rec.Debtor.GetUserFieldString("fldNotat")
Um einen Wert für ein benutzerdefiniertes Feld,
fldNotat, festzulegen, geben Sie Folgendes ein:
rec.SetUserFieldString("fldNotat", "Dette er vores notat til feltet");
Es ist möglich, ein Meldungsfeld zu erstellen, zum Beispiel wenn ein Feld nicht ausgefüllt ist. Ein Meldungsfeld kann wie folgt geschrieben werden:
System.Windows.Forms.MessageBox.Show("OnUpdate");
Beispiel 1 - Wählen Sie ein Layout basierend auf einem Mitarbeiter:
Wenn ein bestimmter Mitarbeiter einen Kundenauftrag erstellt, muss dieser Mitarbeiter ein bestimmtes Layout verwenden.
Sie können dies erzwingen, indem Sie einen Auslöser erstellen.
Gehen Sie zu Tools/Tabellenauslöser
Hier wählen Sie das Verzeichnis aus, für das Sie einen Trigger ausführen möchten. Um das Verzeichnis zu finden, gehen Sie zu dem gewünschten Ort in Uniconta und drücken dann F12.
Wenn es sich um einen Kundenauftrag handelt, der mit einem Code aktiviert werden muss, wählen Sie "DebtorOrderClient".
Dann wählen Sie "Auslöser", d.h. wann dieser Code aktiviert werden soll.
In diesem Beispiel ist OnInsert ausgewählt.
Wenn Sie in C# programmieren können, kreuzen Sie das Feld C# an.
Im Feld Skript sind Sie nun bereit für den Code.
/* Hvis medarbejderen er 1007, så skal layoutgruppen sættes til England */
if (rec.Employee=="1007")
rec.LayoutGroup = "England";
/* Hvis leveringsdato på en salgsordre skal være dags-dato */
rec.DeliveryDate =DateTime.Today;
Klicken Sie auf Speichern und testen Sie den Auslöser für den Kundenauftrag.
Beispiel 2 - Automatisches Ausfüllen der Rechnungsnummer mit einer beliebigen Zahl:
Dies kann zu Testzwecken verwendet werden, wenn Sie häufig Testkäufe durchführen oder einfach eine zufällige Rechnungsnummer auf einer Einkaufsrechnung benötigen.
Über einen Auslöser können Sie beim Verlassen des Einkaufsbildschirms eine Nummer im Feld Rechnungs-Nr. speichern.
Im Beispiel wird das aktuelle Datum mit Uhrzeit, einschließlich Sekunden, für die Rechnungsnummer ausgewählt, so dass diese nie gleich sein wird.
Sie tun Folgendes:
Erstellen Sie einen Auslöser:
Gehe zu Tools
Tabellenauslöser auswählen
Wählen Sie die Tabelle CreditorOrderClient
Klicken Sie im Menü auf Tabellenauslöser
Sie können einen Auslöser hinzufügen, wenn Sie einen Auftrag erstellen, aber es ist auch eine gute Idee, einen Auslöser hinzuzufügen, wenn Sie einen Auftrag ändern.
Erstellen Sie eine Rechnungsnummer für eine neue Bestellung:
Einen Tabellen-Trigger hinzufügen
Auslöser auf OnInsert setzen
Markieren Sie das Kästchen in C#
Fügen Sie den folgenden Code in das Feld Script ein:
rec.InvoiceNumber = DateTime.Now.ToString("MMddyyyyHHmmss");
(Ersetzen Sie gegebenenfalls " durch neue ", da sie beim Kopiervorgang geändert werden können!)
Klicken Sie auf Prüfen. Wenn Sie OK erhalten, ist alles in Ordnung - wenn Sie einen Fehler mit viel Code erhalten, beginnen Sie mit dem Ersetzen von " und versuchen Sie die Überprüfung erneut.
Speichern Sie und versuchen Sie, eine Bestellung zu erstellen.
Der Auslöser sollte wie folgt aussehen:

Wenn Sie die gleiche Funktionalität für bereits erstellte Bestellungen wünschen, müssen Sie einen zweiten Trigger erstellen.
Erstellen Sie eine Rechnungsnummer für eine bestehende Bestellung:
Fügen Sie einen weiteren Tabellen-Trigger auf CreditorOrderClient hinzu
Auslöser auf OnUpdate setzen
Markieren Sie das Kästchen in C#
Fügen Sie den folgenden Code in das Feld Script ein:
if (rec.InvoiceNumber=="0" || string.IsNullOrEmpty(rec.InvoiceNumber) ) {
rec.InvoiceNumber = DateTime.Now.ToString("MMddyyyyHHmmss");
}
(Ersetzen Sie gegebenenfalls " durch neue ", da sie beim Kopiervorgang geändert werden können!)
Klicken Sie auf Prüfen. Wenn Sie OK erhalten, ist alles in Ordnung. Wenn Sie einen Fehler mit viel Code erhalten, beginnen Sie mit dem Ersetzen von " und versuchen Sie die Überprüfung erneut.
Speichern Sie und versuchen Sie, eine Bestellung zu ändern, die keine Rechnungsnummer hat.
Der Auslöser sollte wie folgt aussehen:
Beispiel 3 - Automatisches Ausfüllen des Projektnamens mit dem Namen des Schuldners:
Von der Übersicht
Schuldner/Schuldner aus können Sie über das Menüband ein Projekt für den ausgewählten Schuldner erstellen (wenn das Projektmodul aktiviert ist).
Über einen Trigger können Sie den Projektnamen bei der Erstellung automatisch mit dem Namen des Schuldners füllen lassen.
Erstellen Sie den Auslöser:
Gehe zu Tools
Tabellenauslöser auswählen
Wählen Sie die Tabelle ProjectClient
Klicken Sie im Menü auf "Tabellen-Trigger hinzufügen".
Auslöser auf PageLoad setzen
Fügen Sie den folgenden Code in das Feld Script ein:
if (rec.Name==null) {
rec.Name = rec.DebtorName;
}
(Ersetzen Sie ggf. "durch neu", da sie beim Kopieren geändert werden können!)
Der Auslöser sollte wie folgt aussehen:
Beispiel 4 - Zahlungsmethode auf X setzen, wenn Konto = X im Buchhaltungsjournal:
Wenn Sie ein Debitoren-/Kreditoren-/Finanzkonto haben, das z.B. bei jeder Buchung eine bestimmte Zahlungsmethode benötigt, können Sie diesen Trigger verwenden.
Erstellen Sie den Auslöser:
Gehe zu Tools
Tabellenauslöser auswählen
Wählen Sie die Tabelle GLDailyJournalLineClient
Klicken Sie im Menü auf "Tabellen-Trigger hinzufügen".
Auslöser auf OnUpdate setzen
Markieren Sie das Kästchen in C#
Fügen Sie den folgenden Code in das Feld Script ein:
if (rec.Account=="X")
rec.PaymentMethod = "X";
// Erstat X med kontonavn samt den ønskede betalingsmetode.
// Betalingsmåder: "Kreditors Bankkonto", "IBAN", "+71", "+73", "+75", "+04", "Ingen".
Klicken Sie auf Prüfen. Wenn Sie OK erhalten, ist alles in Ordnung. Wenn Sie einen Fehler mit viel Code erhalten, ersetzen Sie zunächst die Symbole
" und versuchen Sie die Überprüfung erneut.
Der Auslöser sollte wie folgt aussehen:
Möglichkeiten mit Auslösern
Ein Trigger kann für 8 verschiedene Methoden aktiviert werden, und zwar nur einmal pro Methode und pro Tabelle. Wenn Sie also mehrere Funktionen für dieselbe Methode haben möchten, müssen diese unter einer Methode erstellt werden.
Sie können einen Auslöser nicht von einer Methode zu einer anderen ändern. Sie müssen einen neuen Auslöser erstellen und den Auslöser, den Sie nicht verwenden, löschen.
Auslöser |
Beschreibung des Auslösers |
Init |
Init kann verwendet werden, um einen Parameter zu definieren, bevor der Bildschirm geladen wird. |
PageClosed |
PageClosed wird ausgeführt, wenn Sie ein Bildschirmfoto schließen. |
PageLoad |
PageLoad wird ausgeführt, wenn Sie einen Bildschirm öffnen.
So können Sie z.B. bei der Erstellung eines neuen Kundenauftrags, Projekts oder Artikels Daten im Voraus einfügen. |
OnEnter |
OnEnter wird ausgeführt, wenn Sie auf dem Feld stehen, auf dem Sie einen Trigger ausgelöst haben. |
OnLeave |
OnLeave wird ausgeführt, wenn Sie das Feld, das Sie ausgelöst haben, verlassen. OnDelete |
OnDelete |
OnDelete wird ausgeführt, wenn Sie Daten aus dem Feld löschen, für das Sie einen Trigger erstellt haben.
Sie können z.B. den Zeitpunkt der Datenlöschung dokumentieren. |
OnInsert |
OnInsert wird ausgeführt, wenn Sie Daten erstellen/einfügen.
Zum Beispiel, wenn Sie einen Kundenauftrag oder einen neuen Debitoren/Kreditoren erstellen. |
OnUpdate |
OnUpdate wird ausgeführt, wenn Sie vorhandene Daten im Triggerfeld aktualisieren.
Wenn z.B. der Wert X = X in Feld A ist, fügen Sie den Wert Y in Feld B ein.
Sie können OnUpdate auch verwenden, um zu registrieren, wann zuletzt Änderungen an einem Schuldner oder einem Artikel vorgenommen wurden. |