Head-Filter für Besuchsberichte eingebaut
This commit is contained in:
@@ -23,25 +23,34 @@ Partial Class usrCntlBesuchsberichte
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
Me.pnlFilter = New System.Windows.Forms.Panel()
|
||||
Me.dgvFILTER = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Panel1 = New System.Windows.Forms.Panel()
|
||||
Me.btnNew = New System.Windows.Forms.Button()
|
||||
Me.btnDelete = New System.Windows.Forms.Button()
|
||||
Me.dgvBesuchsberichte = New VERAG_PROG_ALLGEMEIN.MyDatagridview(Me.components)
|
||||
Me.lblEinträge = New System.Windows.Forms.Label()
|
||||
CType(Me.dgvFILTER, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.Panel1.SuspendLayout()
|
||||
CType(Me.dgvBesuchsberichte, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'pnlFilter
|
||||
'dgvFILTER
|
||||
'
|
||||
Me.pnlFilter.BackColor = System.Drawing.Color.White
|
||||
Me.pnlFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||
Me.pnlFilter.Dock = System.Windows.Forms.DockStyle.Bottom
|
||||
Me.pnlFilter.Location = New System.Drawing.Point(0, 43)
|
||||
Me.pnlFilter.Name = "pnlFilter"
|
||||
Me.pnlFilter.Size = New System.Drawing.Size(1072, 34)
|
||||
Me.pnlFilter.TabIndex = 11
|
||||
Me.dgvFILTER.AKTUALISIERUNGS_INTERVALL = -1
|
||||
Me.dgvFILTER.AllowUserToAddRows = False
|
||||
Me.dgvFILTER.AllowUserToDeleteRows = False
|
||||
Me.dgvFILTER.AllowUserToResizeColumns = False
|
||||
Me.dgvFILTER.AllowUserToResizeRows = False
|
||||
Me.dgvFILTER.BackgroundColor = System.Drawing.Color.White
|
||||
Me.dgvFILTER.BorderStyle = System.Windows.Forms.BorderStyle.None
|
||||
Me.dgvFILTER.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
|
||||
Me.dgvFILTER.ColumnHeadersVisible = False
|
||||
Me.dgvFILTER.Location = New System.Drawing.Point(0, 45)
|
||||
Me.dgvFILTER.Name = "dgvFILTER"
|
||||
Me.dgvFILTER.ScrollBars = System.Windows.Forms.ScrollBars.None
|
||||
Me.dgvFILTER.Size = New System.Drawing.Size(1072, 34)
|
||||
Me.dgvFILTER.TabIndex = 16
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
@@ -57,14 +66,15 @@ Partial Class usrCntlBesuchsberichte
|
||||
'Panel1
|
||||
'
|
||||
Me.Panel1.BackColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer))
|
||||
Me.Panel1.Controls.Add(Me.lblEinträge)
|
||||
Me.Panel1.Controls.Add(Me.dgvFILTER)
|
||||
Me.Panel1.Controls.Add(Me.btnNew)
|
||||
Me.Panel1.Controls.Add(Me.Label1)
|
||||
Me.Panel1.Controls.Add(Me.btnDelete)
|
||||
Me.Panel1.Controls.Add(Me.pnlFilter)
|
||||
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top
|
||||
Me.Panel1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.Panel1.Name = "Panel1"
|
||||
Me.Panel1.Size = New System.Drawing.Size(1072, 77)
|
||||
Me.Panel1.Size = New System.Drawing.Size(1072, 79)
|
||||
Me.Panel1.TabIndex = 13
|
||||
'
|
||||
'btnNew
|
||||
@@ -108,13 +118,23 @@ Partial Class usrCntlBesuchsberichte
|
||||
Me.dgvBesuchsberichte.AllowUserToResizeRows = False
|
||||
Me.dgvBesuchsberichte.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
|
||||
Me.dgvBesuchsberichte.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.dgvBesuchsberichte.Location = New System.Drawing.Point(0, 77)
|
||||
Me.dgvBesuchsberichte.Location = New System.Drawing.Point(0, 79)
|
||||
Me.dgvBesuchsberichte.Name = "dgvBesuchsberichte"
|
||||
Me.dgvBesuchsberichte.ReadOnly = True
|
||||
Me.dgvBesuchsberichte.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
|
||||
Me.dgvBesuchsberichte.Size = New System.Drawing.Size(1072, 530)
|
||||
Me.dgvBesuchsberichte.Size = New System.Drawing.Size(1072, 528)
|
||||
Me.dgvBesuchsberichte.TabIndex = 15
|
||||
'
|
||||
'lblEinträge
|
||||
'
|
||||
Me.lblEinträge.AutoSize = True
|
||||
Me.lblEinträge.BackColor = System.Drawing.Color.White
|
||||
Me.lblEinträge.Location = New System.Drawing.Point(817, 29)
|
||||
Me.lblEinträge.Name = "lblEinträge"
|
||||
Me.lblEinträge.Size = New System.Drawing.Size(58, 13)
|
||||
Me.lblEinträge.TabIndex = 41
|
||||
Me.lblEinträge.Text = "0 Einträge "
|
||||
'
|
||||
'usrCntlBesuchsberichte
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
@@ -123,16 +143,18 @@ Partial Class usrCntlBesuchsberichte
|
||||
Me.Controls.Add(Me.Panel1)
|
||||
Me.Name = "usrCntlBesuchsberichte"
|
||||
Me.Size = New System.Drawing.Size(1072, 607)
|
||||
CType(Me.dgvFILTER, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.Panel1.ResumeLayout(False)
|
||||
Me.Panel1.PerformLayout()
|
||||
CType(Me.dgvBesuchsberichte, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
|
||||
End Sub
|
||||
Friend WithEvents pnlFilter As System.Windows.Forms.Panel
|
||||
Friend WithEvents Label1 As System.Windows.Forms.Label
|
||||
Friend WithEvents Panel1 As System.Windows.Forms.Panel
|
||||
Friend WithEvents dgvBesuchsberichte As VERAG_PROG_ALLGEMEIN.MyDatagridview
|
||||
Friend WithEvents btnNew As Button
|
||||
Friend WithEvents btnDelete As Button
|
||||
Friend WithEvents dgvFILTER As VERAG_PROG_ALLGEMEIN.MyDatagridview
|
||||
Friend WithEvents Panel1 As Panel
|
||||
Friend WithEvents lblEinträge As Label
|
||||
End Class
|
||||
|
||||
@@ -4,20 +4,37 @@ Public Class usrCntlBesuchsberichte
|
||||
|
||||
Public kdnr As Integer = -1
|
||||
Dim SQL As New SQL
|
||||
Dim dgvInitWait As Boolean = False
|
||||
Public kdNr_filter As Boolean = False
|
||||
Dim txtchanged As Boolean = False
|
||||
Dim fullyPainted = False
|
||||
|
||||
Private Sub usrCntlBesuchsberichte_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
|
||||
initDGV()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Sub initDGV()
|
||||
Sub initDGV(Optional doFilter = False)
|
||||
|
||||
Dim SQLCmd = "SELECT TOP (200) [bb_Id],[bb_DatumBesuch],[bb_KundenNr],[bb_Kunde] ,[bb_Anpsprechpartner] ,[bb_Vermerk],[bb_Sachbearbeiter] FROM [VERAG].[dbo].[tblBesuchsberichte] WHERE bb_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' " & If(kdnr > 0, " AND bb_KundenNr='" & kdnr & "'", "")
|
||||
|
||||
If doFilter Then
|
||||
newBinding(SQLCmd, doFilter)
|
||||
Else
|
||||
initFilter()
|
||||
With dgvBesuchsberichte
|
||||
|
||||
.SET_SQL(SQLCmd, "FMZOLL")
|
||||
|
||||
.LOAD()
|
||||
|
||||
End With
|
||||
End If
|
||||
|
||||
With dgvBesuchsberichte
|
||||
|
||||
.SET_SQL("SELECT TOP (1000) [bb_Id],[bb_DatumBesuch],[bb_KundenNr],[bb_Kunde] ,[bb_Anpsprechpartner] ,[bb_Vermerk],[bb_Sachbearbeiter] FROM [VERAG].[dbo].[tblBesuchsberichte] WHERE bb_Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' " & If(kdnr > 0, " AND bb_KundenNr='" & kdnr & "'", ""), "FMZOLL")
|
||||
|
||||
.LOAD()
|
||||
|
||||
If .Columns.Count > 0 Then
|
||||
.Columns("bb_DatumBesuch").Width = 150
|
||||
.Columns("bb_DatumBesuch").HeaderText = "Datum"
|
||||
@@ -45,6 +62,8 @@ Public Class usrCntlBesuchsberichte
|
||||
|
||||
btnDelete.Enabled = False
|
||||
|
||||
lblEinträge.Text = dgvBesuchsberichte.RowCount & " Einträge"
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub dgvBesuchsberichteDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvBesuchsberichte.CellDoubleClick
|
||||
@@ -80,4 +99,173 @@ Public Class usrCntlBesuchsberichte
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub dgvBesuchsberichte_SelectionChanged(sender As Object, e As EventArgs) Handles dgvBesuchsberichte.SelectionChanged
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub dgvFILTER_SelectionChanged(sender As Object, e As EventArgs) Handles dgvFILTER.SelectionChanged
|
||||
dgvFILTER.ClearSelection()
|
||||
End Sub
|
||||
|
||||
Private Sub dgvFILTER_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvFILTER.CellContentClick
|
||||
If dgvFILTER.Columns(e.ColumnIndex).GetType Is GetType(DataGridViewCheckBoxColumn) Then
|
||||
dgvBesuchsberichte.Focus()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub dgvFILTER_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles dgvFILTER.CellValueChanged
|
||||
initDGV(True)
|
||||
|
||||
End Sub
|
||||
|
||||
Sub initFilter()
|
||||
dgvInitWait = True
|
||||
|
||||
dgvFILTER.RowTemplate.Height = dgvFILTER.Height
|
||||
If Not Me.fullyPainted Then Exit Sub ' nur wenn die usrcntl komplett gelden wurde...
|
||||
Try
|
||||
dgvFILTER.Columns.Clear()
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
For Each c As DataGridViewColumn In dgvBesuchsberichte.Columns
|
||||
Dim cNew As DataGridViewColumn = c.Clone
|
||||
'MsgBox("Create Filter Column " & cNew.HeaderText)
|
||||
|
||||
cNew.MinimumWidth = c.Width
|
||||
dgvFILTER.Columns.Add(cNew)
|
||||
If cNew.GetType Is GetType(DataGridViewCheckBoxColumn) Then
|
||||
DirectCast(cNew, DataGridViewCheckBoxColumn).ThreeState = True
|
||||
DirectCast(cNew, DataGridViewCheckBoxColumn).DefaultCellStyle.NullValue = CheckState.Indeterminate
|
||||
End If
|
||||
Next
|
||||
|
||||
If dgvFILTER IsNot Nothing AndAlso dgvFILTER.ColumnCount > 0 Then
|
||||
dgvFILTER.Rows.Add()
|
||||
dgvFILTER.Width = dgvBesuchsberichte.Width
|
||||
End If
|
||||
|
||||
dgvInitWait = False
|
||||
|
||||
End Sub
|
||||
|
||||
Function getSqlText(t) As String
|
||||
Try
|
||||
Return t.Replace("'", "")
|
||||
Catch ex As Exception
|
||||
Return ""
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
Function getFilter() As String
|
||||
|
||||
Dim filter As String = ""
|
||||
Dim andstr As String = ""
|
||||
|
||||
If dgvFILTER.RowCount > 0 Then
|
||||
'MsgBox("Filter aktiviert")
|
||||
For Each c As DataGridViewCell In dgvFILTER.Rows(0).Cells
|
||||
If c.Value IsNot DBNull.Value Then
|
||||
If c.GetType Is GetType(DataGridViewTextBoxCell) Then
|
||||
If c.Value IsNot Nothing AndAlso c.Value <> "" Then
|
||||
'Noch prüfen, was hier genau gemacht wird!!!!
|
||||
Dim srchstr = getSqlText(c.Value.ToString.Trim)
|
||||
If c.OwningColumn.Name.Contains("SDLNr") Then
|
||||
filter &= andstr & " SDL.[" & c.OwningColumn.Name & "] LIKE '%" & srchstr & "%' "
|
||||
ElseIf c.OwningColumn.Name.Contains("IDS-KdNr") Then
|
||||
filter &= andstr & " (SELECT TOP 1 [CustomerCode] FROM [VERAG].[dbo].[tbl_IDS_Kunden] WHERE [KdNrVERAG]=KundenNr AND KdNrAlt =0 ORDER BY Zeitstempel DESC) LIKE '%" & srchstr & "%' "
|
||||
ElseIf IsDate(srchstr) Then
|
||||
If srchstr.ToLower = "ist null" Then
|
||||
filter &= andstr & "( [" & c.OwningColumn.Name & "] is null ) "
|
||||
Else
|
||||
filter &= andstr & " convert(varchar,[" & c.OwningColumn.Name & "] ,104) LIKE '%" & srchstr & "%' "
|
||||
End If
|
||||
Else
|
||||
If srchstr.ToLower = "ist null" Then
|
||||
filter &= andstr & "( [" & c.OwningColumn.Name & "] LIKE '' OR [" & c.OwningColumn.Name & "] is null ) "
|
||||
Else
|
||||
filter &= andstr & " [" & c.OwningColumn.Name & "] LIKE '%" & srchstr & "%' "
|
||||
End If
|
||||
End If
|
||||
andstr = " AND "
|
||||
'bis hier
|
||||
End If
|
||||
ElseIf c.GetType Is GetType(DataGridViewCheckBoxCell) Then
|
||||
If c.Value IsNot Nothing AndAlso c.Value.ToString <> "" Then
|
||||
If c.Value = CheckState.Checked Then
|
||||
filter &= andstr & " SDL.[" & c.OwningColumn.Name & "] =1 "
|
||||
andstr = " AND "
|
||||
ElseIf c.Value = CheckState.Unchecked Then
|
||||
filter &= andstr & " SDL.[" & c.OwningColumn.Name & "] =0 "
|
||||
andstr = " AND "
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
Return filter
|
||||
End Function
|
||||
|
||||
|
||||
Protected Overrides Sub WndProc(ByRef m As Message)
|
||||
MyBase.WndProc(m)
|
||||
If m.Msg = 15 AndAlso Not fullyPainted Then
|
||||
fullyPainted = True
|
||||
|
||||
initDGV()
|
||||
initFilter()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub newBinding(ByVal sql As String, doFilter As Boolean)
|
||||
dgvInitWait = True
|
||||
' bindingSDL = Nothing
|
||||
dgvBesuchsberichte.Columns.Clear()
|
||||
dgvBesuchsberichte.VirtualMode = True
|
||||
txtchanged = True
|
||||
dgvInitWait = True
|
||||
If doFilter Then
|
||||
Dim filter As String = getFilter()
|
||||
|
||||
If filter <> "" Then sql &= " AND " & filter
|
||||
' sql &= " ORDER BY sdl.[Erfassungsdatum] ASC"
|
||||
Else
|
||||
' clearFilter()
|
||||
End If
|
||||
If kdNr_filter And kdnr > 0 Then sql &= " AND KundenNr=" & kdnr
|
||||
|
||||
|
||||
|
||||
'Sortierung der tabl-DS
|
||||
'sql &= " ORDER BY sdl.[Bestelldatum] , sdl.[Erfassungsdatum] ASC ,sdl.ts"
|
||||
|
||||
|
||||
'dgvBesuchsberichte.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
|
||||
' dgvSDL.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing '; //or even better .DisableResizing. Most time consumption enum is DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders
|
||||
|
||||
'dgvBesuchsberichte.SET_SQL(sql, "SDL", , {"KundenNr", "KfzKennzeichen", "SDLNr", "History"})
|
||||
|
||||
dgvBesuchsberichte.SET_SQL(sql, "FMZOLL")
|
||||
|
||||
dgvBesuchsberichte.LOAD()
|
||||
|
||||
dgvInitWait = False
|
||||
txtchanged = False
|
||||
dgvInitWait = False
|
||||
dgvBesuchsberichte.ClearSelection()
|
||||
|
||||
|
||||
If dgvBesuchsberichte.RowCount > 0 Then dgvBesuchsberichte.Rows(0).Cells(0).Selected = True
|
||||
|
||||
dgvBesuchsberichte_SelectionChanged(Me, New EventArgs)
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user