Beleg-Adresse über Projekt

Allgemeine Erklärung

In der Mandanten-Konfiguration von easyWinArt steht in der Registerkarte 'Belege' der Konfigurations-Schalter 'Beleg-Adresse über Kommission einstellen' zur Verfügung. Ist dieser aktiviert, so wird beim Anlegen eines neuen Vorgangs-Beleges nicht die Suche nach einer Adresse, sondern die Suche nach einer Kommission geöffnet (die bereits vorhanden oder kurz vorher angelegt sein sollte). Wird dann eine Kommission ausgewählt, so wird als Beleg-Adresse die Adresse der Kommission eingestellt.

An dieser Stelle soll nun gezeigt werden, wie man diese Logik mit Hilfe des SDK für Projekte umsetzen kann. Jedem Vorgangs-Beleg kann in der Registerkarte 'Projekt-Daten' ein Projekt zugeordnet werden. Dieses muss zunächst in der Menüfunktion 'Kostenrechnung -> Projekt-System --> Projekte' angelegt werden. Öffnet man dort aus der Registerkarte 'Alle Belege des aktuellen Projektes' über den unteren Button die Menüfunktion der Vorgangs-Belege und legt darin einen neuen Beleg an, so wird diesem automatisch das Projekt zugewiesen, das zum Zeitpunkt des Klicks auf den gerade genannten Button ausgewählt war. Jetzt soll durch untenstehenden Code dem Beleg auch gleich die Adresse des Projektes zugewiesen werden.

Wird hingegen die Menüfunktion 'Vorgangs-Belege' herkömmlich geöffnet, so soll bei Neuanlage eines Beleges statt der Suche nach einer Adresse die Suche nach einem Projekt erscheinen. Wird dann ein Projekt ausgewählt, so soll entsprechend auch gleich die Adresse dieses Projektes als Beleg-Adresse eingestellt werden.

Um dies zu realisieren, muss zunächst in der Mandanten-Konfiguration in der Registerkarte 'Belege' die 'Automatische Adress-Suche bei neuem Beleg' deaktiviert werden. Jetzt kann mit Hilfe des Triggers 'NachNeu' zunächst überprüft werden, ob bereits ein Projekt eingestellt ist, z.B. weil die Vorgangs-Belege wie oben beschrieben aus den Projekten heraus geöffnet worden sind. Ist dies der Fall, so kann die Adressnummer der Adresse des Projektes in das entsprechende Feld gesetzt werden, dadurch wird die Adresse in den Beleg gezogen. Sollte noch kein Projekt eingestellt sein, so soll die Suche nach Projekten geöffnet werden, dazu wird einfach der Klick auf das blaue Label 'Projekt' simuliert. Damit nach Auswahl des Projektes auch die Adresse eingestellt wird, wird über 'AddHandler' dem Ereignis 'EwaControlChanged' der Integerbox, welche die Projektnummer enthält, eine entsprechende Prozedur zugewiesen. Dies bedeutet, sobald die Projektnummer durch easyWinArt in das entsprechende Feld gesetzt wird, wird die Adressnummer des Projektes wie eben beschrieben geholt und somit die Beleg-Adresse gesetzt.

VB.NET SDK-Programmcode

  

#Region " Private Function: TriggerFormFramework_NachLoad () " 

        Private Sub TriggerFormFramework_NachLoad(ByVal sender As Object, ByVal e As FormFrameworkEventArgs) Handles Me.NachLoad 

                '>>> Bei MenüFunktion  V O R G A N G 

                If TypeOf sender Is VorgangFRM Then 

                    Dim vorFRM As VorgangFRM 

                    vorFRM = CType(sender, VorgangFRM

                    '>>> Bei Änderung der Projektnummer ggf. Projektadresse als Beleg-Adresse  

                    AddHandler vorFRM.IntegerBoxProjektNummer_ProjekteProjekt.EwaControlChanged, AddressOf Me.AdresseEinstellen 

                End If 

        End Sub 

#End Region 

 

#Region " TriggerFormFramework_NachNeu-Ereignis " 

        Private Sub TriggerFormFramework_NachNeu(ByVal sender As Object, ByVal e As FormFrameworkNeuEventArgs) Handles Me.NachNeu 

                '>>> MenüFunktion  V O R G A N G 

                If TypeOf sender Is VorgangFRM Then 

                    Dim vorFRM As VorgangFRM 

                    vorFRM = CType(sender, VorgangFRM

                    '>>> Beleg-Adresse über Projekt bestimmen bzw. Suche nach Projekt öffnen 

                    VorgangAdresseÜberProjektHolen(vorFRM) 

                End If 

        End Sub 

#End Region 

 

#Region " Private Sub: VorgangAdresseÜberProjektHolen () " 

        Private Sub VorgangAdresseÜberProjektHolen(ByVal VorFRM As VorgangFRM

            Try 

                '>>> Adresse setzen, falls Projekt bereits eingestellt ist, ansonsten Projekt-Such-Fenster öffnen 

                If VorFRM.IntegerBoxProjektNummer_ProjekteProjekt.Text <> "0" Then 

                    AdresseSetzen(VorFRM) 

                Else 

                    VorFRM.LabelProjektNummer_ProjekteProjekt.OnClickAuslösen() 

                End If 

            Catch ex As Exception 

                Throw New EwaException(ex) 

            End Try 

        End Sub 

#End Region 

 

#Region " Private Sub: AdresseEinstellen () " 

        Private Sub AdresseEinstellen(ByVal sender As Object, ByVal e As System.EventArgs

                Dim vorFRM As VorgangFRM 

                vorFRM = DirectCast(DirectCast(sender, Control).FindForm, VorgangFRM

                '>>> nur, wenn noch keine Beleg-Adresse eingestellt ist 

                If vorFRM.IntegerBoxAdressNummer_AdressenVorgang.Text = "0" Then 

                    AdresseSetzen(vorFRM) 

                End If 

        End Sub 

#End Region 

 

#Region " Private Sub: AdresseSetzen () " 

        Private Sub AdresseSetzen(ByVal VorFRM As VorgangFRM

                Dim projektGUID, adressGUID As String 

                Dim adressnummer As Integer 

                Dim tmpDBZ As SQLServerZugriff = Datenbank.DatenDB 

                projektGUID = C.ToStringX(VorFRM.IntegerBoxProjektNummer_ProjekteProjekt.EwaFremdSchlüsselGuid) 

                adressGUID = C.ToStringX(tmpDBZ.HoleFeld(TBL.Projekte.AdresseGUID, TBL.Projekte.TBL, TBL.Projekte.GUID, projektGUID)) 

                adressnummer = C.ToIntegerX(tmpDBZ.HoleFeld(TBL.Adressen.AdressNummerINT, TBL.Adressen.TBL, TBL.Adressen.GUID, adressGUID)) 

                '>>> Adressnummer in die Integerbox 'AdressNummer' setzen, als hätte der User sie hineingeschrieben 

                VorFRM.BasisFkt.SetzeControl(VorFRM.IntegerBoxAdressNummer_AdressenVorgang, adressnummer)       

        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“.