Imports System Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Imports System.ComponentModel Public Class ctlPhasen Dim m_Connectionstring As String _ Public Property ConnectionString() As String Get ConnectionString = m_Connectionstring End Get Set(ByVal Value As String) If m_Connectionstring <> Value Then End If End Set End Property Dim m_haschanges As Boolean = False Public Property HasChanges As Boolean Get Return m_haschanges End Get Set(value As Boolean) m_haschanges = value End Set End Property Dim m_Produktnr As Integer Property Produktnr As Integer Get Return m_Produktnr End Get Set(value As Integer) Try m_Produktnr = value refresh_details() Catch End Try End Set End Property Dim m_mitarbeiternr As Integer Property Mitarbeiternr As Integer Get Return m_mitarbeiternr End Get Set(value As Integer) m_mitarbeiternr = value End Set End Property Dim m_tempfilepath As String Property TempfilePath As String Get Return m_tempfilepath End Get Set(value As String) m_tempfilepath = value End Set End Property Dim m_formreadonly As Boolean Property FormReadonly As Boolean Get Return m_formreadonly End Get Set(value As Boolean) m_formreadonly = value If value = True Then Me.ToolStrip1.Visible = False Me.ContextMenuStrip1.Enabled = False Else Me.ToolStrip1.Visible = True Me.ContextMenuStrip1.Enabled = True End If End Set End Property Dim Phasendaten As New DataTable Dim DSPhasen As New DataSet Dim PhaseStammdaten As New DataTable Dim SpaltenTitel As New TKB.VV.Utils.Tabellenspalte Dim DAP As SqlDataAdapter Dim produktphase As New TKB.VV.Lifecycle.clslcProduktPhase Private Sub refresh_details() Try C1Phasen.DataSource = Nothing Catch End Try Me.Phasendaten.Rows.Clear() Get_Produktphasen(Me.Produktnr) Refresh_Phasen() End Sub Sub Refresh_Phasen() Try Me.C1Phasen.DataSource = Nothing Me.C1Phasen.DataSource = Nothing Catch End Try Phasendaten.Rows.Clear() Get_Phasen() Get_Produktphasen(Me.Produktnr) Me.C1Phasen.DataSource = Phasendaten Me.SpaltenTitel.Spaltentitel_aktualisieren(C1Phasen, "LC_Produkt_Phase", Me.C1Phasen.DataSource) Me.C1Phasen.Splits(0).DisplayColumns("lc_Phasenr").Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.General Me.C1Phasen.Splits(0).DisplayColumns("lc_phasenr").FetchStyle = True Me.C1Phasen.Columns("Datum").NumberFormat = "Short Date" Me.C1PhaseDropDown.DataSource = PhaseStammdaten Me.C1PhaseDropDown.DisplayMember = "Bezeichnung" Me.C1PhaseDropDown.ValueMember = "lc_phasenr" Try Me.C1Phasen.Columns("LC_PhaseNr").DropDown = Me.C1PhaseDropDown Me.C1PhaseDropDown.ValueTranslate = True Me.C1PhaseDropDown.DisplayColumns(0).Width = 0 Me.C1Phasen.Columns("LC_PhaseNr").ValueItems.Translate = True Catch End Try End Sub Private Sub C1TrueDBGrid1_FetchCellStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchCellStyleEventArgs) Handles C1Phasen.FetchCellStyle e.CellStyle.Locked = True End Sub #Region "DB" Sub Get_Produktphasen(produktnr As Integer) Try Dim Connection As New SqlConnection(Globals.sConnectionString) DAP = New SqlDataAdapter("select * from lc_produkt_phase where lc_produktnr = " & Str(produktnr) + " order by datum asc", Connection) Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DAP) DAP.Fill(Phasendaten) Catch ex As Exception End Try End Sub Sub Get_Phasen() Try Me.PhaseStammdaten.Rows.Clear() Dim Connection As New SqlConnection(Globals.sConnectionString) Dim DA As New SqlDataAdapter("select * from lc_phase where aktiv=1", Connection) Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA) DA.Fill(PhaseStammdaten) Catch End Try End Sub Sub Save_Phasen() Try DAP.Update(Phasendaten) Me.HasChanges = False Catch ex As Exception End Try End Sub #End Region Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click Try Dim f As New frmPhaseDetail(Me.C1Phasen.Columns("lc_produkt_phasenr").Value, Me.Produktnr, False) f.ShowDialog() If f.DialogResult = DialogResult.OK Then Refresh_Phasen() Catch End Try End Sub Private Sub C1Phasen_AfterUpdate(sender As Object, e As C1.Win.C1TrueDBGrid.CancelEventArgs) Handles C1Phasen.BeforeUpdate Me.C1Phasen.Columns("mutiert_am").Value = Now Me.C1Phasen.Columns("mutierer").Value = Globals.clsmitarbeiter.iMitarbeiternr.Value Me.HasChanges = True End Sub Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click Dim f As New frmPhaseDetail(0, Me.Produktnr, True) f.ShowDialog() If f.DialogResult = DialogResult.OK Then Refresh_Phasen() End Sub Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click Try Dim i As Integer i = produktphase.Get_ProduktPhase(Me.C1Phasen.Columns("lc_produkt_phasenr").Value) Catch Exit Sub Catch ex As Exception End Try If MsgBox("Datensatz inaktivieren?", vbYesNo + vbQuestion) = MsgBoxResult.Yes Then produktphase.Get_ProduktPhase(Me.C1Phasen.Columns("lc_produkt_phasenr").Value) produktphase.Delete() Refresh_Phasen() End If End Sub Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click Try Dim f As New frmPhaseDetail(Me.C1Phasen.Columns("lc_produkt_phasenr").Value, Me.Produktnr, False, True) f.ShowDialog() Catch End Try End Sub Private Sub C1Phasen_DoubleClick(sender As Object, e As EventArgs) Handles C1Phasen.DoubleClick If Me.FormReadonly = True Then ToolStripButton3_Click(sender, e) Else ToolStripButton4_Click(sender, e) End If End Sub Private Sub NeuerEintragToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeuerEintragToolStripMenuItem.Click Me.ToolStripButton1_Click(sender, e) End Sub Private Sub EintragBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragBearbeitenToolStripMenuItem.Click Try Me.ToolStripButton4_Click(sender, e) Catch End Try End Sub Private Sub EintragInaktivierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragInaktivierenToolStripMenuItem.Click ToolStripButton2_Click(sender, e) End Sub Private Sub EintragAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EintragAnzeigenToolStripMenuItem.Click ToolStripButton3_Click(sender, e) End Sub Private Sub C1Phasen_FetchCellTips(sender As Object, e As C1.Win.C1TrueDBGrid.FetchCellTipsEventArgs) Handles C1Phasen.FetchCellTips Try If e.Column.Name <> "Phase" Then e.CellTip = "" Exit Sub End If For Each r As DataRow In Me.PhaseStammdaten.Rows Dim phasenr As Integer phasenr = Me.C1Phasen.Columns("LC_Phasenr").Value If r("lc_phasenr") = phasenr Then Me.ToolStrip1.Text = r("bESCHREIBUNG") e.CellTip = r("bESCHREIBUNG") End If Next ' Me.C1SuperTooltip1.SetToolTip(sender, e.CellTip) 'e.CellTip = "" 'disable the Catch ex As Exception End Try End Sub Private Sub C1Phasen_MouseDown(sender As Object, e As MouseEventArgs) Handles C1Phasen.MouseDown End Sub Private Sub c1phasen_mouseOver(sender As Object, e As MouseEventArgs) Handles C1Phasen.MouseMove 'Me.C1Phasen.Bookmark = Me.C1Phasen.RowContaining(e.Y) 'Exit Sub Dim row As Int32 = C1Phasen.RowContaining(e.Y) Dim col As Int32 = C1Phasen.ColContaining(e.X) Dim ptenum As C1.Win.C1TrueDBGrid.PointAtEnum = C1Phasen.PointAt(e.X, e.Y) If col = 2 Then Me.C1Phasen.Bookmark = Me.C1Phasen.RowContaining(e.Y) End If End Sub Private Sub C1Phasen_MouseEnter(sender As Object, e As EventArgs) Handles C1Phasen.MouseEnter Me.C1Phasen.Focus() End Sub End Class