Imports System Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Imports System.IO Namespace DB Public Class KommunikationAuspraegung Inherits DB.clsKommunkationAuspraegung Public daten As New DataTable Public Neuer_Datensatz As Boolean = False Public KommunikationAuspraegung_Zielgruppen 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 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_Auspraegung(ByVal Nr As Integer) Me.cpMainConnectionProvider = Globals.conn Me.iKommunikationAuspraegungNr = 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) get_zielgruppen() End Function Public Function Get_Zielgruppen() Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) Me.KommunikationAuspraegung_Zielgruppen.Rows.Clear() Dim sqlcmd As New SqlCommand sqlcmd.CommandText = "sp_get_Zielgruppen" sqlcmd.Parameters.Add("@KommunikationAuspraegungnr", SqlDbType.Int, 4) sqlcmd.Parameters(0).Value = Me.iKommunikationAuspraegungNr.Value sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = sqlcmd da.Fill(KommunikationAuspraegung_Zielgruppen) Catch ex As Exception Finally connection.Close() da.Dispose() sqlcmd.Dispose() End Try Dim tn As TreeNode 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_Auspraegung(Basenr) End If Dim db As New DB.clsMyKey_Tabelle db.cpMainConnectionProvider = Globals.conn Dim newkey = db.get_dbkey("KommunikationAuspraeggung") db.Dispose() Me.cpMainConnectionProvider = Globals.conn Me.iKommunikationNr = 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_Kommunikationsauspraegung(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Get_Auspraegung(Basenr) End If 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_Auspraegung(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(ByVal Kommunikationnr As Integer, ByVal Bezeichnung As String) As Integer Dim db As New DB.clsMyKey_Tabelle db.cpMainConnectionProvider = Globals.conn Dim newkey = db.get_dbkey("KommunikationAuspraeggung") db.Dispose() Me.iKommunikationAuspraegungNr = New SqlInt32(CType(newkey, Int32)) Me.iKommunikationAuspraegungNr = New SqlInt32(CType(Kommunikationnr, Int32)) Me.sBezeichnung = New SqlString(CType(Bezeichnung, String)) 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_Eintraege(ByVal Themanr As Integer, Optional Orderby As Integer = 1) As DataTable Dim Eintragsdaten As New DataTable Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) Eintragsdaten.Rows.Clear() Dim sqlcmd As New SqlCommand sqlcmd.CommandText = "sp_get_entwicklungseintraege" sqlcmd.Parameters.Add("@Themanr", SqlDbType.Int, 4) sqlcmd.Parameters.Add("@Order", SqlDbType.Int, 4) sqlcmd.Parameters(0).Value = Themanr sqlcmd.Parameters(1).Value = Orderby sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = sqlcmd da.Fill(Eintragsdaten) Return Eintragsdaten Catch ex As Exception Finally connection.Close() da.Dispose() sqlcmd.Dispose() End Try End Function Public Function Get_Eintraege(ByRef Tree As TreeView, ByVal Themanr As Integer) Dim Eintragsdaten As New DataTable Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) Eintragsdaten.Rows.Clear() Dim sqlcmd As New SqlCommand sqlcmd.CommandText = "sp_get_entwicklungseintraege" sqlcmd.Parameters.Add("@Themanr", SqlDbType.Int, 4) sqlcmd.Parameters(0).Value = Themanr sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = sqlcmd da.Fill(Eintragsdaten) Catch ex As Exception Finally connection.Close() da.Dispose() sqlcmd.Dispose() End Try Dim tn As TreeNode Tree.Nodes.Clear() Dim tnr As Integer = -1 Dim d As DateTime For Each rec As DataRow In Eintragsdaten.Rows If tnr <> rec.Item("ThemaEntwicklungnr") Then tn = New TreeNode tn.Tag = rec.Item("ThemaEntwicklungnr") d = rec.Item("mutiert_am") tn.Text = rec.Item("Bezeichnung") + "/" + d.ToShortDateString + "/" + rec.Item("mutierer") Tree.Nodes.Add(tn) tnr = rec.Item("ThemaEntwicklungnr") Else Dim tn1 As New TreeNode tn1.Tag = rec.Item("ThemaEntwicklungnr") tn1.Text = rec.Item("mutiert_am") + " - " + rec.Item("Mutierer") tn.Nodes.Add(tn1) End If Next End Function Public Function Get_Dokument(ByVal Filename As String) Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("Select * From KommunkationAuspraegung where KommunikationAuspraegungNr=" + Me.iKommunikationAuspraegungNr.Value.ToString, connection) Dim CB As SqlCommandBuilder = New SqlCommandBuilder(da) Dim ds As New DataSet() Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.Fill(ds, "Dokument") Dim myRow As DataRow myRow = ds.Tables(0).Rows(0) Dim MyData() As Byte MyData = myRow.Item(4) Dim K As Long K = UBound(MyData) Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Write) fs.Write(MyData, 0, K) fs.Close() fs = Nothing Catch ex As Exception 'MsgBox(ex.Message, MsgBoxStyle.Critical) Return "" Finally connection.Close() connection = Nothing End Try CB = Nothing ds = Nothing da = Nothing Return Filename End Function Public Function Save_Dokument(ByVal Filename As String) Dim Connection As New SqlConnection() Dim DA As New SqlDataAdapter("select * from KommunkationAuspraegung where KommunikationAuspraegungNr=" + Me.iKommunikationAuspraegungNr.Value.ToString, Connection) Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) Dim ds As New DataSet() Dim fs As New FileStream(Filename, FileMode.OpenOrCreate, FileAccess.Read) Dim mydata(fs.Length) As Byte fs.Read(mydata, 0, fs.Length) fs.Close() Try Connection.ConnectionString = Globals.sConnectionString Connection.Open() DA.Fill(ds, "Dokument") Dim myRow As DataRow If ds.Tables(0).Rows.Count = 0 Then Return False Else myRow = ds.Tables(0).Rows(0) myRow.Item(4) = mydata DA.Update(ds, "Dokument") End If Catch ex As Exception FileOpen(1, Filename, OpenMode.Output) FileClose(1) Return False End Try fs = Nothing cb = Nothing ds = Nothing DA = Nothing Connection.Close() Connection = Nothing Return True End Function Public Function save_zuteilung(ByRef cb As CheckedListBox) Dim scmCmdToExecute As SqlCommand = New SqlCommand() scmCmdToExecute.CommandText = "dbo.[sp_set_kommunikationauspraegung_zielgruppe]" scmCmdToExecute.CommandType = CommandType.StoredProcedure scmCmdToExecute.Connection = m_scoMainConnection Try scmCmdToExecute.Connection.Open() Catch ex As Exception Finally End Try For i = 0 To cb.Items.Count - 1 cb.GetItemCheckState(i) scmCmdToExecute.Parameters.Add(New SqlParameter("@kommunikationauspraegungnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Me.iKommunikationAuspraegungNr)) scmCmdToExecute.Parameters.Add(New SqlParameter("@Zielgruppe", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, cb.GetItemText(cb.Items(i)))) scmCmdToExecute.Parameters.Add(New SqlParameter("@checked", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, cb.GetItemChecked(i))) scmCmdToExecute.Parameters.Add(New SqlParameter("@mutierer", SqlDbType.Int, 4, ParameterDirection.Input, True, 0, 0, "", DataRowVersion.Proposed, Globals.Mitarbeiternr)) scmCmdToExecute.ExecuteNonQuery() scmCmdToExecute.Parameters.Clear() Next scmCmdToExecute.Connection.Close() scmCmdToExecute.Dispose() End Function Public Function Save_freitext(ByVal themaentwicklungnr As Integer, text As String, ByVal TYPE As Integer, ByVal themanr As Integer) Dim Eintragsdaten As New DataTable If text.Length > 4096 Then text = text.Substring(0, 4095) Dim connection As New SqlConnection() Eintragsdaten.Rows.Clear() Dim sqlcmd As New SqlCommand sqlcmd.CommandText = "sp_update_freitext" sqlcmd.Parameters.Add("@Keyvalue", SqlDbType.Int, 4) sqlcmd.Parameters(0).Value = themaentwicklungnr sqlcmd.Parameters.Add("@text", SqlDbType.VarChar, 4096) sqlcmd.Parameters(1).Value = text sqlcmd.Parameters.Add("@TYPE", SqlDbType.Int, 4) sqlcmd.Parameters(2).Value = TYPE sqlcmd.Parameters.Add("@Themanr", SqlDbType.Int, 4) sqlcmd.Parameters(3).Value = themanr sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() sqlcmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) Finally connection.Close() sqlcmd.Dispose() End Try End Function End Class End Namespace