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