Initial commit
This commit is contained in:
@@ -0,0 +1,316 @@
|
||||
''' <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 Sysadmin.DomainTable
|
||||
Dim Domaintableright As Sysadmin.DomainTable
|
||||
Dim domaintablebottom As Sysadmin.DomainTable
|
||||
Dim SpaltenTitel As New 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 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 Sysadmin.DomainTable(TableLeft)
|
||||
Me.Domaintableright = New 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 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 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
|
||||
Reference in New Issue
Block a user