Imports System.Web.UI.WebControls Imports System.Web.Configuration Imports Telerik.Web.UI Imports System.Data.SqlClient Imports System.Configuration Imports Telerik.Web.UI.RadWebControl Public Class Schueler Inherits System.Web.UI.Page Dim schuelerstatus1 As Integer = 0 Private Sub Schueler_InitComplete(sender As Object, e As System.EventArgs) Handles Me.InitComplete End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then Me.chkAlleSchuler.Checked = False Me.chkAlleSchuler.Visible = False End If If Session.Item("Admin") = "True" Then Load_Admin() Else 'Session("Lehrer") = 80 End If Me.lblklassestatus.Text = "" Me.Form.DefaultButton = Me.btnInsertBeruf.UniqueID RadWindowManager1.Windows.Clear() If Me.RadListBox1.Items.Count < 1 Then Me.txtname.Enabled = False Me.txtvorname.Enabled = False Me.txtBemerkung.Enabled = False Me.RadButton3.Enabled = False Me.RadButton1.Enabled = False Me.Panel3.Enabled = False Me.RadGridSchuelerberuf.Enabled = False End If End Sub Protected Sub Load_Admin() Me.SqlDataSource1.SelectCommand = "SELECT [KlasseNr], [Bezeichnung] FROM [Klasse] WHERE aktiv=1" Me.chkAlleSchuler.Visible = True End Sub Protected Sub RadComboBox1_SelectedIndexChanged(sender As Object, e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles RadComboBox1.SelectedIndexChanged Me.RadListBox1.DataBind() Try Me.RadListBox1.SelectedIndex = 0 refresh_data(Me.RadListBox1.SelectedValue) Update_Klassen_Status() Catch ex As Exception Me.txtname.Text = "" Me.txtvorname.Text = "" Me.txtBemerkung.Text = "" Update_Klassen_Status() End Try End Sub Private Sub refresh_data(ByVal schuelernr As Integer) Dim dh As New clsDatahandling Dim ds As New DataSet ds = dh.Get_Tabledata("select * from schueler where schuelernr=" + schuelernr.ToString, False, True) Me.txtname.Text = ds.Tables(0).Rows(0).Item("name") Me.txtvorname.Text = ds.Tables(0).Rows(0).Item("vorname") Me.txtbemerkung.Text = ds.Tables(0).Rows(0).Item("bemerkung").ToString Me.chkaktiv.Checked = ds.Tables(0).Rows(0).Item("aktiv") = True Me.cbklasse.SelectedValue = ds.Tables(0).Rows(0).Item("Klassenr") Me.cbKlassentyp.SelectedValue = ds.Tables(0).Rows(0).Item("klassentyp") Me.RadGridSchuelerberuf.DataBind() If RadGridSchuelerberuf.MasterTableView.Items.Count > 0 Then Me.cbKlassentyp.Enabled = False Else Me.cbKlassentyp.Enabled = True selectentry(schuelernr) Me.txtname.Focus() Me.txtname.Enabled = True Me.txtvorname.Enabled = True Me.txtBemerkung.Enabled = True Me.RadButton3.Enabled = True Me.RadButton1.Enabled = True End Sub Protected Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click If (Trim(Me.txtname.Text) = "" Or Trim(Me.txtvorname.Text) = "") And Me.chkaktiv.Checked = True Then Show_Message(1, "Name und Vorname vom Schüler sind zwingend zu erfassen") Exit Sub End If Dim ds As New DataSet Dim dh As New clsDatahandling ds = dh.Get_Tabledata("Select * from schuelerberuf where aktiv=1 and schuelernr=" + Me.RadListBox1.SelectedValue, False, True) If ds.Tables(0).Rows.Count > 0 Then ds.Tables.Clear() ds = dh.Get_Tabledata("Select klassentyp from schueler where schuelernr=" + Me.RadListBox1.SelectedValue, False, True) If ds.Tables(0).Rows(0).Item(0) <> Me.cbKlassentyp.SelectedValue Then Show_Message(1, "Die Stufe kann nicht angepasst werden, sofern Berufe dem Schüler zugeordnet sind.") Exit Sub End If End If Dim s As String = Me.RadListBox1.SelectedItem.Text Dim sn = Trim(Me.txtname.Text) + " " + Trim(Me.txtvorname.Text) If sn <> s And Trim(s) <> "*** Neuer Schüler" Then Show_Message(4, "Der Schülername wurde angepasst. Neuer Schüler erfassen (OK) oder sollen die Daten gespeichert werden (cancel)") Else save_schueler() End If Update_Schueler_Status() Me.Panel3.Enabled = True Me.RadGridSchuelerberuf.Enabled = True End Sub Sub save_schueler() Dim i As Integer i = Me.RadListBox1.SelectedValue Dim dh As New clsDatahandling dh.UpdateTable("schueler", "Name", Me.txtname.Text, True, "schuelernr", Me.RadListBox1.SelectedValue) dh.UpdateTable("schueler", "VorName", Me.txtvorname.Text, True, "schuelernr", Me.RadListBox1.SelectedValue) dh.UpdateTable("schueler", "bemerkung", Me.txtBemerkung.Text, True, "schuelernr", Me.RadListBox1.SelectedValue) If Me.chkaktiv.Checked = True Then dh.UpdateTable("schueler", "Aktiv", 1, False, "schuelernr", Me.RadListBox1.SelectedValue) Else dh.UpdateTable("schueler", "Aktiv", 0, False, "schuelernr", Me.RadListBox1.SelectedValue) End If dh.UpdateTable("schueler", "klassenr", Me.cbklasse.SelectedValue, False, "schuelernr", Me.RadListBox1.SelectedValue) dh.UpdateTable("schueler", "klassentyp", Me.cbKlassentyp.SelectedValue, False, "schuelernr", Me.RadListBox1.SelectedValue) Me.Refresh_RadListBox1() 'Me.RadListBox1.DataBind() Try 'Me.RadListBox1.SelectedIndex = i refresh_data(i) Catch ex As Exception Try Me.RadListBox1.SelectedIndex = 0 refresh_data(Me.RadListBox1.SelectedValue) Catch ex1 As Exception End Try End Try Update_Klassen_Status() End Sub Private Sub RadListBox1_ItemDataBound(sender As Object, e As Telerik.Web.UI.RadListBoxItemEventArgs) Handles RadListBox1.ItemDataBound If TypeOf e.Item Is RadListBoxItem Then Dim dataItem As RadListBoxItem = TryCast(e.Item, RadListBoxItem) Dim dh As New clsDatahandling Dim s As String s = dh.Verify_Schueler(dataItem.Value) If s = "Schüler vollständig erfasst." Then Else dataItem.ForeColor = System.Drawing.Color.Red schuelerstatus1 = schuelerstatus1 + 1 End If End If End Sub Private Sub RadListBox1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles RadListBox1.SelectedIndexChanged refresh_data(Me.RadListBox1.SelectedValue.ToString) Update_Klassen_Status() Update_Schueler_Status() If Me.RadListBox1.Items.Count > 0 Then Me.Panel3.Enabled = True Me.RadGridSchuelerberuf.Enabled = True End If End Sub Protected Sub btnInsertBeruf_Click(sender As Object, e As EventArgs) Handles btnInsertBeruf.Click Dim i As Integer i = Me.RadListBox1.SelectedValue Dim errormessage As String = "" errormessage = Validate_Form() If errormessage <> "" Then Show_Message(1, errormessage) Exit Sub End If Dim dh As New clsDatahandling Try If Me.txtBerufnr.Text <> "" Then Me.cbBeruf.SelectedValue = Me.txtBerufnr.Text Catch ex As Exception 'Me.C1Dialog1.Visible = True Exit Sub End Try Dim ds As New DataSet ds = dh.Get_Tabledata("Select * from firmaberuf where aktiv=1 and klassenr>=" + Me.cbKlassentyp.SelectedValue.ToString + " and berufnr=" + Me.cbBeruf.SelectedValue.ToString, False, True) If ds.Tables(0).Rows.Count = 0 And dh.Get_Option(25) = "Ja" Then Show_Message(1, "Der gewählte Beruf steht für die Schulstufe (" + Me.cbKlassentyp.Text + ") nicht zur Verfügung.") Exit Sub End If ds.Tables.Clear() ds = dh.Get_Tabledata("Select * from schuelerberuf where aktiv=1 and berufnr=" + Me.cbBeruf.SelectedValue.ToString + " and schuelernr=" + Me.RadListBox1.SelectedValue.ToString, False, True) If ds.Tables(0).Rows.Count > 0 Then Show_Message(1, "Der gewählte Beruf wurde dem Schüler bereits zugeordnet.") Exit Sub End If Dim key As Integer = dh.Insert_new_record("Schuelerberuf", "Schuelerberufnr") Dim prio As Integer = dh.Get_Last_Schulerberuf_Priority_By_Schuler(Me.RadListBox1.SelectedValue) dh.UpdateTable("Schuelerberuf", "Schuelernr", Me.RadListBox1.SelectedValue, False, "Schuelerberufnr", key) dh.UpdateTable("Schuelerberuf", "Berufnr", Me.cbBeruf.SelectedValue, False, "Schuelerberufnr", key) dh.UpdateTable("Schuelerberuf", "Prioritaet", prio, False, "Schuelerberufnr", key) If Me.txtBerufnr.Text <> "" Then Me.txtBerufnr.Text = "" Me.txtBerufnr.Focus() End If Me.RadGridSchuelerberuf.DataBind() Update_Klassen_Status() Update_Schueler_Status() Me.RadListBox1.DataBind() Me.RadListBox1.SelectedValue = i If RadGridSchuelerberuf.MasterTableView.Items.Count > 0 Then Me.cbKlassentyp.Enabled = False Else Me.cbKlassentyp.Enabled = True End Sub Private Function Validate_Form() As String Dim s As String = "" If Me.RadListBox1.SelectedValue Is System.DBNull.Value Then If s <> "" Then s = s + "
" s = s + "- Es wurde kein Schüler ausgewählt" End If If Me.RadListBox1.SelectedValue = "" Then If s <> "" Then s = s + "
" s = s + "- Es wurde kein Schüler ausgewählt" End If Try If Me.txtBerufnr.Text <> "" Then Me.cbBeruf.SelectedValue = Me.txtBerufnr.Text If Me.cbBeruf.SelectedValue <> Me.txtBerufnr.Text Then If s <> "" Then s = s + "
" s = s + "- Die eingegebene Berufsnummer ist ungültig" End If End If Catch ex As Exception If s <> "" Then s = s + "
" s = s + "- Die eingegebene Berufsnummer ist ungültig" End Try If s <> "" Then s = "Folgende Fehler sind vorhanden:" + "
" + s Return s End Function Sub neuer_schueler() Dim dh As New clsDatahandling Dim i As Integer i = dh.Insert_Schueler(Me.RadComboBox1.SelectedValue, Me.cbKlassentyp.SelectedValue) If i > -1 Then Me.RadListBox1.DataBind() Me.refresh_data(i) End If End Sub Protected Sub RadButton2_Click(sender As Object, e As EventArgs) Handles btnneuerschueler.Click neuer_schueler() Me.txtname.Enabled = True Me.txtvorname.Enabled = True Me.txtBemerkung.Enabled = True Me.RadButton3.Enabled = True Me.RadButton1.Enabled = True Update_Klassen_Status() Me.txtname.Focus() Me.lblschuelerstatus.Text = "" Me.txtname.SelectionOnFocus = SelectionOnFocus.SelectAll Me.Panel3.Enabled = False Me.RadGridSchuelerberuf.Enabled = False End Sub Protected Sub selectentry(ByVal nr As Integer) Dim isselected As Boolean = False For Each item As RadListBoxItem In Me.RadListBox1.Items item.Selected = False Next For Each item As RadListBoxItem In Me.RadListBox1.Items If item.Value = nr Then item.Selected = True isselected = True End If Next If Not isselected Then Me.RadListBox1.SelectedIndex = 0 End Sub Protected Sub chkAlleSchuler_CheckedChanged(sender As Object, e As EventArgs) Handles chkAlleSchuler.CheckedChanged Refresh_RadListBox1() End Sub Protected Sub Refresh_RadListBox1() If chkAlleSchuler.Checked = True Then Me.SqlDataSource2.SelectCommand = "select Schuelernr, name+' '+vorname as Schuelername from schueler where aktiv=1 order by name, vorname" Else Me.SqlDataSource2.SelectCommand = "select Schuelernr, name+' '+vorname as Schuelername from schueler where aktiv=1 and klassenr=@klassenr order by name, vorname" End If Me.RadListBox1.DataBind() End Sub Protected Sub RadButton2_Click2(sender As Object, e As EventArgs) Handles RadButton2.Click Response.Redirect("~/lehrer/stammdaten.aspx") End Sub Protected Sub Update_Klassen_Status() Dim dh As New clsDatahandling Me.lblklassestatus.Text = dh.verify_klasse(Me.RadComboBox1.SelectedValue) If Me.lblklassestatus.Text = "Klasse komplett erfasst" Then Me.lblklassestatus.ForeColor = Drawing.Color.Green Else Me.lblklassestatus.ForeColor = Drawing.Color.Red End If End Sub Protected Sub Update_Schueler_Status() Dim dh As New clsDatahandling Dim ds As New DataSet Me.lblschuelerstatus.Text = dh.Verify_Schueler(Me.RadListBox1.SelectedValue) If lblschuelerstatus.Text = "Schüler vollständig erfasst." Then lblschuelerstatus.ForeColor = Drawing.Color.Green Else lblschuelerstatus.ForeColor = Drawing.Color.Red End If End Sub Protected Sub RadButton3_Click(sender As Object, e As EventArgs) Handles RadButton3.Click Show_Message(3, "Schüler wirklich löschen?") End Sub Protected Sub Show_Message(ByVal type As Integer, ByVal meldung As String) Dim image1 As String Select Case type Case 1 image1 = WebConfigurationManager.AppSettings("Imagepath") + "Error.png" RadWindowManager1.RadAlert(meldung, 330, 100, "Fehler", "alertCallBackFnError", image1) Case 2 image1 = WebConfigurationManager.AppSettings("Imagepath") + "Info1.png" RadWindowManager1.RadAlert(meldung, 330, 100, "Fehler", "alertCallBackFnError", image1) Case 3 image1 = WebConfigurationManager.AppSettings("Imagepath") + "Info1.png" RadWindowManager1.RadConfirm(meldung, "ConfirmCallBackFn", 330, 100, Nothing, "Schüler löschen?") Case 4 image1 = WebConfigurationManager.AppSettings("Imagepath") + "Info1.png" RadWindowManager1.RadConfirm(meldung, "ConfirmCallBackFn1", 330, 100, Nothing, "Schülerdaten?") End Select End Sub Private Sub RadGridSchuelerberuf_DeleteCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGridSchuelerberuf.DeleteCommand Update_Schueler_Status() If RadGridSchuelerberuf.MasterTableView.Items.Count > 0 Then Me.cbKlassentyp.Enabled = False Else Me.cbKlassentyp.Enabled = True End Sub Private Sub RadGridSchuelerberuf_ItemUpdated(sender As Object, e As Telerik.Web.UI.GridUpdatedEventArgs) Handles RadGridSchuelerberuf.ItemUpdated Update_Schueler_Status() If RadGridSchuelerberuf.MasterTableView.Items.Count > 0 Then Me.cbKlassentyp.Enabled = False Else Me.cbKlassentyp.Enabled = True End Sub Private Sub RadGridSchuelerberuf_UpdateCommand(sender As Object, e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGridSchuelerberuf.UpdateCommand Update_Schueler_Status() If RadGridSchuelerberuf.MasterTableView.Items.Count > 0 Then Me.cbKlassentyp.Enabled = False Else Me.cbKlassentyp.Enabled = True End Sub Protected Sub RadButton4_Click(sender As Object, e As EventArgs) Handles RadButton4.Click Response.Redirect("~/lehrer/lehrerreport.aspx") End Sub Private Sub RadAjaxManager1_AjaxRequest(sender As Object, e As Telerik.Web.UI.AjaxRequestEventArgs) Handles RadAjaxManager1.AjaxRequest If e.Argument.ToString = "ok" Then Me.chkaktiv.Checked = False save_schueler() Response.Redirect("~/Lehrer/Schueler.aspx") If Me.RadListBox1.Items.Count < 1 Then Response.Redirect("~/Lehrer/Schueler.aspx") Me.txtname.Text = "" Me.txtvorname.Text = "" Me.lblschuelerstatus.Text = "" Me.txtname.Enabled = False Me.txtvorname.Enabled = False Me.txtBemerkung.Text = "" Me.txtBemerkung.Enabled = False Me.RadButton3.Enabled = False Me.RadButton1.Enabled = False Me.Panel3.Enabled = False Me.RadGridSchuelerberuf.Enabled = False Else Me.lblschuelerstatus.Text = "" Me.refresh_data(Me.RadListBox1.SelectedValue) End If End If If e.Argument.ToString = "save" Then save_schueler() If e.Argument.ToString = "neu" Then Dim sname As String, svorname As String, sbemerkung As String, IKLASSE As Integer, IKLASSENTYP As Integer sname = Me.txtname.Text.ToString svorname = Me.txtvorname.Text.ToString sbemerkung = Me.txtBemerkung.Text.ToString IKLASSE = Me.cbklasse.SelectedValue IKLASSENTYP = Me.cbKlassentyp.SelectedValue neuer_schueler() Me.txtname.Text = sname Me.txtvorname.Text = svorname Me.txtBemerkung.Text = sbemerkung Me.cbKlassentyp.SelectedValue = IKLASSENTYP Me.cbklasse.SelectedValue = IKLASSE save_schueler() End If End Sub Protected Sub RadGridSchuelerberuf_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles RadGridSchuelerberuf.NeedDataSource End Sub Private Sub RadGridSchuelerberuf_ItemDeleted(sender As Object, e As Telerik.Web.UI.GridDeletedEventArgs) Handles RadGridSchuelerberuf.ItemDeleted Dim i As Integer = Me.RadListBox1.SelectedValue Me.Update_Schueler_Status() Me.RadListBox1.DataBind() Me.RadListBox1.SelectedValue = i End Sub Protected Sub cbBeruf_SelectedIndexChanged(sender As Object, e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles cbBeruf.SelectedIndexChanged Me.txtBerufnr.Text = "" End Sub End Class