You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

442 lines
18 KiB

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 + "<br/>"
s = s + "- Es wurde kein Schüler ausgewählt"
End If
If Me.RadListBox1.SelectedValue = "" Then
If s <> "" Then s = s + "<br/>"
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 + "<br/>"
s = s + "- Die eingegebene Berufsnummer ist ungültig"
End If
End If
Catch ex As Exception
If s <> "" Then s = s + "<br/>"
s = s + "- Die eingegebene Berufsnummer ist ungültig"
End Try
If s <> "" Then s = "Folgende Fehler sind vorhanden:" + "<br/>" + 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