Imports System.ComponentModel Imports System.Reflection Imports System Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Public Class DataClass Dim m_connectionstring As String Property ConnectionString As String Get ConnectionString = m_connectionstring End Get Set(value As String) m_connectionstring = value Update_Connectionstring() End Set End Property Dim m_Mitarbeiternr As Integer Property Mitarbeiternr As Integer Get Mitarbeiternr = m_Mitarbeiternr End Get Set(value As Integer) m_Mitarbeiternr = value Update_Mitarbeiter() End Set End Property Public Enum Struktur_Selectiontype Berechtigung = 0 Organisation = 1 Personal = 2 Plattform = 3 Server = 4 Verwaltungdurch = 5 Verwaltungmit = 6 End Enum Sub New() End Sub Sub Update_Connectionstring() Globals.sConnectionString = Me.ConnectionString Globals.conn.sConnectionString = Me.ConnectionString End Sub Public Sub Update_Mitarbeiter() Globals.Mitarbeiternr = Me.Mitarbeiternr End Sub Public Shared Function CreateNew(ByVal ClassName As String) As Object Dim objType As System.Type Dim objConstructor As Reflection.ConstructorInfo If ClassName Is Nothing Then Throw New ArgumentNullException(ClassName) objType = System.Type.GetType(ClassName) If objType Is Nothing Then Throw New Exception("Unknown Type " & ClassName) Dim objParams() As System.Type = {} objConstructor = objType.GetConstructor(objParams) If objConstructor Is Nothing Then Throw New Exception("No default constructor for " & objType.FullName) Return objConstructor.Invoke(objParams) End Function Public Sub CreateNew(ByVal ClassName As String, ByRef Obj As Object) Dim objType As System.Type Dim objConstructor As Reflection.ConstructorInfo If ClassName Is Nothing Then Throw New ArgumentNullException(ClassName) objType = System.Type.GetType(ClassName) If objType Is Nothing Then Throw New Exception("Unknown Type " & ClassName) Dim objParams() As System.Type = {} objConstructor = objType.GetConstructor(objParams) If objConstructor Is Nothing Then Throw New Exception("No default constructor for " & objType.FullName) Obj = objConstructor.Invoke(objParams) End Sub Public Function Get_Selectiontype(ByVal type As String) As _DataClass.DataClass.Struktur_Selectiontype Select Case type Case "Berechtigung" Return Struktur_Selectiontype.Berechtigung Case "Organisation" Return Struktur_Selectiontype.Organisation Case "Funktionstelle" Return Struktur_Selectiontype.Organisation Case "Personal" Return Struktur_Selectiontype.Personal Case "Plattform" Return Struktur_Selectiontype.Plattform Case "Server" Return Struktur_Selectiontype.Server Case "Verwaltung durch", "VerwaltungDurch" Return Struktur_Selectiontype.Verwaltungdurch Case "Verwaltung mit", "VerwaltungMit" Return Struktur_Selectiontype.Verwaltungmit End Select End Function Public Function Get_SelectionTypeText(ByVal Type As _DataClass.DataClass.Struktur_Selectiontype) As String Select Case Type Case _DataClass.DataClass.Struktur_Selectiontype.Berechtigung Return "Berechtigung" Case _DataClass.DataClass.Struktur_Selectiontype.Organisation Return "Funktionstelle" Case _DataClass.DataClass.Struktur_Selectiontype.Personal Return "Personal" Case _DataClass.DataClass.Struktur_Selectiontype.Plattform Return "Plattform" Case _DataClass.DataClass.Struktur_Selectiontype.Server Return "Server" Case _DataClass.DataClass.Struktur_Selectiontype.Verwaltungdurch Return "VerwaltungDurch" Case _DataClass.DataClass.Struktur_Selectiontype.Verwaltungmit Return "VerwaltungMit" End Select End Function Public Function Get_Beziehungen(ByVal Type As String, ByVal Keyvalue As Integer) As DataTable Dim objekt As New DB.clsObjekt objekt.cpMainConnectionProvider = Globals.conn Dim dt As New DataTable dt = objekt.SelectAll For Each dr As DataRow In dt.Rows If dr.Item("Aktiv") = True And ((dr.Item("Bezeichnung") = Type Or dr.Item("Beschreibung") = Type)) Then Dim clsbeziehungen As New db.clsBeziehungen Return clsbeziehungen.Get_Beziehungen(dr.Item("Stored_Proc_Beziehungen"), Keyvalue) End If Next End Function Private Function Get_Data_BezExcelExport(ByVal Type As String, ByVal Keyvalue As Integer) As DataTable Dim objekt As New DB.clsObjekt objekt.cpMainConnectionProvider = Globals.conn Dim dt As New DataTable dt = objekt.SelectAll For Each dr As DataRow In dt.Rows If dr.Item("Aktiv") = True And (dr.Item("Bezeichnung") = Type Or dr.Item("Beschreibung") = Type) Then Dim clsbeziehungen As New DB.clsBeziehungen Return clsbeziehungen.Get_Beziehungen(dr.Item("Stored_Proc_Beziehungen"), Keyvalue, 1) End If Next End Function Public Function Get_Data_for_ExcelExport(ByVal Type As String, ByVal Keyvalue As Integer) As DataTable Dim dt As New DataTable Dim dr As New DataTable dr.Columns.Add("Key", System.Type.GetType("System.Int32")) dr.Columns.Add("M_Bezeichnung", System.Type.GetType("System.String")) dr.Columns.Add("M_Beschreibung", System.Type.GetType("System.String")) Select Case Get_Selectiontype(Type) Case 1 'Organisation 'dr.Columns.Add("Funktionsstelle", System.Type.GetType("System.String")) dr.Columns.Add("Funktionsnummer", System.Type.GetType("System.Int32")) Case 0 'BERECHTIGUNG Case 3 'PLATTFORM Case 2 'PERSONAL dr.Columns.Add("UserID", System.Type.GetType("System.String")) dr.Columns.Add("Name", System.Type.GetType("System.String")) Case 4 'SERVER Case 5 'VERWALTUNGDURCH Case 6 'VERWALTUNGMIT End Select dr.Columns.Add("ID", System.Type.GetType("System.Int32")) dr.Columns.Add("Sequenz", System.Type.GetType("System.Int32")) dr.Columns.Add("Bezeichnung", System.Type.GetType("System.String")) dr.Columns.Add("Beschreibung", System.Type.GetType("System.String")) dr.Columns.Add("Typ", System.Type.GetType("System.String")) dr.Columns.Add("Zusatz", System.Type.GetType("System.String")) Dim DBObject As New Object Me.CreateNew("_DataClass.db." + Type, DBObject) DBObject.get_data(Keyvalue) dt = Get_Data_BezExcelExport(Type, Keyvalue) For Each r In dt.Rows Dim daten As DataRow = dr.NewRow daten("ID") = r("ID") daten("Bezeichnung") = r("Bezeichnung") daten("Beschreibung") = r("Beschreibung") daten("Sequenz") = r("Sequenz") daten("Typ") = r("Typ") daten("Key") = DBObject.Get_Keyvalue daten("M_Bezeichnung") = DBObject.sbezeichnung.ToString daten("M_Beschreibung") = DBObject.sbeschreibung.ToString Try daten("Zusatz") = r("Zusatz") Catch ex As Exception End Try Select Case Get_Selectiontype(Type) Case 1 'Organisation daten("Funktionsnummer") = DBObject.sFunktionsstelle.ToString 'daten("Funktionsnummer") = DBObject.sFunktionsnummer.ToString Case 0 'BERECHTIGUNG Case 3 'PLATTFORM Case 2 'PERSONAL daten("UserID") = DBObject.stgnummer.ToString daten("Name") = DBObject.sname.ToString Case 4 'SERVER Case 5 'VERWALTUNGDURCH Case 6 'VERWALTUNGMIT End Select Try If r("Aktiv") = True Then dr.Rows.Add(daten) Catch ex As Exception dr.Rows.Add(daten) End Try Next Select Case Get_Selectiontype(Type) Case 1 'Organisation dr.Columns("M_Bezeichnung").ColumnName = "Funktionsstelle" Case Else End Select Return dr End Function Public Function Get_Stammdaten(ByVal Tabelle As String, ByVal orderby As String) As DataTable Dim selectcommand As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) Dim ds As New DataSet selectcommand.CommandText = "sp_get_stammdaten" selectcommand.Parameters.Add("@Mitarbeiternr", SqlDbType.Int, 4) selectcommand.Parameters.Add("@Tabelle", SqlDbType.VarChar, 255) selectcommand.Parameters.Add("@Orderby", SqlDbType.VarChar, 255) selectcommand.Parameters(0).Value = Globals.Mitarbeiternr selectcommand.Parameters(1).Value = Tabelle selectcommand.Parameters(2).Value = orderby selectcommand.CommandType = CommandType.StoredProcedure selectcommand.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = selectcommand da.Fill(ds) Return ds.Tables(0) Catch ex As Exception MsgBox(ex.Message) Finally connection.Close() da.Dispose() ds.Dispose() selectcommand.Dispose() End Try End Function Public Function Get_Aktive_Funktionsstellen() As DataTable Dim fs As New db.Funktionstelle Return fs.Get_aktive_Funktionsstellen End Function Public Function Get_Aktives_Personal() As DataTable Dim fs As New db.Personal Return fs.Get_aktives_Personal End Function Public Function Update_Temporaer_Berechtigung(beschreibung As String, unterlagen As String, bearbeiter As String, kontakt As String, termin As String, keyvalue As Integer, ByVal Datatype As Integer, Optional kontaktid As Integer = 0) Dim selectcommand As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) Dim ds As New DataSet selectcommand.CommandText = "sp_set_Temporaerberechtigung" selectcommand.Parameters.Add("@Beschreibung", SqlDbType.VarChar, 1024) selectcommand.Parameters.Add("@Unterlagen", SqlDbType.VarChar, 1024) selectcommand.Parameters.Add("@Bearbeiter", SqlDbType.VarChar, 1024) selectcommand.Parameters.Add("@Kontkat", SqlDbType.VarChar, 1024) selectcommand.Parameters.Add("@Termin", SqlDbType.DateTime) selectcommand.Parameters.Add("@KeyValue", SqlDbType.Int, 4) selectcommand.Parameters.Add("@Mitarbeiternr", SqlDbType.Int, 4) selectcommand.Parameters.Add("@Datatype", SqlDbType.Int, 4) selectcommand.Parameters.Add("@Kontaktid", SqlDbType.Int, 4) selectcommand.Parameters(0).Value = beschreibung selectcommand.Parameters(1).Value = unterlagen selectcommand.Parameters(2).Value = bearbeiter selectcommand.Parameters(3).Value = kontakt selectcommand.Parameters(4).Value = termin selectcommand.Parameters(5).Value = keyvalue selectcommand.Parameters(6).Value = Globals.Mitarbeiternr selectcommand.Parameters(7).Value = Datatype selectcommand.Parameters(8).Value = kontaktid selectcommand.CommandType = CommandType.StoredProcedure selectcommand.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = selectcommand da.Fill(ds) Catch ex As Exception MsgBox(ex.Message) Finally connection.Close() da.Dispose() ds.Dispose() selectcommand.Dispose() End Try End Function Public Function Get_Temporaer_Berechtigung(ByVal Keyvalue As Integer) As DataTable Dim selectcommand As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) Dim ds As New DataSet selectcommand.CommandText = "sp_get_Temporaerberechtigung" selectcommand.Parameters.Add("@KeyValue", SqlDbType.Int, 4) selectcommand.Parameters(0).Value = Keyvalue selectcommand.CommandType = CommandType.StoredProcedure selectcommand.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = selectcommand da.Fill(ds) Return ds.Tables(0) Catch ex As Exception MsgBox(ex.Message) Finally connection.Close() da.Dispose() ds.Dispose() selectcommand.Dispose() End Try End Function Public Function Get_Temp_Berechtgungen() As DataTable Dim selectcommand As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) Dim ds As New DataSet selectcommand.CommandText = "sp_get_Tempberechtigung" selectcommand.CommandType = CommandType.StoredProcedure selectcommand.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = selectcommand da.Fill(ds) Return ds.Tables(0) Catch ex As Exception MsgBox(ex.Message) Finally connection.Close() da.Dispose() ds.Dispose() selectcommand.Dispose() End Try End Function Public Function Delete_temp_Berechtigung(ByVal keyvalue As Integer, mitarbeiternr As Integer) Dim selectcommand As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) Dim ds As New DataSet selectcommand.CommandText = "sp_delete_Tempberechtigung" selectcommand.Parameters.Add("@KeyValue", SqlDbType.Int, 4) selectcommand.Parameters.Add("@Mitarbeiternr", SqlDbType.Int, 4) selectcommand.Parameters(0).Value = keyvalue selectcommand.Parameters(1).Value = mitarbeiternr selectcommand.CommandType = CommandType.StoredProcedure selectcommand.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = selectcommand da.Fill(ds) Catch ex As Exception MsgBox(ex.Message) Finally connection.Close() da.Dispose() ds.Dispose() selectcommand.Dispose() End Try End Function End Class