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.

236 lines
9.4 KiB

''' <summary>
''' Form mit generalisiertem Domain-Table-Editor.
''' </summary>
''' <remarks>
''' <img src="SampleDomainEditor.png"/>
''' </remarks>
''' <seealso
''' cref="Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable">Vertragsverwaltung.TKB.VV.Sysadmin.DomainTable</seealso>
Public Class frmDomainEditor
#Region "Deklarationen"
Dim Domaintable As TKB.VV.Sysadmin.DomainTable
Dim tablename As String
Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte
#End Region
#Region "Formular-Funktionen"
''' <summary>
''' Tabellenname übernehmen und Objekt DomainTable initialisieren
''' Initialisierung der Komponenten
''' </summary>
''' <param name="tblname">Tabellenname der Tabelle, welche über den Domaineditor editiert werden soll</param>
''' <remarks>Benötigt werden entsprechende Stored_Procedures, welche mit LBLLGEN_2 generiert wurden
''' pr_"Tablename"_SelectAll
''' pr_"Tablename"_Update
''' </remarks>
Public Sub New(ByVal tblname As String)
Domaintable = New TKB.VV.Sysadmin.DomainTable(tblname)
Me.InitializeComponent()
Me.Text = "Domaineditor: " & tblname
Me.tablename = tblname
End Sub
''' <summary>
''' Zuordnung der Daten aus Domaintable und Spaltentitel des Grids setzen
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub frmDomainEditor_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Me.Domaintable.Tablename = "Auswertung" Then
Me.C1Daten.ContextMenuStrip = Me.ContextMenuStripAuswertung
End If
Me.C1Daten.DataSource = Domaintable.Tabledata
Me.C1Daten.DataMember = Domaintable.Tabledata.Tables(0).TableName
SpaltenTitel.Spaltentitel_aktualisieren(Me.C1Daten, Me.tablename, Me.Domaintable.Tabledata.Tables(0))
End Sub
''' <summary>
''' Schliessen des Formulars
''' </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
Me.Close()
End Sub
''' <summary>
''' Ruft BeendetnToolStipMenuItem_Click auf
''' </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
BeendenToolStripMenuItem_Click(sender, e)
End Sub
''' <summary>
''' Prüfung auf allfällige Daten-Changes. Wurden Daten verändert, kann der User entscheiden, ob gespeichert, nichtgespeichert oder
''' das Formular nicht gespeichert werden soll.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub frmDomainEditor_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Me.Domaintable.Tabledata.HasChanges Then
Dim msg As New TKB.VV.Utils.MyMessage
Dim msgboxres As MsgBoxResult
msgboxres = msg.Show_MessageYesNoCancel(3)
If msgboxres = MsgBoxResult.Cancel Then
e.Cancel = True
Exit Sub
End If
If msgboxres = MsgBoxResult.Yes Then
Domaintable.Save_Data()
End If
End If
If UCase(Me.tablename) = "SPALTEN" Then
Globals.Spaltendaten.Rows.Clear()
End If
Domaintable.dispose()
End Sub
''' <summary>
''' Sichern der Daten
''' </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
Try
Domaintable.Save_Data()
If UCase(Me.tablename) = "SPALTEN" Then
Globals.Spaltendaten.Rows.Clear()
End If
If UCase(Me.tablename) = "TOOLTIP" Then
Globals.ToolTipDaten.Tables.Clear()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
#End Region
#Region "C1 Handling"
''' <summary>
''' Aktualisierung der Spalten mutiert_am und mutierern. Sofern noch kein Schlüsselwert gesetzt ist (bei neuem Datensatz)
''' wird dieser aus der Keytabelle ausgelesen und zugewiesen.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks>Je Domaintable ist ein Eintrag in der Key-Tabelle notwendig</remarks>
Private Sub C1Daten_AfterColUpdate(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.ColEventArgs) Handles C1Daten.AfterColUpdate
'Aktualisieren von Mutierer und Mutiert_am
Dim i As Integer
Try
For i = 0 To Me.C1Daten.Columns.Count - 1
If LCase(Me.C1Daten.Columns(i).DataField) = "mutiert_am" Then Me.C1Daten.Columns(i).Value = Now
If LCase(Me.C1Daten.Columns(i).DataField) = "mutierer" Then Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value
Next
'neuer DB-Key auslösen, sofern kein Key vorhanden ist
If Me.C1Daten.Columns(0).Value Is DBNull.Value Then
Dim dbkey As New TKB.VV.DB.clsMyKey_Tabelle()
Dim key As Long
dbkey.cpMainConnectionProvider = conn
key = dbkey.get_dbkey(tablename)
Me.C1Daten.Columns(0).Value = key
For i = 0 To Me.C1Daten.Columns.Count - 1
If LCase(Me.C1Daten.Columns(i).DataField) = "mandantnr" Then
Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value
End If
If LCase(Me.C1Daten.Columns(i).DataField) = "erstellt_am" Then
Me.C1Daten.Columns(i).Value = Now
End If
If LCase(Me.C1Daten.Columns(i).DataField) = "aktiv" Then
Me.C1Daten.Columns(i).Value = 1
End If
Next
dbkey.Dispose()
End If
Catch
End Try
End Sub
''' <summary>
''' Aktualisierung der Default-Werte
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub C1Daten_AfterInsert(ByVal sender As Object, ByVal e As System.EventArgs) Handles C1Daten.AfterInsert
'Dim i As Integer
''Defaulwerte erstellt_am, mutiert_am, mutierer und aktiv setzen
'Try
' For i = 0 To C1Daten.Columns.Count - 1
' If LCase(Me.C1Daten.Columns(i).DataField) = "aktiv" Then
' Me.C1Daten.Columns(i).Value = 1
' End If
' If LCase(Me.C1Daten.Columns(i).DataField) = "mutiert_am" Then
' Me.C1Daten.Columns(i).Value = Now
' End If
' If LCase(Me.C1Daten.Columns(i).DataField) = "mutierer" Then
' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value
' End If
' If LCase(Me.C1Daten.Columns(i).DataField) = "mandantnr" Then
' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value
' End If
' If LCase(Me.C1Daten.Columns(i).DataField) = "mandnat" Then
' Me.C1Daten.Columns(i).Value = Globals.clsmitarbeiter.iMandantnr.Value
' End If
' Next
'Catch
'End Try
End Sub
''' <summary>
''' Anzeige allfälliger Cellen-Tips
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub C1Daten_FetchCellTips(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchCellTipsEventArgs) Handles C1Daten.FetchCellTips
Dim ts As New TKB.VV.Utils.Tabellenspalte
ts.Tabelle = Me.tablename
Try
'ts.Feld = Me.C1Daten.Splits(0).DisplayColumns(e.ColIndex).Name
ts.Feld = Me.C1Daten.Columns(e.ColIndex).DataField
ts.getspalte()
e.CellTip = ts.TipText
Catch
End Try
ts = Nothing
End Sub
#End Region
Private Sub ReportdateiDBToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReportdateiDBToolStripMenuItem.Click
Me.OpenFileDialog1.Filter = "Report-Dateien|*.rpt|Alle Dateien|*.*"
Me.OpenFileDialog1.ShowDialog()
If Me.OpenFileDialog1.FileName <> "" Then
Dim dms As New TKB.VV.Utils.MyDocMgmt
Me.C1Daten.Columns("CR_Filename").Value = dms.Save_RptDatei(Me.C1Daten.Columns("Auswertungnr").Value, Me.OpenFileDialog1.FileName)
dms = Nothing
End If
End Sub
Private Sub ReportdateiFilesystemToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReportdateiFilesystemToolStripMenuItem.Click
Me.SaveFileDialog1.Filter = "Report-Dateien|*.rpt|Alle Dateien|*.*"
Me.SaveFileDialog1.ShowDialog()
If Me.SaveFileDialog1.FileName <> "" Then
Dim dms As New TKB.VV.Utils.MyDocMgmt
dms.Get_RptDatei(Me.C1Daten.Columns("Auswertungnr").Value, Me.SaveFileDialog1.FileName)
dms = Nothing
End If
End Sub
End Class