Eigene Buttons in den Service-Tickets zur Beleg-Erstellung
Allgemeine Erklärung
In der Menüfunktion 'Service-Tickets' sollen in der Registerkarte 'Individual-Variablen' unter ggf. vorhandenen Steuerelementen drei Buttons ergänzt werden. Diese sollen dazu dienen, einen neuen Beleg vom Typ Angebot, Auftrag oder Lieferung anzulegen. Der angelegte Beleg ist dann mit dem gerade ausgewählten Ticket verknüpft. Diese Verknüpfung muss nachträglich über die Datenbank eingestellt werden, da die Beleg-Klasse einen entsprechenden Parameter noch nicht bietet. Der Beispiel-Code kann in unten dargestellter Form in die Datei 'TriggerFormFramework.vb' eingefügt werden.
VB.NET SDK-Programmcode
#Region " TriggerFormFramework_NachLoad-Ereignis "
Private Sub TriggerFormFramework_NachLoad(sender As Object, e As FormFrameworkEventArgs) Handles Me.NachLoad
'>>> Bei Menüfunktion S E R V I C E T I C K E T
If TypeOf sender Is ServiceTicketsFRM Then
Dim tiFRM As ServiceTicketsFRM = CType(sender, ServiceTicketsFRM)
'>>> Steuerelemente ergänzen
SteuerelementeAmTicketErgänzen(tiFRM)
End If
End Sub
#End Region
#Region " Private Sub: SteuerelementeAmTicketErgänzen () "
Private Sub SteuerelementeAmTicketErgänzen(TiFRM As ServiceTicketsFRM)
'>>> Buttons unter die unterste Individualvariable einfügen
Dim buttonTop As Integer = 0
For Each ctrl As Control In TiFRM.PanelIndVar.Controls
buttonTop = ctrl.Top + ctrl.Height
Next
buttonTop += 10
'>>> Button Angebot
Dim buttonAngebot As New EwaButton
buttonAngebot.Text = ""
buttonAngebot.Image = Menue.FRM.ImageListMenue.Images(2453)
buttonAngebot.Width = buttonAngebot.Height
buttonAngebot.Left = 10
buttonAngebot.Top = buttonTop
buttonAngebot.EwaReadOnlyAktiv = True
TiFRM.PanelIndVar.Controls.Add(buttonAngebot)
AddHandler buttonAngebot.Click, AddressOf AngebotAnlegen
'>>> Button Auftrag
Dim buttonAuftrag As New EwaButton
buttonAuftrag.Text = ""
buttonAuftrag.Image = Menue.FRM.ImageListMenue.Images(2456)
buttonAuftrag.Width = buttonAuftrag.Height
buttonAuftrag.Left = 10 + buttonAngebot.Width + 10
buttonAuftrag.Top = buttonTop
buttonAuftrag.EwaReadOnlyAktiv = True
TiFRM.PanelIndVar.Controls.Add(buttonAuftrag)
AddHandler buttonAuftrag.Click, AddressOf AuftragAnlegen
'>>> Button Lieferung
Dim buttonLieferung As New EwaButton
buttonLieferung.Text = ""
buttonLieferung.Image = Menue.FRM.ImageListMenue.Images(2463)
buttonLieferung.Width = buttonLieferung.Height
buttonLieferung.Left = 10 + buttonAngebot.Width + 10 + buttonAuftrag.Width + 10
buttonLieferung.Top = buttonTop
buttonLieferung.EwaReadOnlyAktiv = True
TiFRM.PanelIndVar.Controls.Add(buttonLieferung)
AddHandler buttonLieferung.Click, AddressOf LieferungAnlegen
End Sub
#End Region
#Region " Private Sub: AngebotAnlegen () "
Private Sub AngebotAnlegen(sender As Object, e As System.EventArgs)
Dim TiFRM As ServiceTicketsFRM = CType(CType(sender, EwaButton).FindForm, ServiceTicketsFRM)
Dim tmpDBZ As SQLServerZugriff = Datenbank.DatenDB
Dim adresseGUID As Guid = C.ToGuidX(tmpDBZ.HoleFeld(TBL.Adressen.GUID, TBL.Adressen.TBL, TBL.Adressen.AdressNummerINT, TiFRM.IntegerBoxAdressNummer_Adressen.Text))
If adresseGUID = Guid.Empty Then Exit Sub
Dim neuerBeleg As New Beleg(BT.VkAngebot, adresseGUID)
neuerBeleg.GeneriereNeuenBeleg()
If neuerBeleg.Beleg = Guid.Empty Then
FktF.Meldung("Fehler: Neuer Beleg konnte nicht erstellt werden.", TiFRM)
Exit Sub
End If
'>>> UPDATE:
tmpDBZ.LöscheFelder()
tmpDBZ.AddFelder(TBL.ServiceTicketsBelege.BelegGUID, neuerBeleg.Beleg, EwaSQL.UniqueIdentifier)
tmpDBZ.AddFelder(TBL.ServiceTicketsBelege.ServiceTicketGUID, TiFRM.AktuelleGUID, EwaSQL.UniqueIdentifier)
tmpDBZ.InsertDatensatz(TBL.ServiceTicketsBelege.TBL)
'>>> anzeigen
Dim tmpLIS As New List(Of Guid)
tmpLIS.Add(neuerBeleg.Beleg)
AnzeigenDerBelege(tmpLIS, "Angebot")
End Sub
#End Region
#Region " Private Sub: AuftragAnlegen () "
Private Sub AuftragAnlegen(sender As Object, e As System.EventArgs)
Dim TiFRM As ServiceTicketsFRM = CType(CType(sender, EwaButton).FindForm, ServiceTicketsFRM)
Dim tmpDBZ As SQLServerZugriff = Datenbank.DatenDB
Dim adresseGUID As Guid = C.ToGuidX(tmpDBZ.HoleFeld(TBL.Adressen.GUID, TBL.Adressen.TBL, TBL.Adressen.AdressNummerINT, TiFRM.IntegerBoxAdressNummer_Adressen.Text))
If adresseGUID = Guid.Empty Then Exit Sub
Dim neuerBeleg As New Beleg(BT.VkAuftrag, adresseGUID)
neuerBeleg.GeneriereNeuenBeleg()
If neuerBeleg.Beleg = Guid.Empty Then
FktF.Meldung("Fehler: Neuer Beleg konnte nicht erstellt werden.", TiFRM)
Exit Sub
End If
'>>> UPDATE:
tmpDBZ.LöscheFelder()
tmpDBZ.AddFelder(TBL.ServiceTicketsBelege.BelegGUID, neuerBeleg.Beleg, EwaSQL.UniqueIdentifier)
tmpDBZ.AddFelder(TBL.ServiceTicketsBelege.ServiceTicketGUID, TiFRM.AktuelleGUID, EwaSQL.UniqueIdentifier)
tmpDBZ.InsertDatensatz(TBL.ServiceTicketsBelege.TBL)
'>>> anzeigen
Dim tmpLIS As New List(Of Guid)
tmpLIS.Add(neuerBeleg.Beleg)
AnzeigenDerBelege(tmpLIS, "Auftrag")
End Sub
#End Region
#Region " Private Sub: LieferungAnlegen () "
Private Sub LieferungAnlegen(sender As Object, e As System.EventArgs)
Dim TiFRM As ServiceTicketsFRM = CType(CType(sender, EwaButton).FindForm, ServiceTicketsFRM)
Dim tmpDBZ As SQLServerZugriff = Datenbank.DatenDB
Dim adresseGUID As Guid = C.ToGuidX(tmpDBZ.HoleFeld(TBL.Adressen.GUID, TBL.Adressen.TBL, TBL.Adressen.AdressNummerINT, TiFRM.IntegerBoxAdressNummer_Adressen.Text))
If adresseGUID = Guid.Empty Then Exit Sub
Dim neuerBeleg As New Beleg(BT.VkLieferung, adresseGUID)
neuerBeleg.GeneriereNeuenBeleg()
If neuerBeleg.Beleg = Guid.Empty Then
FktF.Meldung("Fehler: Neuer Beleg konnte nicht erstellt werden.", TiFRM)
Exit Sub
End If
'>>> UPDATE:
tmpDBZ.LöscheFelder()
tmpDBZ.AddFelder(TBL.ServiceTicketsBelege.BelegGUID, neuerBeleg.Beleg, EwaSQL.UniqueIdentifier)
tmpDBZ.AddFelder(TBL.ServiceTicketsBelege.ServiceTicketGUID, TiFRM.AktuelleGUID, EwaSQL.UniqueIdentifier)
tmpDBZ.InsertDatensatz(TBL.ServiceTicketsBelege.TBL)
'>>> anzeigen
Dim tmpLIS As New List(Of Guid)
tmpLIS.Add(neuerBeleg.Beleg)
AnzeigenDerBelege(tmpLIS, "Lieferung")
End Sub
#End Region
#Region " Private Sub AnzeigenDerBelege() "
Private Sub AnzeigenDerBelege(ByVal belege As List(Of Guid), ErgänzungsName As String)
'>>> Deklarationen:
Dim tmpErgänzungsName As String
Dim tmpWhere As String
Dim tmpSQL As String
Dim inString As String = ""
'>>> IN-Liste bilden mit den GUIDs der generierten Belege
For Each eintrag In belege
inString = inString & "'" & C.ToStringX(eintrag) & "',"
Next
inString = inString.Trim(CChar(","))
'>>> WHERE ermitteln:
tmpWhere = "(" & TBL.Vorgang.TBL & "." & TBL.Vorgang.GUID & " IN (" & inString & "))"
'>>> SQL-Befehl ermitteln:
tmpSQL = FktF.BildeSqlKomplettBefehl("VOR", , tmpWhere, TBL.Vorgang.TBL & "." & TBL.Vorgang.BelegNummerINT & " DESC")
'>>> Neues Fenster mit den Belegen öffnen:
tmpErgänzungsName = "Generierte Bestellungen"
Menue.FRM.CallTheFunction("VOR", tmpSQL, ErgänzungsName, Nothing, False)
End Sub
#End Region