Files
Themenmanagement/KommAuspraegung/Klassen/KommunikationAuspraegung.vb
2020-10-21 10:49:38 +02:00

387 lines
15 KiB
VB.net

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
''' <summary>
''' Mutierer auslesen
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
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
''' <summary>
''' Löschen eines Datensatzes erstellen.
''' </summary>
''' <param name="Basenr">Ursprungs-Person: Ist dieser Wert nicht 0, werden die Daten mit BaseNr zuerst gelesen</param>
''' <returns></returns>
''' <remarks></remarks>
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
''' <summary>
''' Neue Person einfügen
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
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