Public Class frmSchueler Dim lpdataset As New LPDataSet Dim SchuelerTableAdatper As New LPDataSetTableAdapters.SchuelerTableAdapter Dim KlasseTableAdapter As New LPDataSetTableAdapters.KlasseTableAdapter Dim BerufTableAdapter As New LPDataSetTableAdapters.BerufTableAdapter Dim SchuelerberufTableAdapter As New LPDataSetTableAdapters.SchuelerBerufTableAdapter Dim Schuelerrow As LPDataSet.SchuelerRow Dim SchuelerBerufRow As LPDataSet.SchuelerBerufRow Dim dbkey As New clsdbkey Dim MySpalten As New Utils.Tabellenspalte Dim Allgemein As New clsAllgemein Dim Zuteilung As New clsZuteilung 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 If sender.name = "txtsuche" Then Me.FormdataChanged = False 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 frmSchueler_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load refresh_Tree() Refresh_Berufe() AddChanges(Me) Refresh_Zuteilung() Try Me.TreeView1.SelectedNode = Me.TreeView1.Nodes(0) Catch End Try End Sub Private Sub refresh_Tree() If Me.RadioButton1.Checked Then Me.TreeNachKlasse() Else Me.TreeNachSchueler() End Sub Private Sub Refresh_Berufe() BerufTableAdapter.FillByBezeichnung(lpdataset.Beruf) Me.C1Beruf.DataSource = lpdataset.Beruf Me.C1Beruf.DataMember = lpdataset.Beruf.TableName MySpalten.Spaltentitel_aktualisieren_Optionaler_Aktiv_Filer(Me.C1Beruf, "Beruf", lpdataset.Beruf, "True") End Sub Private Sub Refresh_SchuelerBeruf() Me.C1SchuelerBeruf.DataSource = Nothing SchuelerberufTableAdapter.FillBySchuelerNr(Me.lpdataset.SchuelerBeruf, Me.TreeView1.SelectedNode.Tag) Me.C1SchuelerBeruf.DataSource = lpdataset.SchuelerBeruf Me.C1SchuelerBeruf.DataMember = lpdataset.SchuelerBeruf.TableName MySpalten.Spaltentitel_aktualisieren_Optionaler_Aktiv_Filer(Me.C1SchuelerBeruf, "SchuelerBeruf", lpdataset.SchuelerBeruf, "True") End Sub Private Sub Refresh_Zuteilung() Try Dim dt As New DataTable Me.C1Zuteilung.DataSource = Nothing dt.Rows.Clear() Zuteilung.Get_Uebersicht(dt, Me.TreeView1.SelectedNode.Tag) Me.C1Zuteilung.DataSource = dt Me.C1Zuteilung.DataMember = dt.TableName Me.C1Zuteilung.Columns("Aktiv").FilterText = True Catch End Try End Sub Private Sub TSBtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnNew.Click If Me.Check_Changes = False Then Exit Sub Schuelerrow = lpdataset.Schueler.NewSchuelerRow Dim newkey As Integer = dbkey.Get_NewKey("Schueler") Schuelerrow.SchuelerNr = newkey Schuelerrow.Name = "*** Neu ***" Schuelerrow.Vorname = "" Schuelerrow.KlasseNr = 0 Schuelerrow.Erstellt_am = Now Schuelerrow.Mutiert_am = Now Schuelerrow.Mutierer = 1 Schuelerrow.Aktiv = True lpdataset.Schueler.AddSchuelerRow(Schuelerrow) SchuelerTableAdatper.Update(lpdataset.Schueler) Me.refresh_Tree() Try Me.TreeView1.SelectedNode = Me.FindNode(Me.TreeView1.Nodes, newkey, "") Catch ex As Exception End Try Me.txtName.Focus() End Sub Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect If Check_Changes() = False Then Exit Sub refresh_details(Me.TreeView1.SelectedNode.Tag) Refresh_SchuelerBeruf() Refresh_Zuteilung() Me.FormdataChanged = False End Sub Private Sub refresh_details(ByVal Firmanr As Integer) Try If Me.TreeView1.SelectedNode.Tag < 0 Then Me.Panel1.Enabled = False Me.SplitContainer2.Enabled = False Else Me.Panel1.Enabled = True Me.SplitContainer2.Enabled = True End If Me.ComboBox1.DataSource = Nothing KlasseTableAdapter.Fill(lpdataset.Klasse) Me.ComboBox1.DataSource = lpdataset.Klasse Me.ComboBox1.DisplayMember = "Bezeichnung" Me.ComboBox1.ValueMember = "KlasseNr" Schuelerrow = lpdataset.Schueler.FindBySchuelerNr(Me.TreeView1.SelectedNode.Tag) Me.txtName.Text = Schuelerrow.Name Me.txtVorname.Text = Schuelerrow.Vorname Me.ComboBox1.SelectedValue = Schuelerrow.KlasseNr Me.cbaktiv.Checked = Schuelerrow.Aktiv = True Catch ex As Exception 'MsgBox(ex.Message) End Try 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() Try Dim savetag As Integer = Me.TreeView1.SelectedNode.Tag Me.TreeView1.SelectedNode.Text = savetag Schuelerrow = lpdataset.Schueler.FindBySchuelerNr(Me.TreeView1.SelectedNode.Tag) Schuelerrow.Name = Me.txtName.Text Schuelerrow.Vorname = Me.txtVorname.Text Schuelerrow.KlasseNr = Me.ComboBox1.SelectedValue Schuelerrow.Mutiert_am = Now Schuelerrow.Aktiv = Me.cbaktiv.Checked = True SchuelerTableAdatper.Update(lpdataset.Schueler) Me.FormdataChanged = False Me.refresh_Tree() Try Me.TreeView1.SelectedNode = Me.FindNode(Me.TreeView1.Nodes, savetag, "") Catch ex As Exception End Try Catch End Try End Sub Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click Me.Close() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click SchuelerBerufRow = lpdataset.SchuelerBeruf.NewRow SchuelerBerufRow.SchuelerBerufNr = dbkey.Get_NewKey("SchuelerBeruf") SchuelerBerufRow.SchuelerNr = Me.TreeView1.SelectedNode.Tag SchuelerBerufRow.BerufNr = Me.C1Beruf.Columns("Berufnr").Value SchuelerBerufRow.Bemerkung = "" SchuelerBerufRow.Prioritaet = Allgemein.GetLastPrio(Me.TreeView1.SelectedNode.Tag) + 1 SchuelerBerufRow.Erstellt_am = Now SchuelerBerufRow.Mutiert_am = Now SchuelerBerufRow.Mutierer = 1 SchuelerBerufRow.Aktiv = True lpdataset.SchuelerBeruf.AddSchuelerBerufRow(SchuelerBerufRow) SchuelerberufTableAdapter.Update(lpdataset.SchuelerBeruf) Refresh_SchuelerBeruf() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) SchuelerberufTableAdapter.Update(lpdataset.SchuelerBeruf) End Sub Private Sub TSBtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click If Me.Check_Changes = False Then Exit Sub Schuelerrow = lpdataset.Schueler.FindBySchuelerNr(Me.TreeView1.SelectedNode.Tag) Schuelerrow.Aktiv = False Schuelerrow.Mutiert_am = Now Schuelerrow.Mutierer = 1 SchuelerTableAdatper.Update(lpdataset.Schueler) Me.refresh_Tree() End Sub Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) TreeNachKlasse() End Sub Private Sub TreeNachKlasse() Try Dim KlasseAlt As Integer = -1 Dim tnroot As TreeNode SchuelerTableAdatper.FillByKlasse(Me.lpdataset.Schueler) Me.TreeView1.Nodes.Clear() For Each r As DataRow In lpdataset.Schueler.Rows If KlasseAlt <> r.Item("Klassenr") Then tnroot = New TreeNode tnroot.Text = r.Item("Klasse") tnroot.Tag = r.Item("Klassenr") * -1 tnroot.ImageIndex = 2 TreeView1.Nodes.Add(tnroot) KlasseAlt = r.Item("Klassenr") End If Dim tn As New TreeNode tn.Text = r.Item("Name") + " " + r.Item("Vorname") tn.Tag = r.Item("Schuelernr") If r.Item("Aktiv") = True Then tn.SelectedImageIndex = 0 tn.ImageIndex = 0 Else tn.SelectedImageIndex = 1 tn.ImageIndex = 1 End If 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 tnroot.Nodes.Add(tn) Next Me.TreeView1.ExpandAll() Catch ex As Exception End Try End Sub Private Sub TreeNachSchueler() SchuelerTableAdatper.FillByName(Me.lpdataset.Schueler) Me.TreeView1.Nodes.Clear() For Each r As DataRow In lpdataset.Schueler.Rows Dim tn As New TreeNode tn.Text = r.Item("Name") + " " + r.Item("Vorname") tn.Tag = r.Item("Schuelernr") If r.Item("Aktiv") = True Then tn.SelectedImageIndex = 0 tn.ImageIndex = 0 Else tn.SelectedImageIndex = 1 tn.ImageIndex = 1 End If 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 Me.TreeView1.Nodes.Add(tn) Next End Sub Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.TreeNachSchueler() End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged If Me.RadioButton1.Checked = True Then Me.TreeNachKlasse() Try Me.TreeView1.SelectedNode = Me.TreeView1.Nodes(0) Catch End Try Me.FormdataChanged = False End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged If Me.RadioButton2.Checked Then Me.TreeNachSchueler() Try Me.TreeView1.SelectedNode = Me.TreeView1.Nodes(0) Catch End Try Me.FormdataChanged = False 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 txtBerufNr_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtBerufNr.KeyDown If e.KeyCode = Keys.Enter Then Try If Allgemein.Check_Beruf(Me.txtBerufNr.Text) = False Then MsgBox("Eingegebener Beruf (Berufnr) ist nicht vorhanden.", MsgBoxStyle.Critical) Me.txtBerufNr.SelectAll() Else SchuelerBerufRow = lpdataset.SchuelerBeruf.NewRow SchuelerBerufRow.SchuelerBerufNr = dbkey.Get_NewKey("SchuelerBeruf") SchuelerBerufRow.SchuelerNr = Me.TreeView1.SelectedNode.Tag SchuelerBerufRow.BerufNr = Me.txtBerufNr.Text SchuelerBerufRow.Bemerkung = "" SchuelerBerufRow.Prioritaet = Allgemein.GetLastPrio(Me.TreeView1.SelectedNode.Tag) + 1 SchuelerBerufRow.Erstellt_am = Now SchuelerBerufRow.Mutiert_am = Now SchuelerBerufRow.Mutierer = 1 SchuelerBerufRow.Aktiv = True lpdataset.SchuelerBeruf.AddSchuelerBerufRow(SchuelerBerufRow) SchuelerberufTableAdapter.Update(lpdataset.SchuelerBeruf) Refresh_SchuelerBeruf() Me.txtBerufNr.SelectAll() End If Catch End Try End If End Sub Private Sub ctxMenuZuteilung_Opening(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles ctxMenuZuteilung.Opening Me.ZuteilenToolStripMenuItem.Enabled = False If Zuteilung.Ist_Zugeteilt(Me.C1SchuelerBeruf.Columns("SchuelerBerufNr").Value) = False Then Me.ZuteilenToolStripMenuItem.Enabled = True End Sub Private Sub Button3_Click_1(sender As System.Object, e As System.EventArgs) Dim dt As New DataTable Dim dtchanges As New DataTable dt = Me.C1Zuteilung.DataSource dtchanges = dt.GetChanges For Each r As DataRow In dtchanges.Rows Zuteilung.Update_Zuteilung(r) Next End Sub Private Sub ZuteilenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ZuteilenToolStripMenuItem.Click Dim summe_verfuegbar As Integer = Zuteilung.Summe_Verfügbare_Berufe(Me.C1SchuelerBeruf.Columns("Berufnr").Value) Dim summe_zugeteilt As Integer = Zuteilung.Summe_Zugeteilter_Berufe(Me.C1SchuelerBeruf.Columns("Berufnr").Value) If summe_verfuegbar <= summe_zugeteilt Then MsgBox("Vom gewählten Beruf sind keine Plätze mehr verfügbar.", MsgBoxStyle.Information) Exit Sub End If Dim dtfreieplätze As New DataTable dtfreieplätze = Zuteilung.Get_Freie_Plätze((Me.C1SchuelerBeruf.Columns("Berufnr").Value)) Dim f As New FrmEinzelzuteilung(Me.C1SchuelerBeruf.Columns("Berufnr").Value, Me.C1SchuelerBeruf.Columns("SchuelerBerufnr").Value, Me.TreeView1.SelectedNode.Tag, Me.C1SchuelerBeruf.Columns("Prioritaet").Value) f.Text = "Freie Plätze für " + Me.C1SchuelerBeruf.Columns("Beruf").Value f.ShowDialog() If f.DialogResult = Windows.Forms.DialogResult.OK Then Me.Refresh_Zuteilung() End If Try refresh_listen() Catch ex As Exception End Try End Sub Private Sub C1Beruf_DoubleClick(sender As Object, e As System.EventArgs) Handles C1Beruf.DoubleClick Me.Button1_Click(sender, e) End Sub Private Sub C1Beruf_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles C1Beruf.MouseDown Me.C1Beruf.Bookmark = Me.C1Beruf.RowContaining(e.Y) End Sub Private Sub C1SchuelerBeruf_ClientSizeChanged(sender As Object, e As System.EventArgs) Handles C1SchuelerBeruf.ClientSizeChanged End Sub Private Sub C1SchuelerBeruf_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles C1SchuelerBeruf.MouseDown Try Me.C1SchuelerBeruf.Bookmark = Me.C1SchuelerBeruf.RowContaining(e.Y) refresh_listen() Catch End Try End Sub Sub refresh_listen() Try If Globals.OffenePlaetze_Visible = True Then Dim dtfreieplätze As New DataTable dtfreieplätze = Zuteilung.Get_Freie_Plätze((Me.C1SchuelerBeruf.Columns("Berufnr").Value)) If Globals.OffenePlaetze_Visible = False Then Else f.Refresh_Data(dtfreieplätze) End If End If Catch End Try Try If Globals.ReserviertePlaetze_Visible = True Then Dim dtreservierteplärte As New DataTable dtreservierteplärte = Zuteilung.Get_Reservierte_Plätze((Me.C1SchuelerBeruf.Columns("Berufnr").Value)) f1.Refresh_Data(dtreservierteplärte) End If Catch End Try End Sub Private Sub C1Zuteilung_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles C1Zuteilung.MouseDown Me.C1Zuteilung.Bookmark = Me.C1Zuteilung.RowContaining(e.Y) End Sub Private Sub ZuteilungLöschenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ZuteilungLöschenToolStripMenuItem.Click Try Dim dt As New DataTable dt = Me.C1Zuteilung.DataSource For Each r As DataRow In dt.Rows If r.Item("eintragnr") = C1Zuteilung.Columns("Eintragnr").Value Then r.Item("Aktiv") = False dt.AcceptChanges() Zuteilung.Update_Zuteilung(r) Exit For End If Next Me.Refresh_Zuteilung() dt.Dispose() Catch Finally End Try Try refresh_listen() Catch ex As Exception End Try End Sub Private Sub BerufswahlLöschenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles BerufswahlLöschenToolStripMenuItem.Click Try If Zuteilung.SchuelerBeruf_Zugeteilt(Me.C1SchuelerBeruf.Columns("Schuelerberufnr").Value) = True Then MsgBox("Berufzuteilung kann nicht gelöscht werden. Bitte zuerst die Zuteilung zur Firma löschen.", MsgBoxStyle.Critical) Exit Sub End If SchuelerBerufRow = lpdataset.SchuelerBeruf.FindBySchuelerBerufNr(Me.C1SchuelerBeruf.Columns("Schuelerberufnr").Value) SchuelerBerufRow.Mutiert_am = Now SchuelerBerufRow.Aktiv = False SchuelerberufTableAdapter.Update(lpdataset.SchuelerBeruf) Refresh_SchuelerBeruf() Catch ex As Exception End Try End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click BerufswahlLöschenToolStripMenuItem_Click(sender, e) End Sub Private Sub Button3_Click_2(sender As System.Object, e As System.EventArgs) Handles Button3.Click SchuelerberufTableAdapter.Update(lpdataset.SchuelerBeruf) End Sub Private Sub TreeView1_BeforeSelect(sender As Object, e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeSelect Check_Changes() End Sub Private Sub SpeichernToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click Try Save_Data() Catch End Try End Sub Private Sub NeuerDatensatzToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles NeuerDatensatzToolStripMenuItem.Click Try Save_Data() Catch Finally TSBtnNew_Click(sender, e) End Try End Sub Private Sub DatensatzLöschenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles DatensatzLöschenToolStripMenuItem.Click Me.TSBtnDelete_Click(sender, e) End Sub Private Sub ToolStripMenuItem2_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripMenuItem2.Click Me.Close() End Sub Private Sub C1SchuelerBeruf_Click(sender As System.Object, e As System.EventArgs) Handles C1SchuelerBeruf.Click End Sub Private Sub btnsuche_Click(sender As System.Object, e As System.EventArgs) Handles btnsuche.Click Me.Check_Changes() Dim s As String = "%" + Me.txtsuche.Text + "%" SchuelerTableAdatper.FillByNamensuche(Me.lpdataset.Schueler, s) Me.TreeView1.Nodes.Clear() For Each r As DataRow In lpdataset.Schueler.Rows Dim tn As New TreeNode tn.Text = r.Item("Name") + " " + r.Item("Vorname") tn.Tag = r.Item("Schuelernr") If r.Item("Aktiv") = True Then tn.SelectedImageIndex = 0 tn.ImageIndex = 0 Else tn.SelectedImageIndex = 1 tn.ImageIndex = 1 End If 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 Me.TreeView1.Nodes.Add(tn) Next If Me.TreeView1.Nodes.Count > 0 Then Me.TreeView1.SelectedNode = TreeView1.Nodes(0) Me.FormdataChanged = False End Sub Private Sub txtsuche_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtsuche.KeyUp Me.btnsuche_Click(sender, e) End Sub Private Sub ListeOffenePlätzeAnzeigenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ListeOffenePlätzeAnzeigenToolStripMenuItem.Click Dim dtfreieplätze As New DataTable dtfreieplätze = Zuteilung.Get_Freie_Plätze((Me.C1SchuelerBeruf.Columns("Berufnr").Value)) If Globals.OffenePlaetze_Visible = False Then f = New frmOffenePlaetzen f.MdiParent = Me.MdiParent f.Show() f.Refresh_Data(dtfreieplätze) Globals.OffenePlaetze_Visible = True End If End Sub Private Sub ListeReserviertePlätzeAnzeigenToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ListeReserviertePlätzeAnzeigenToolStripMenuItem.Click Dim dtfreieplätze As New DataTable dtfreieplätze = Zuteilung.Get_Reservierte_Plätze((Me.C1SchuelerBeruf.Columns("Berufnr").Value)) If Globals.ReserviertePlaetze_Visible = False Then f1 = New frm_ReserviertePlaetze f1.MdiParent = Me.MdiParent f1.Show() f1.Refresh_Data(dtfreieplätze) Globals.ReserviertePlaetze_Visible = True End If End Sub Public Sub Search(ByVal nr As Integer) Me.RadioButton2.Checked = True For Each n As TreeNode In Me.TreeView1.Nodes If n.Tag = nr Then Me.TreeView1.SelectedNode = n Next End Sub End Class