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 Private Sub frmSchueler_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load refresh_Tree() Refresh_Berufe() End Sub Private Sub refresh_Tree() If Me.RadioButton1.Checked Then Me.TreeNachKlasse() Else Me.TreeNachSchueler() End Sub Private Sub Refresh_Berufe() BerufTableAdapter.Fill(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 TSBtnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnNew.Click 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 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) Refresh_SchuelerBeruf() 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 Dim savetag As String = Me.TreeView1.SelectedNode.Tag 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.refresh_Tree() Try Me.TreeView1.SelectedNode = Me.FindNode(Me.TreeView1.Nodes, savetag, "") Catch ex As Exception 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) Handles Button3.Click SchuelerberufTableAdapter.Update(lpdataset.SchuelerBeruf) End Sub Private Sub TSBtnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnDelete.Click 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() Dim KlasseAlt As Integer = 0 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() 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() 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() 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 End Class