Imports FastReport Imports System.Data.SQLite Imports System.IO Public Class frmFirma Dim AnsprechpartnerTableAdapter As New LPDataSetTableAdapters.AnsprechpartnerTableAdapter Dim BerufeTableAdapter As New LPDataSetTableAdapters.BerufTableAdapter Dim FirmenberufTableadapter As New LPDataSetTableAdapters.FirmaBerufTableAdapter Dim ZeitTableAdapter As New LPDataSetTableAdapters.ZeitenTableAdapter Dim Berufrow As LPDataSet.BerufRow Dim Ansprechpartnerrow As LPDataSet.AnsprechpartnerRow Dim firmarow As LPDataSet.FirmaRow Dim FirmaBerufRow As LPDataSet.FirmaBerufRow Dim dbkey As New clsdbkey Dim MySpalten As New Utils.Tabellenspalte Dim FormdataChanged As Boolean = False #Region "Eventhandler ChangeEreignisse" ''' ''' Allg Eventhandler für Chanage-Ereignise festlegen ''' ''' ''' Private Sub AddChanges(ByVal Container As Control) Dim l As New List(Of Control) Me.GetControl(Me, "*", l) Dim evh As EventHandler = AddressOf ChangesMade For Each c As Control In l If TypeOf c Is TextBox Then Dim ctl As TextBox = c If ctl.Name <> "txtBerufNr" Then AddHandler ctl.TextChanged, evh End If If TypeOf c Is MaskedTextBox Then Dim ctl As MaskedTextBox = c AddHandler ctl.TextChanged, evh End If If TypeOf c Is ComboBox Then Dim ctl As ComboBox = c AddHandler ctl.SelectedValueChanged, evh End If If TypeOf c Is RichTextBox Then Dim ctl As RichTextBox = c AddHandler ctl.TextChanged, evh End If If TypeOf c Is CheckBox Then If c.Name <> "cboxNurAktive" Then Dim ctl As CheckBox = c AddHandler ctl.CheckedChanged, evh End If End If If TypeOf c Is CheckedListBox Then Dim ctl As CheckedListBox = c AddHandler ctl.ItemCheck, AddressOf ChecketListBoxChange End If Next End Sub ''' ''' Envent-Handler für Change-Ereignisse ''' ''' ''' ''' Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs) Me.FormdataChanged = True Dim objtype As System.Type = sender.GetType If objtype.Name = "MaskedTextBox" Then Dim o As MaskedTextBox = sender If o.Text = "01.01.1900" Then o.Text = " . . " End If End Sub Private Sub ChecketListBoxChange(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Me.FormDataChanged = True End Sub ''' ''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet ''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung ''' ''' Base-Contrlo (z.B. aktuelles Formular ''' Schlüssel welcher gesucht werden soll ''' Liste der gefundenen Objekte ''' True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde. ''' ''' Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean If L Is Nothing Then L = New List(Of Control) Dim Gut As Boolean Dim ReturnFlag As Boolean = False If Key IsNot Nothing Then Key = Key.ToLower If BaseControl.HasChildren = True Then For Each ctl As Control In BaseControl.Controls Gut = False If Key Is Nothing Then Gut = True Else If ctl.Name.Length >= Key.Length Then Key = Key.ToLower If Key.StartsWith("*") Then If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True ElseIf Key.EndsWith("*") Then If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True Else If Key = ctl.Name.ToLower Then Gut = True End If End If End If If Gut = True Then L.Add(ctl) If ReturnAtFirstElement = True Then ReturnFlag = True End If If ReturnFlag = False Then Call GetControl(ctl, Key, L) End If Next End If If L.Count - 1 > -1 Then Return True Else Return False End If End Function #End Region #Region "Closing / Check_Changes" ''' ''' Schliessen des Formulars ''' ''' ''' ''' Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If Check_Changes() = False Then e.Cancel = True Else Me.Dispose() End If End Sub ''' ''' Prüfung, ob Datenänderungen vorgenommen wurden. ''' ''' Private Function Check_Changes() As Boolean Dim msgres As MsgBoxResult If Me.FormdataChanged Then msgres = MsgBox("Daten wurden geändert. Sollen die Änderungen gespeichert werden?", vbYesNoCancel + vbQuestion) Select Case msgres Case MsgBoxResult.Yes Save_Data() Return True Case MsgBoxResult.Cancel Return False Case MsgBoxResult.No Me.FormdataChanged = False Return True End Select Else Return True End If End Function #End Region Private Sub frmFirma_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load refresh_tree() AddChanges(Me) Me.FormdataChanged = False End Sub Private Sub refresh_tree() FirmaTableAdapter.FillByName(Me.LPDataSet.Firma) Me.FirmaTableAdapter.GetDataByName() Me.TreeView1.Nodes.Clear() For Each r As DataRow In LPDataSet.Firma.Rows Dim tn As New TreeNode tn.Text = r.Item("NameZ1") + " " + r.Item("NameZ2") + ", " + r.Item("Ort") tn.Tag = r.Item("FirmaNr") Try If r.Item("Aktiv") = False Then Dim fnt_strikeout fnt_strikeout = New System.Drawing.Font(TreeView1.Font.FontFamily, TreeView1.Font.Size, FontStyle.Strikeout) tn.NodeFont = fnt_strikeout End If Catch ex As Exception End Try Me.TreeView1.Nodes.Add(tn) Next End Sub Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect refresh_details(Me.TreeView1.SelectedNode.Tag) tbCtrlFirma_SelectedIndexChanged(sender, e) Me.FormdataChanged = False End Sub Private Sub refresh_details(ByVal Firmanr As Integer) Try firmarow = LPDataSet.Firma.FindByFirmaNr(Firmanr) Me.txtNameZ1.Text = firmarow.NameZ1.ToString Me.txtNameZ2.Text = firmarow.NameZ2.ToString Me.txtStrasse.Text = firmarow.Strasse.ToString Me.txtPlz.Text = firmarow.PLZ.ToString Me.txtOrt.Text = firmarow.Ort.ToString Me.txtTel.Text = firmarow.Tel.ToString Me.txtFax.Text = firmarow.Fax.ToString Me.txtWeb.Text = firmarow.Web.ToString Me.txtMail.Text = firmarow.EMail.ToString Me.txtAnrede.Text = firmarow.Anrede.ToString Me.txtBriefanrede.Text = firmarow.Briefanrede.ToString Me.txtbemerkung.Text = firmarow.Bemerkung.ToString Me.cbaktiv.Checked = firmarow.Aktiv = True Me.txtAusbildungsstandort.Text = firmarow.Ausbildungsstandort Me.txtAusbildungsbemekrung.Text = firmarow.Ausbildungsbemerkung Refresh_Ansprechpartner(Firmanr) Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub Refresh_Ansprechpartner(ByVal FirmaNr As Integer) AnsprechpartnerTableAdapter.FillByFirmaNr(LPDataSet.Ansprechpartner, FirmaNr) Me.C1Ansprechpartner.DataSource = LPDataSet.Ansprechpartner Me.C1Ansprechpartner.DataMember = LPDataSet.Ansprechpartner.TableName MySpalten.Spaltentitel_aktualisieren_Optionaler_Aktiv_Filer(Me.C1Ansprechpartner, "Ansprechpartner", LPDataSet.Ansprechpartner, "True") End Sub Private Sub SchliessenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SchliessenToolStripMenuItem.Click Me.Close() End Sub Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click save_Data() End Sub Private Sub save_data() firmarow = LPDataSet.Firma.FindByFirmaNr(Me.TreeView1.SelectedNode.Tag) firmarow.NameZ1 = Me.txtNameZ1.Text firmarow.NameZ2 = Me.txtNameZ2.Text firmarow.Strasse = Me.txtStrasse.Text firmarow.PLZ = Me.txtPlz.Text firmarow.Ort = Me.txtOrt.Text firmarow.Tel = Me.txtTel.Text firmarow.Fax = Me.txtFax.Text firmarow.Web = Me.txtWeb.Text firmarow.EMail = Me.txtMail.Text firmarow.Anrede = Me.txtAnrede.Text firmarow.Briefanrede = Me.txtBriefanrede.Text firmarow.Bemerkung = Me.txtbemerkung.Text firmarow.Mutiert_am = Now firmarow.Ausbildungsstandort = Me.txtAusbildungsstandort.Text firmarow.Ausbildungsbemerkung = Me.txtAusbildungsbemekrung.Text firmarow.Aktiv = cbaktiv.Checked = True FirmaTableAdapter.Update(LPDataSet.Firma) Me.refresh_tree() Me.FormdataChanged = False End Sub Private Sub TSBtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnNew.Click firmarow = LPDataSet.Firma.NewFirmaRow Dim newkey As Integer = dbkey.Get_NewKey("Firma") firmarow.FirmaNr = newkey firmarow.NameZ1 = "*** Neu ***" firmarow.NameZ2 = "" firmarow.Strasse = "" firmarow.PLZ = "" firmarow.Ort = "" firmarow.Tel = "" firmarow.Fax = "" firmarow.Web = "" firmarow.EMail = "" firmarow.Anrede = "" firmarow.Briefanrede = "" firmarow.Bemerkung = "" firmarow.Ausbildungsbemerkung = "" firmarow.Ausbildungsstandort = "" firmarow.Mutiert_am = Now firmarow.Erstellt_am = Now firmarow.Aktiv = True LPDataSet.Firma.AddFirmaRow(firmarow) FirmaTableAdapter.Update(LPDataSet.Firma) Me.refresh_tree() Try Me.TreeView1.SelectedNode = Me.FindNode(Me.TreeView1.Nodes, newkey, "") Catch ex As Exception End Try Me.txtNameZ1.Focus() End Sub Public Function FindNode(ByVal _nodeCollection As TreeNodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As TreeNode Dim tmpNode As TreeNode For Each _child As TreeNode In _nodeCollection If _child.Tag = SearchVal Then Return _child End If tmpNode = FindNode(_child.Nodes, SearchVal, SearchString) If Not tmpNode Is Nothing Then Return tmpNode End If Next Return Nothing End Function Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click Me.Close() End Sub Private Sub ToolStripButton8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnAnsprechpartnerNeu.Click Ansprechpartnerrow = LPDataSet.Ansprechpartner.NewRow Ansprechpartnerrow.AnsprechpartnerNr = dbkey.Get_NewKey("Ansprechpartner") Ansprechpartnerrow.Name = "*** Neu ***" Ansprechpartnerrow.FirmaNr = Me.TreeView1.SelectedNode.Tag Ansprechpartnerrow.Vorname = "" Ansprechpartnerrow.Tel = "" Ansprechpartnerrow.EMail = "" Ansprechpartnerrow.Erstellt_am = Now Ansprechpartnerrow.Mutierer = 1 Ansprechpartnerrow.Mutiert_am = Now Ansprechpartnerrow.Aktiv = True LPDataSet.Ansprechpartner.AddAnsprechpartnerRow(Ansprechpartnerrow) AnsprechpartnerTableAdapter.Update(LPDataSet.Ansprechpartner) Me.Refresh_Ansprechpartner(Me.TreeView1.SelectedNode.Tag) End Sub Private Sub TSBtnAnsprechpartnerSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnAnsprechpartnerSave.Click AnsprechpartnerTableAdapter.Update(Me.LPDataSet.Ansprechpartner) End Sub Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click Me.Close() End Sub Private Sub tbCtrlFirma_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tbCtrlFirma.SelectedIndexChanged Select Case Me.tbCtrlFirma.SelectedTab.Text Case "Berufe" Refresh_Berufe() Refresh_Firmenberufe() Refresh_LB_Ansprechpartner() Refresh_LB_Zeit() Case Else End Select End Sub Dim bt As New DataTable Private Sub Refresh_Berufe() Me.c1berfufe.DataSource = Nothing BerufeTableAdapter.FillByBezeichnung(LPDataSet.Beruf) Me.c1berfufe.DataSource = LPDataSet.Beruf Me.c1berfufe.DataMember = LPDataSet.Beruf.TableName MySpalten.Spaltentitel_aktualisieren(Me.c1berfufe, "Beruf", bt, "True") End Sub Private Sub Refresh_Firmenberufe() Me.c1FirmenBerufe.DataSource = Nothing FirmenberufTableadapter.FillByFirmaNr(LPDataSet.FirmaBeruf, Me.TreeView1.SelectedNode.Tag) Me.c1FirmenBerufe.DataSource = LPDataSet.FirmaBeruf Me.c1FirmenBerufe.DataMember = LPDataSet.FirmaBeruf.TableName MySpalten.Spaltentitel_aktualisieren_Optionaler_Aktiv_Filer(Me.c1FirmenBerufe, "Firmaberuf", LPDataSet.FirmaBeruf, "True") End Sub Private Sub Refresh_LB_Ansprechpartner() Dim daten As New LPDataSet.AnsprechpartnerDataTable AnsprechpartnerTableAdapter.FillByFirmaNrAktiv(daten, Me.TreeView1.SelectedNode.Tag) Me.lbAnsprechpartner.DataSource = daten Me.lbAnsprechpartner.DisplayMember = "Fullname" Me.lbAnsprechpartner.ValueMember = "Ansprechpartnernr" End Sub Private Sub Refresh_LB_Zeit() Dim daten As New LPDataSet.ZeitenDataTable ZeitTableAdapter.FillByAktiv(daten) Me.LbZeit.DataSource = daten Me.LbZeit.DisplayMember = "Bezeichnung" Me.LbZeit.ValueMember = "Zeitnr" End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click FirmaBerufRow = LPDataSet.FirmaBeruf.NewFirmaBerufRow FirmaBerufRow.FirmaBerufNr = dbkey.Get_NewKey("FirmaBeruf") FirmaBerufRow.FirmaNr = Me.TreeView1.SelectedNode.Tag FirmaBerufRow.Berufnr = Me.c1berfufe.Columns("Berufnr").Value FirmaBerufRow.AnsprechpartnerNr = Me.lbAnsprechpartner.SelectedValue FirmaBerufRow.ZeitNr = Me.LbZeit.SelectedValue FirmaBerufRow.Bemerkung = "" FirmaBerufRow.Aktiv = True FirmaBerufRow.Erstellt_am = Now FirmaBerufRow.Mutierer = 1 FirmaBerufRow.Mutiert_am = Now FirmaBerufRow.Anzahl = lbAnzahl.SelectedItem LPDataSet.FirmaBeruf.AddFirmaBerufRow(FirmaBerufRow) FirmenberufTableadapter.Update(LPDataSet.FirmaBeruf) Me.Refresh_Firmenberufe() End Sub Private Sub c1FirmenBerufe_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles c1FirmenBerufe.Leave Check_Changes_Firmenberufe() End Sub Private Sub Check_Changes_Firmenberufe() Dim t As New DataTable t = c1FirmenBerufe.DataSource If LPDataSet.FirmaBeruf.DataSet.HasChanges Then If MsgBox("Angebote Berufe wurde verändert. Wollen Sie die Änderungen speichern?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then FirmenberufTableadapter.Update(LPDataSet.FirmaBeruf) End If End If End Sub Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click Dim allg As New clsAllgemein Dim selectFirst As Boolean = False Dim ds As New DataSet Dim SQLconnect As New SQLite.SQLiteConnection() SQLconnect.ConnectionString = My.Settings.LPConnectionString & ";" SQLconnect.Open() Dim da As New SQLiteDataAdapter("", SQLconnect) Dim sqlcmd As New SQLiteCommand sqlcmd.Connection = SQLconnect sqlcmd.CommandType = CommandType.Text sqlcmd.CommandText = allg.Get_SQLAbfrage_Statement(1) da.SelectCommand = sqlcmd da.Fill(ds, "Daten") sqlcmd.Dispose() SQLconnect.Close() Exit Sub Dim report As New Report ' register the dataset report.RegisterData(ds) ' enable the "Employees" datasource programmatically. ' You can also do this in the "Report|Choose Report Data..." menu. report.GetDataSource("Daten").Enabled = True ' design the report report.Design() ' free resources used by report report.Dispose() End Sub Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click Dim f As New frmReportview f.MdiParent = Me.MdiParent f.Show() End Sub Private Sub TSBtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click firmarow = LPDataSet.Firma.FindByFirmaNr(Me.TreeView1.SelectedNode.Tag) firmarow.Aktiv = False firmarow.Mutiert_am = Now firmarow.Mutierer = 1 FirmaTableAdapter.Update(LPDataSet.Firma) Me.refresh_tree() End Sub Private Sub SpeichernToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click Try Me.TSBtnSave_Click(sender, e) Catch End Try End Sub Private Sub NeuerDatensatzToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles NeuerDatensatzToolStripMenuItem.Click Try Me.TSBtnSave_Click(sender, e) Catch End Try Me.TSBtnNew_Click(sender, e) End Sub Private Sub DatensatzLöschenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles DatensatzLöschenToolStripMenuItem.Click Try Me.TSBtnDelete_Click(sender, e) Catch ex As Exception End Try End Sub Private Sub SpeichernToolStripMenuItem1_Click(sender As System.Object, e As System.EventArgs) Handles SpeichernToolStripMenuItem1.Click Try TSBtnAnsprechpartnerSave_Click(sender, e) Catch End Try End Sub Private Sub NeuToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles NeuToolStripMenuItem.Click Try ToolStripButton8_Click(sender, e) Catch ex As Exception End Try End Sub Private Sub TSBtnAnsprechpartnerDelete_Click(sender As System.Object, e As System.EventArgs) Handles TSBtnAnsprechpartnerDelete.Click Try Me.C1Ansprechpartner.Columns("Aktiv").Value = False Catch End Try End Sub Private Sub LöschenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles LöschenToolStripMenuItem.Click Try TSBtnAnsprechpartnerDelete_Click(sender, e) Catch ex As Exception End Try End Sub Private Sub ToolStripButton3_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton3.Click Dim allg As New clsAllgemein Dim selectFirst As Boolean = False Dim ds As New DataSet Dim SQLconnect As New SQLite.SQLiteConnection() SQLconnect.ConnectionString = My.Settings.LPConnectionString & ";" SQLconnect.Open() Dim da As New SQLiteDataAdapter("", SQLconnect) Dim sqlcmd As New SQLiteCommand sqlcmd.Connection = SQLconnect sqlcmd.CommandType = CommandType.Text sqlcmd.CommandText = allg.Get_SQLAbfrage_Statement(5) da.SelectCommand = sqlcmd da.Fill(ds, "Daten") sqlcmd.Dispose() SQLconnect.Close() Dim xls As New XLSLib.clsXLSLib xls.Write_Excel(ds.Tables(0), True) End Sub Private Sub RegisterFirmaAnsprechpartnerToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles RegisterFirmaAnsprechpartnerToolStripMenuItem.Click Me.tbCtrlFirma.SelectedIndex = 0 End Sub Private Sub RegisterBerufeAnzeigenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles RegisterBerufeAnzeigenToolStripMenuItem.Click Me.tbCtrlFirma.SelectedIndex = 1 End Sub Private Sub NeuerBerufErfassenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles NeuerBerufErfassenToolStripMenuItem.Click Dim s As String Dim allg As New clsAllgemein Dim f As New frmNeuerBeruf f.ShowDialog() If f.DialogResult = Windows.Forms.DialogResult.OK Then Berufrow = LPDataSet.Beruf.NewBerufRow Dim newkey As Integer = allg.GetNextKey("Beruf", "Berufnr") Berufrow.Berufnr = newkey Berufrow.Bezeichnung = f.TextBox1.Text Berufrow.Lehrjahre = f.TextBox2.Text Berufrow.Anmerkung = f.TextBox3.Text Berufrow.Beschreibung = "" Berufrow.Aktiv = True Berufrow.Erstellt_am = Now Berufrow.Mutiert_am = Now Berufrow.Mutierer = 1 LPDataSet.Beruf.AddBerufRow(Berufrow) BerufeTableAdapter.Update(LPDataSet.Beruf) Me.Refresh_Berufe() Dim i As Integer For i = 0 To LPDataSet.Beruf.Rows.Count - 1 If LPDataSet.Beruf.Rows(i).Item(0) = newkey Then Me.c1berfufe.Bookmark = i Next End If End Sub Private Sub C1Ansprechpartner_LostFocus(sender As Object, e As System.EventArgs) Handles C1Ansprechpartner.LostFocus TSBtnAnsprechpartnerSave_Click(sender, e) End Sub End Class