Imports System.Data.SqlClient Imports System.Data.SqlTypes Namespace db Public Class Funktionstelle Inherits db.clsFunktionstelle #Region "Deklarationen" Public daten As New DataTable Public Neuer_Datensatz As Boolean = False Public Mitarbeiterdaten As New DataTable Dim mMutierer As String Property MutiererText() As String Get Return mMutierer End Get Set(ByVal value As String) mMutierer = value End Set End Property #End Region Sub New() End Sub Public Overloads Sub dispose() MyBase.Dispose() Try Catch End Try End Sub ''' ''' Mutierer auslesen ''' ''' ''' Public Function Get_Mutierer(ByVal nr As Integer) As String Dim ma As New DB.clsMitarbeiter Dim dt As New DataTable Dim Retvalue As String ma.cpMainConnectionProvider = Globals.conn ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) dt = ma.SelectOne() If dt.Rows.Count = 0 Then Retvalue = ("{" + nr.ToString + "}") Else Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString End If ma.Dispose() dt.Dispose() Return Retvalue End Function Public Function Get_Data(ByVal Nr As Integer) Me.cpMainConnectionProvider = Globals.conn Me.iFunktionstelleNr = New SqlInt32(CType(Nr, Int32)) Globals.conn.OpenConnection() Me.daten = Me.SelectOne() Globals.conn.CloseConnection(True) Try Catch ex As Exception End Try Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) End Function Public Function Save_Data() As Integer Me.cpMainConnectionProvider = Globals.conn Me.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32)) Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) Globals.conn.OpenConnection() Me.Update() Globals.conn.CloseConnection(True) Me.Neuer_Datensatz = False End Function Public Function Create_Copy(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Get_Data(Basenr) End If Dim db As New DB.clsMyKey_Tabelle db.cpMainConnectionProvider = Globals.conn Dim newkey = db.get_dbkey("Funktionstelle") db.Dispose() Me.cpMainConnectionProvider = Globals.conn Me.iFunktionstelleNr = New SqlInt32(CType(newkey, Int32)) Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) Me.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32)) Globals.conn.OpenConnection() Me.Insert() Globals.conn.CloseConnection(True) Me.Neuer_Datensatz = True Return newkey End Function ''' ''' Löschen eines Datensatzes erstellen. ''' ''' Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen ''' ''' Public Function Delete_Data(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Get_Data(Basenr) End If If bAktiv.Value = False Then Exit Function Me.cpMainConnectionProvider = Globals.conn Me.bAktiv = New SqlBoolean(CType(False, Boolean)) Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) Me.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32)) Globals.conn.OpenConnection() Me.Update() Globals.conn.CloseConnection(True) Me.Neuer_Datensatz = False End Function Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Get_Data(Basenr) End If Me.cpMainConnectionProvider = Globals.conn Globals.conn.OpenConnection() MyBase.Delete() Globals.conn.CloseConnection(True) Me.Neuer_Datensatz = False End Function ''' ''' Neue Person einfügen ''' ''' ''' Public Function Add_New() As Integer Dim db As New DB.clsMyKey_Tabelle db.cpMainConnectionProvider = Globals.conn Dim newkey = db.get_dbkey("Funktionstelle") db.Dispose() Me.iFunktionstelleNr = New SqlInt32(CType(newkey, Int32)) Me.sBeschreibung = New SqlString(CType("", String)) Me.sBezeichnung = New SqlString(CType("", String)) Me.iSequenz = New SqlInt32(CType(1, Int32)) Me.bAktiv = New SqlBoolean(CType(True, Boolean)) Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) Me.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32)) Me.cpMainConnectionProvider = Globals.conn Globals.conn.OpenConnection() Me.Insert() Globals.conn.CloseConnection(True) Me.Neuer_Datensatz = True Return newkey End Function Public Function Get_Keyvalue() As Integer Return Me.iFunktionstelleNr.Value End Function Public Function get_FunktionStelle_by_Funktionstelle(ByVal Funktionstelle As String) As Boolean Dim sqlcmd As New SqlCommand Dim connection As New SqlConnection() connection.ConnectionString = Globals.sConnectionString sqlcmd.CommandText = "dbo.sp_get_funktionstelle_by_funktionstelle" sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Parameters.Clear() sqlcmd.Parameters.Add("@funktionstelle", SqlDbType.VarChar) sqlcmd.Parameters.Add("@resultat", SqlDbType.VarChar) sqlcmd.Parameters(0).Value = Funktionstelle sqlcmd.Parameters(1).Value = "" sqlcmd.Parameters(1).Direction = ParameterDirection.Output sqlcmd.Parameters(1).Size = 1024 sqlcmd.Connection = connection connection.Open() Try sqlcmd.ExecuteNonQuery() Get_Data(sqlcmd.Parameters(1).Value) Return True Catch ex As Exception Return False Finally connection.Close() End Try End Function Public Function Get_aktive_Funktionsstellen() As DataTable Dim fs As New db.clsFunktionstelle fs.cpMainConnectionProvider = Globals.conn Dim dt As New DataTable dt = fs.SelectAll Dim dn As New DataTable dn.Columns.Add("Nr") dn.Columns.Add("Bezeichnung") dn.Columns.Add("Funktionstelle") For Each r As DataRow In dt.Rows If r("aktiv") = True And Trim(r("Bezeichnung").ToString) <> "" And Trim(r("Funktionsstelle").ToString) <> "" Then Dim dnr As DataRow = dn.NewRow dnr.Item(0) = r("FunktionstelleNr") dnr.Item(1) = r("Bezeichnung") dnr.Item(2) = r("Funktionsstelle") dn.Rows.Add(dnr) End If Next Return dn End Function End Class End Namespace