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.
316 lines
12 KiB
316 lines
12 KiB
''' <summary>
|
|
''' Verbindungseditor: Verbindet 2 Domain-Tables in einer dritten Tabelle.
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
'''<seealso cref="T:Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable"></seealso>
|
|
Public Class frmVerbindungEditor
|
|
|
|
#Region "Deklarationen"
|
|
Dim Fokus As Integer = 1
|
|
Dim Domaintableleft As TKB.VV.Sysadmin.DomainTable
|
|
Dim Domaintableright As TKB.VV.Sysadmin.DomainTable
|
|
Dim domaintablebottom As TKB.VV.Sysadmin.DomainTable
|
|
Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte
|
|
Dim SysadminfunktionNr As Integer
|
|
|
|
Dim TablenameLeft As String
|
|
Dim TablenameRight As String
|
|
Dim TablenameBottom As String
|
|
Dim first As Boolean = True
|
|
|
|
Dim msg As New TKB.VV.Utils.MyMessage
|
|
#End Region
|
|
|
|
''' <summary>
|
|
''' Laden der linken und rechten Tabelle
|
|
''' </summary>
|
|
''' <param name="TableLeft"></param>
|
|
''' <param name="TableRight"></param>
|
|
''' <param name="TableBottom"></param>
|
|
''' <param name="SysadminfnktNr"></param>
|
|
''' <remarks></remarks>
|
|
Public Sub New(ByVal TableLeft As String, ByVal TableRight As String, ByVal TableBottom As String, ByVal SysadminfnktNr As Integer)
|
|
InitializeComponent()
|
|
Me.Domaintableleft = New TKB.VV.Sysadmin.DomainTable(TableLeft)
|
|
Me.Domaintableright = New TKB.VV.Sysadmin.DomainTable(TableRight)
|
|
Me.TablenameLeft = TableLeft
|
|
Me.TablenameRight = TableRight
|
|
Me.TablenameBottom = TableBottom
|
|
Me.SysadminfunktionNr = SysadminfnktNr
|
|
End Sub
|
|
''' <summary>
|
|
''' Laden sämlticher Tabellen
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub FrmVerbindungEditor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
Me.C1DatenLeft.DataSource = Domaintableleft.Tabledata
|
|
Me.C1DatenLeft.DataMember = Domaintableleft.Tabledata.Tables(0).TableName
|
|
|
|
Me.C1DatenRight.DataSource = Domaintableright.Tabledata
|
|
Me.C1DatenRight.DataMember = Domaintableright.Tabledata.Tables(0).TableName
|
|
|
|
SpaltenTitel.Spaltentitel_aktualisieren(Me.C1DatenLeft, TablenameLeft, Me.Domaintableleft.Tabledata)
|
|
SpaltenTitel.Spaltentitel_aktualisieren(Me.C1DatenRight, TablenameRight, Me.Domaintableright.Tabledata)
|
|
|
|
Refresh_Bottomtable()
|
|
|
|
Me.C1DatenLeft.AllowAddNew = False
|
|
Me.C1DatenLeft.AllowDelete = False
|
|
Me.C1DatenLeft.AllowUpdate = False
|
|
|
|
Me.C1DatenRight.AllowAddNew = False
|
|
Me.C1DatenRight.AllowDelete = False
|
|
Me.C1DatenRight.AllowUpdate = False
|
|
|
|
Me.C1DatenBottom.AllowAddNew = False
|
|
Me.C1DatenBottom.AllowDelete = False
|
|
|
|
Me.GrpBoxLeft.Text = Me.TablenameLeft
|
|
Me.GrpBoxRight.Text = Me.TablenameRight
|
|
Me.GrpBoxBottom.Text = Me.TablenameBottom
|
|
first = False
|
|
End Sub
|
|
''' <summary>
|
|
''' Aktualiserung der Verbindungstabelle
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub Refresh_Bottomtable()
|
|
Try
|
|
check_changes()
|
|
Me.domaintablebottom.dispose()
|
|
Catch
|
|
End Try
|
|
|
|
Dim keyvalue As String = ""
|
|
|
|
If Fokus = 1 Then
|
|
keyvalue = Me.C1DatenLeft.Columns(0).Value
|
|
Else
|
|
keyvalue = Me.C1DatenRight.Columns(0).Value
|
|
End If
|
|
Me.domaintablebottom = New TKB.VV.Sysadmin.DomainTable(Me.TablenameBottom, Fokus, keyvalue)
|
|
Me.C1DatenBottom.DataSource = domaintablebottom.Tabledata
|
|
Me.C1DatenBottom.DataMember = domaintablebottom.Tabledata.Tables(0).TableName
|
|
SpaltenTitel.Spaltentitel_aktualisieren(Me.C1DatenBottom, TablenameBottom, Me.domaintablebottom.Tabledata)
|
|
End Sub
|
|
|
|
|
|
''' <summary>
|
|
''' Linker Fokus-Knopf betätigt
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub BtnFocusLeft_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFocusLeft.Click
|
|
Fokus = 1
|
|
Me.BtnFocusLeft.ImageIndex = 1
|
|
Me.BtnFocusRight.ImageIndex = 2
|
|
Refresh_Bottomtable()
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Rechter Fokus-Knopf betätigt
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub BtnFocusRight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFocusRight.Click
|
|
Me.Fokus = 2
|
|
Me.BtnFocusRight.ImageIndex = 1
|
|
Me.BtnFocusLeft.ImageIndex = 2
|
|
Refresh_Bottomtable()
|
|
End Sub
|
|
''' <summary>
|
|
''' Prüfung, ob Verbindungstabelle geändert wurde.
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub check_changes()
|
|
If first Then Exit Sub
|
|
Dim msgres As MsgBoxResult
|
|
If Me.domaintablebottom.Tabledata.HasChanges Then
|
|
msgres = msg.Show_MessageYesNo(3)
|
|
If msgres = MsgBoxResult.Yes Then
|
|
Me.domaintablebottom.Save_Data()
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Formular schliessen
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
|
|
check_changes()
|
|
Me.Close()
|
|
End Sub
|
|
''' <summary>
|
|
''' Formular schliessen
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
|
|
check_changes()
|
|
Me.Close()
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Formular-Resize: Button Verbinden und Button Focus-Rechts neu positionieren
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub FrmVerbindungEditor_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
|
|
Me.BtnFocusRight.Left = Me.Width - (Me.BtnFocusRight.Width + 10)
|
|
Me.BtnVerbinden.Left = Me.SplitContainer2.Panel1.Width - (Me.BtnVerbinden.Width / 2)
|
|
End Sub
|
|
''' <summary>
|
|
''' Verbindungstabelle sichern
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click
|
|
Me.domaintablebottom.Save_Data()
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Nach Datenmutation der unteren Tabelle mutiert_am und mutierer nachführen
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub C1DatenBottom_AfterColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1DatenBottom.AfterColUpdate
|
|
Dim i As Integer
|
|
For i = 0 To Me.C1DatenBottom.Columns.Count - 1
|
|
If LCase(Me.C1DatenBottom.Columns(i).DataField) = "mutiert_am" Then Me.C1DatenBottom.Columns(i).Value = Now
|
|
If LCase(Me.C1DatenBottom.Columns(i).DataField) = "mutierer" Then Me.C1DatenBottom.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value
|
|
Next
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Doppelklick in linken Grid
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub C1DatenLeft_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1DatenLeft.DoubleClick
|
|
Try
|
|
Me.BtnVerbinden_Click(sender, e)
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
''' <summary>
|
|
''' Linke Tabelle angeklickt
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TBLeft_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C1DatenLeft.RowColChange
|
|
Try
|
|
check_changes()
|
|
Refresh_Bottomtable()
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
''' <summary>
|
|
''' Doppelklick im rechten Grid
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub C1DatenRight_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1DatenRight.DoubleClick
|
|
Try
|
|
Me.BtnVerbinden_Click(sender, e)
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
End Sub
|
|
''' <summary>
|
|
''' Rechte Tabelle angeklickt
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TBRight_Click(ByVal sender As System.Object, ByVal e As C1.Win.C1TrueDBGrid.RowColChangeEventArgs) Handles C1DatenRight.RowColChange
|
|
check_changes()
|
|
Refresh_Bottomtable()
|
|
End Sub
|
|
''' <summary>
|
|
''' Die linke und rechte Domain-Table in der unteren Tabelle verbinden.
|
|
''' Daten sichern und erneut laden
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub BtnVerbinden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVerbinden.Click
|
|
check_changes()
|
|
Dim ileft As Integer = Me.C1DatenLeft.SelectedRows.Count
|
|
Dim iright As Integer = Me.C1DatenRight.SelectedRows.Count
|
|
Dim ic As Integer = 0
|
|
Dim Currentsel As Boolean
|
|
Dim colrows As C1.Win.C1TrueDBGrid.SelectedRowCollection
|
|
Dim keyvalueleft As Integer = 0
|
|
Dim Keyvalueright As Integer = 0
|
|
If (Me.Fokus = 1 And ileft > 1) Or (Me.Fokus = 2 And iright > 1) Then
|
|
Me.msg.show_standardmessage(4, MsgBoxStyle.Exclamation)
|
|
Exit Sub
|
|
End If
|
|
If Me.Fokus = 1 Then
|
|
ic = iright
|
|
colrows = Me.C1DatenRight.SelectedRows
|
|
End If
|
|
If Me.Fokus = 2 Then
|
|
ic = ileft
|
|
colrows = Me.C1DatenLeft.SelectedRows
|
|
End If
|
|
If ic = 0 Then
|
|
ic = ic + 1
|
|
Currentsel = True
|
|
End If
|
|
Dim i As Integer
|
|
For i = 0 To ic - 1
|
|
If Me.Fokus = 1 Then
|
|
keyvalueleft = Me.C1DatenLeft.Columns(0).Value
|
|
If Currentsel = True Then
|
|
Keyvalueright = Me.C1DatenRight.Columns(0).Value
|
|
Else
|
|
Keyvalueright = Me.C1DatenRight.Columns(0).CellValue(colrows(i))
|
|
End If
|
|
Else
|
|
Keyvalueright = Me.C1DatenRight.Columns(0).Value
|
|
If Currentsel = True Then
|
|
keyvalueleft = Me.C1DatenLeft.Columns(0).Value
|
|
Else
|
|
keyvalueleft = Me.C1DatenLeft.Columns(0).CellValue(colrows(i))
|
|
End If
|
|
End If
|
|
Next
|
|
Me.domaintablebottom.Insert_Bottom_Table(Me.Domaintableleft.Tabledata.Tables(0).Columns(0).ColumnName, keyvalueleft, Me.Domaintableright.Tabledata.Tables(0).Columns(0).ColumnName, Keyvalueright)
|
|
Me.domaintablebottom.Save_Data()
|
|
Me.Refresh_Bottomtable()
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Anzeige allfälliger Cellen-Tips
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub C1DatenBottom_FetchCellTips(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchCellTipsEventArgs) Handles C1DatenBottom.FetchCellTips
|
|
Dim ts As New TKB.VV.Utils.Tabellenspalte
|
|
ts.Tabelle = Me.TablenameBottom
|
|
Try
|
|
ts.Feld = Me.C1DatenBottom.Columns(e.ColIndex).DataField.ToString
|
|
ts.getspalte()
|
|
e.CellTip = ts.TipText
|
|
Catch
|
|
End Try
|
|
ts = Nothing
|
|
|
|
End Sub
|
|
End Class |