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.

261 lines
10 KiB

Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Public Class FrmDokMail
Dim Tablename As String = ""
Private Sub FrmDokMail_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim msg As MsgBoxResult
If Me.DataSet1.HasChanges Then
msg = Globals.MyMsg.Show_MessageYesNoCancel(2)
If msg = MsgBoxResult.No Then
e.Cancel = False
End If
If msg = MsgBoxResult.Yes Then
If Save_Data() Then e.Cancel = False Else e.Cancel = True
End If
If msg = MsgBoxResult.Cancel Then e.Cancel = True
End If
End Sub
Private Sub cldDomainBerechtigung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Tablename = "DokEditMail"
Globals.MandantNr = 1
Dim dbconn As New EDOKA.DB_Connection()
Me.SqlConnection1.ConnectionString = Globals.sConnectionString
Me.SqlConnection1.Open()
Try
Me.SqlDataAdapter1.Fill(Me.DataSet1)
Catch ex As Exception
MsgBox(ex.Message)
End Try
Me.DomainList.DataSource = Me.DataSet1
Me.DomainList.DataMember = Me.DataSet1.Tables(0).TableName
SpaltenTitel_Aktualisieren(Me.DataSet1)
DropDown_Bindung()
End Sub
Private Sub DropDown_Bindung()
conn.OpenConnection()
Dim t As New DataTable
t = Generic_Select(1)
Me.drpDokumenttyp.DataSource = t
Me.drpDokumenttyp.ListField = "Bezeichnung"
Me.drpDokumenttyp.DataField = "Dokumenttypnr"
Me.drpDokumenttyp.ValueTranslate = True
Me.DomainList.Columns("DokumenttypNr").DropDown = Me.drpDokumenttyp
Dim T2 As New DataTable
T2 = Generic_Select(2)
Me.DrpStatus.DataSource = T2
Me.DrpStatus.ListField = "Bezeichnung"
Me.DrpStatus.DataField = "Status_Bezeichnungnr"
Me.DrpStatus.ValueTranslate = True
Me.DomainList.Columns("Status").DropDown = Me.DrpStatus
conn.CloseConnection(True)
End Sub
Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles ToolBar1.ButtonClick
Select Case ToolBar1.Buttons.IndexOf(e.Button)
Case 0 'close button
Me.Close()
Case 1 'Speichern
Save_Data()
End Select
End Sub
Private Function Save_Data() As Boolean
Save_Data = True
Try
SqlDataAdapter1.Update(Me.DataSet1)
Catch ex As Exception
MsgBox(Globals.MyMsg.Get_Meldungstext(902))
Save_Data = False
End Try
End Function
Private Sub DomainList_AfterInsert(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DomainList.AfterInsert
Dim i As Integer
'Defaulwerte erstellt_am, mutiert_am, mutierer und aktiv setzen
Try
For i = 0 To DomainList.Columns.Count - 1
If Me.DomainList.Columns(i).DataField = "Aktiv" Then
Me.DomainList.Columns(i).Value = 1
End If
If Me.DomainList.Columns(i).DataField = "Erstellt_am" Then
Me.DomainList.Columns(i).Value = Now
End If
If Me.DomainList.Columns(i).DataField = "Mutiert_am" Then
Me.DomainList.Columns(i).Value = Now
End If
If Me.DomainList.Columns(i).DataField = "Mutierer" Then
Me.DomainList.Columns(i).Value = Globals.MitarbeiterNr
End If
If Me.DomainList.Columns(i).DataField = "korrigiert_am" Then
Me.DomainList.Columns(i).Value = DBNull.Value
End If
Next
Catch
End Try
End Sub
Private Sub domainlist_aftercellupdate(ByVal sender As System.Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles DomainList.AfterColUpdate
'Aktualisieren von Mutierer und Mutiert_am
Dim i As Integer
Try
For i = 0 To Me.DomainList.Columns.Count - 1
If Me.DomainList.Columns(i).DataField = "Mutiert_am" Then Me.DomainList.Columns(i).Value = Now
If Me.DomainList.Columns(i).DataField = "Mutierer" Then Me.DomainList.Columns(i).Value = Globals.MitarbeiterNr
If Me.DomainList.Columns(i).DataField = "korrigiert_am" Then Me.DomainList.Columns(i).Value = DBNull.Value
Next
'neuer DB-Key ausl<73>sen, sofern kein Key vorhanden ist
If Me.DomainList.Columns(0).Value Is DBNull.Value Then
Dim dbkey As New edokadb.clsMyKey_Tabelle()
Dim key As Long
dbkey.cpMainConnectionProvider = conn
key = dbkey.get_dbkey(Tablename)
Me.DomainList.Columns(0).Value = key
For i = 0 To Me.DomainList.Columns.Count - 1
If Me.DomainList.Columns(i).DataField = "mandantnr" Then
Me.DomainList.Columns(i).Value = Globals.MandantNr
End If
Next
dbkey.Dispose()
End If
Catch
End Try
End Sub
Private Sub DomainList_RowColChange(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles DomainList.RowColChange
Exit Sub
If Me.DomainList.Columns(1).Value Is DBNull.Value Then
Me.DomainList.Splits(0).DisplayColumns(1).Locked = False
Else
Me.DomainList.Splits(0).DisplayColumns(1).Locked = True
End If
If Me.DomainList.Columns(2).Value Is DBNull.Value Then
Me.DomainList.Splits(0).DisplayColumns(2).Locked = False
Else
Me.DomainList.Splits(0).DisplayColumns(2).Locked = True
End If
Try
Catch ex As Exception
If Me.DomainList.Columns(1).Value = "" Then
Me.DomainList.Splits(0).DisplayColumns(1).Locked = False
Else
Me.DomainList.Splits(0).DisplayColumns(1).Locked = True
End If
End Try
Try
If Me.DomainList.Columns(2).Value = "" Then
Me.DomainList.Splits(0).DisplayColumns(2).Locked = False
Else
Me.DomainList.Splits(0).DisplayColumns(2).Locked = True
End If
Catch ex As Exception
End Try
End Sub
Public Sub SpaltenTitel_Aktualisieren(ByVal ds As DataSet)
'Spaltentitel setzen
Dim titel As New EDOKA.MySpaltenTitel()
Dim anzcols As Integer
Dim cols(Me.DomainList.Splits(0).DisplayColumns.Count) As C1.Win.C1TrueDBGrid.C1DisplayColumn
Dim ts As New EDOKA.Tabellenspalte()
Dim i As Integer
Dim t As New DataTable()
Dim dc As C1.Win.C1TrueDBGrid.C1DisplayColumn
Dim s As String
anzcols = Me.DomainList.Splits(0).DisplayColumns.Count
t = ds.Tables(0)
ts.Tabelle = Me.Tablename
For i = 0 To Me.DomainList.Columns.Count - 1
s = Me.DomainList.Columns(i).DataField
ts.Feld = s
ts.getspalte()
Me.DomainList.Columns(i).Caption = ts.spaltenname
If ts.ColWith = 0 Then
Me.DomainList.Splits(0).DisplayColumns(i).Width = 0
Me.DomainList.Splits(0).DisplayColumns(i).Visible = False
Else
Me.DomainList.Splits(0).DisplayColumns(i).Width = ts.ColWith
End If
If ts.locked Then
Me.DomainList.Splits(0).DisplayColumns(i).Locked = True
End If
If ts.AlsHacken Then
Me.DomainList.Columns(i).ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox
End If
'Pr<50>sentation von aktiv
If Me.DomainList.Columns(i).DataField = "aktiv" Then
Me.DomainList.Columns(i).ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox
Me.DomainList.Columns(i).ValueItems.DefaultItem = True
Me.DomainList.Columns(i).DefaultValue = True
Me.DomainList.Columns(i).FilterText = True
End If
If Me.DomainList.Columns(i).DataField = "erstellt_am" Then
Me.DomainList.Columns(i).DefaultValue = Now
End If
Next
End Sub
Private Sub DatenSichernToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DatenSichernToolStripMenuItem.Click
Save_Data()
End Sub
Private Function Generic_Select(ByVal typ As Integer) As DataTable
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
Select Case typ
Case 1 'ben<65>tigt
scmCmdToExecute.CommandText = "SP_Get_Stammdaten"
Case 2 'Ben<65>tigt
scmCmdToExecute.CommandText = "SP_Get_Stammdaten"
Case Else
End Select
scmCmdToExecute.CommandType = CommandType.StoredProcedure
Dim dtToReturn As DataTable = New DataTable()
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
scmCmdToExecute.Connection = conn.scoDBConnection
Try
Select Case typ
Case 1
scmCmdToExecute.Parameters.Add(New SqlParameter("@Typ", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
Case 2
scmCmdToExecute.Parameters.Add(New SqlParameter("@Typ", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
Case Else
End Select
If typ = 1 Then
End If
sdaAdapter.Fill(dtToReturn)
Return dtToReturn
Catch ex As Exception
' // some error occured. Bubble it to caller and encapsulate Exception object
Throw New Exception("DokEditMail::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
Finally
scmCmdToExecute.Dispose()
sdaAdapter.Dispose()
End Try
End Function
End Class