300 lines
13 KiB
VB.net
300 lines
13 KiB
VB.net
Imports System.Data.SqlClient
|
|
|
|
Public Class usrCntlVERAGCard
|
|
|
|
|
|
Dim kundenSQL As New kundenSQL
|
|
' Private bindingSDL As New BindingSource
|
|
'Private dataAdapterLKW As New SqlDataAdapter
|
|
Dim SQL As New SQL
|
|
Dim FUNC As New cProgramFunctions
|
|
Dim bindingString As String
|
|
Dim aktbtn As String = ""
|
|
Dim dgvInitWait As Boolean = False
|
|
Public kdnr As Integer
|
|
Dim txtchanged As Boolean = False
|
|
|
|
Public displayFilter As Boolean = True
|
|
Public onlyKdNr As Boolean = False
|
|
|
|
Private Sub usrCntlVERAGCard_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
|
|
' btnFilter.Left = Panel4.Width - btnFilter.Width
|
|
pnlFilter.AutoScroll = False
|
|
'Me.dgvSDL.DataSource = Me.bindingSDL
|
|
|
|
' newBinding("SELECT KartenNr, KundenNr, KfzKennzeichen, Fahrer, Datum, Kaution, BelegNr, Ersatzkarte, Gesperrt, Defekt, Verloren, Gestohlen, Vermerk, Erfassungsdatum, Änderungsdatum, Sachbearbeiter FROM Kartenpool WHERE 1=1 " & where)
|
|
initDGV()
|
|
If displayFilter Then : initFilter()
|
|
Else : pnlFilter.Visible = False : Panel1.Height = 43
|
|
End If
|
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Leistungen_bearbeiten", "SDL") Then
|
|
btnNew.Enabled = False
|
|
btnEdit.Enabled = False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Sub initDGV()
|
|
Try
|
|
|
|
dgvInitWait = True
|
|
txtchanged = True
|
|
With dgvSDL
|
|
Dim sqlstr = "SELECT KartenNr, KundenNr, KfzKennzeichen, Fahrer, Datum, Kaution, BelegNr, Ersatzkarte, Gesperrt, Defekt, Verloren, Gestohlen, Vermerk, Erfassungsdatum, Änderungsdatum, Sachbearbeiter FROM Kartenpool WHERE 1=1 "
|
|
dgvSDL.Columns.Clear()
|
|
' clearFilter()
|
|
If kdnr > 0 Then sqlstr &= " AND KundenNr='" & kdnr & "' "
|
|
Dim filter As String = getFilter()
|
|
If filter <> "" Then sqlstr &= " AND " & filter
|
|
' MsgBox(sqlstr)
|
|
dgvSDL.SET_SQL(sqlstr & "ORDER BY KartenNr", "SDL")
|
|
dgvSDL.LOAD()
|
|
If dgvSDL IsNot Nothing And dgvSDL.ColumnCount > 0 Then
|
|
.RowTemplate.Height = 20
|
|
.AllowUserToOrderColumns = False
|
|
.AllowUserToResizeRows = False
|
|
.Columns("Vermerk").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns("Vermerk").MinimumWidth = 150
|
|
.Columns("Kaution").DefaultCellStyle.Format = String.Format("C2")
|
|
.Columns("Erfassungsdatum").ReadOnly = True
|
|
.Columns("Änderungsdatum").ReadOnly = True
|
|
.Columns("Sachbearbeiter").ReadOnly = True
|
|
If False Then
|
|
|
|
|
|
.Columns("Vermerk").MinimumWidth = 150
|
|
.Columns("Erfassungsdatum").Visible = False
|
|
.Columns("Änderungsdatum").Visible = False
|
|
.Columns("Sachbearbeiter").Visible = False
|
|
.Columns("SDLNr").Width = 50
|
|
If Not aktbtn = "btnSDL_Alle" Then .Columns("SDLNr").Visible = False
|
|
Try
|
|
.Columns("SDLBez").ReadOnly = True
|
|
.Columns("SDLBez").Width = 150
|
|
Catch : End Try
|
|
.Columns("Vermerk").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns("KfzKennzeichen").AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
|
|
.Columns("Vermerk").Width = 250
|
|
.Columns("Ersatzkarte").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
|
|
.Columns("Gesperrt").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
|
|
.Columns("Defekt").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
|
|
.Columns("Verloren").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
|
|
.Columns("Gestohlen").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
|
|
End If
|
|
End If
|
|
End With
|
|
|
|
txtchanged = False
|
|
dgvInitWait = False
|
|
If dgvSDL.RowCount > 0 Then dgvSDL.Rows(0).Cells(0).Selected = True
|
|
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message & ex.StackTrace)
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
Sub initFilter()
|
|
dgvInitWait = True
|
|
Dim left_value As Integer = 40 - dgvSDL.HorizontalScrollingOffset
|
|
pnlFilter.Controls.Clear()
|
|
Dim l As New Label
|
|
l.Left = left_value - 38 : l.Top = 12
|
|
l.Width = 36 : l.Text = "Filter:"
|
|
pnlFilter.Controls.Add(l)
|
|
|
|
If dgvSDL.Rows.Count > 0 Then
|
|
For i As Integer = 0 To dgvSDL.ColumnCount - 1 Step 1
|
|
Dim c As DataGridViewColumn = dgvSDL.Columns(i)
|
|
If c.Visible Then '
|
|
Try
|
|
If c.ValueType.Name = "Boolean" Then
|
|
Dim t As New CheckBox
|
|
t.Left = left_value
|
|
t.Top = 10
|
|
t.CheckAlign = ContentAlignment.MiddleCenter
|
|
t.ThreeState = True
|
|
t.CheckState = CheckState.Indeterminate
|
|
t.Name = "cbxSrch_" & c.Name
|
|
AddHandler t.CheckStateChanged, Sub(snd As Object, ev As KeyEventArgs)
|
|
If ev.KeyCode = Keys.Return Then
|
|
initSearch()
|
|
End If
|
|
End Sub
|
|
t.Width = c.Width
|
|
pnlFilter.Controls.Add(t)
|
|
End If
|
|
If c.ValueType.Name = "String" Or c.ValueType.Name = "Int32" Or c.ValueType.Name = "Decimal" Then
|
|
Dim t As New TextBox
|
|
t.Left = left_value
|
|
t.Top = 10
|
|
t.Name = "txtSrch_" & c.Name
|
|
AddHandler t.KeyDown, Sub(snd As Object, ev As KeyEventArgs)
|
|
If ev.KeyCode = Keys.Return Then
|
|
initSearch()
|
|
End If
|
|
End Sub
|
|
t.Width = c.Width
|
|
pnlFilter.Controls.Add(t)
|
|
End If
|
|
If c.ValueType.Name = "DateTime" Then
|
|
Dim t As New TextBox
|
|
t.Left = left_value
|
|
t.Top = 10
|
|
t.Name = "datSrch_" & c.Name
|
|
AddHandler t.KeyDown, Sub(snd As Object, ev As KeyEventArgs)
|
|
If ev.KeyCode = Keys.Return Then
|
|
initSearch()
|
|
End If
|
|
End Sub
|
|
t.Width = c.Width
|
|
pnlFilter.Controls.Add(t)
|
|
End If
|
|
left_value += c.Width
|
|
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
End If
|
|
Next
|
|
End If
|
|
dgvInitWait = False
|
|
End Sub
|
|
|
|
Sub initSearch() '(sender As Object, e As EventArgs)
|
|
txtchanged = True
|
|
initDGV()
|
|
txtchanged = False
|
|
If dgvSDL.RowCount > 0 Then dgvSDL.Rows(0).Cells(0).Selected = True
|
|
|
|
End Sub
|
|
|
|
Function getSqlText(t) As String
|
|
Return t.Replace("'", "")
|
|
End Function
|
|
Function getFilter() As String
|
|
Dim filter As String = ""
|
|
Dim andstr As String = ""
|
|
If pnlFilter.HasChildren Then
|
|
For Each c In pnlFilter.Controls
|
|
If c.GetType.Name.EndsWith("TextBox") Then
|
|
Try
|
|
Dim t As TextBox = DirectCast(c, TextBox)
|
|
If t.Text <> "" Then
|
|
If t.Name.Contains("txtSrch_") Then
|
|
filter &= andstr & " [" & t.Name.Replace("txtSrch_", "") & "] LIKE '%" & getSqlText(t.Text) & "%' "
|
|
andstr = " AND "
|
|
End If
|
|
If t.Name.Contains("datSrch_") AndAlso t.Text.Length = 10 Then
|
|
filter &= andstr & " ( [" & t.Name.Replace("datSrch_", "") & "] BETWEEN '" & getSqlText(t.Text) & "' AND '" & getSqlText(t.Text) & "' ) "
|
|
andstr = " AND "
|
|
End If
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
End Try
|
|
ElseIf c.GetType.Name.ToString.EndsWith("CheckBox") Then
|
|
Try
|
|
Dim t As CheckBox = DirectCast(c, CheckBox)
|
|
If Not t.CheckState = CheckState.Indeterminate Then
|
|
filter &= andstr & " [" & t.Name.Replace("cbxSrch_", "") & "] = '" & t.CheckState & "' "
|
|
andstr = " AND "
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
End Try
|
|
End If
|
|
Next
|
|
' Me.bindingSDL = New BindingSource
|
|
' Me.dgvSDL.DataSource = Me.bindingSDL
|
|
End If
|
|
Return filter
|
|
End Function
|
|
|
|
Sub clearFilter()
|
|
If pnlFilter.HasChildren Then
|
|
pnlFilter.Controls.Clear()
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub dgvSDL_ColumnWidthChanged(sender As Object, e As DataGridViewColumnEventArgs) Handles dgvSDL.ColumnWidthChanged
|
|
If Not txtchanged Then initFilter()
|
|
End Sub
|
|
|
|
Sub setBindingstring(ByVal b As String)
|
|
bindingString = b
|
|
End Sub
|
|
|
|
|
|
Private Sub dgvLKW_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles dgvSDL.CellValueChanged
|
|
btnUpdate.Enabled = True
|
|
End Sub
|
|
|
|
|
|
Private Sub btnNew_Click(sender As Object, e As EventArgs) Handles btnNew.Click
|
|
' showDetails(kdnr, True, onlyKdNr)
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub dgvSDL_CellContentClick(sender As Object, e As MouseEventArgs) Handles dgvSDL.MouseDoubleClick ', dgvSDL.CellContentClick
|
|
showDetail(dgvSDL.CurrentRow.Cells("KartenNr").Value)
|
|
End Sub
|
|
|
|
Sub showDetail(KarteNnr)
|
|
If Not VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("MDM_Leistungen_bearbeiten", "SDL") Then
|
|
MsgBox("Keine Berechtigung!")
|
|
Exit Sub
|
|
End If
|
|
txtchanged = False
|
|
Dim newEntry As New frmVERAGCardDetails(KarteNnr, dgvSDL)
|
|
newEntry.Show()
|
|
txtchanged = True
|
|
' dgvSDL.RELOAD()
|
|
' frmGrayOut.Close()
|
|
End Sub
|
|
Private Sub FlatButton1_Click(sender As Object, e As MouseEventArgs) Handles Button8.MouseClick ', Button13.Click
|
|
sender.ContextMenuStrip = cntxtExcel
|
|
sender.ContextMenuStrip.Show(sender, e.Location)
|
|
End Sub
|
|
|
|
Private Sub ToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem3.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
cProgramFunctions.genExcelFromDGV(dgvSDL, True)
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
Private Sub ToolStripMenuItem6_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem6.Click
|
|
Me.Cursor = Cursors.WaitCursor
|
|
cProgramFunctions.genExcelFromDGV_NEW(dgvSDL, True)
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub dgvSDL_SelectionChanged(sender As Object, e As EventArgs) Handles dgvSDL.Click
|
|
initDetails()
|
|
End Sub
|
|
|
|
Sub initDetails()
|
|
If dgvSDL.SelectedRows.Count > 0 Then
|
|
For Each openForm In Application.OpenForms()
|
|
If TypeOf (openForm) Is frmVERAGCardDetails Then _
|
|
CType(openForm, frmVERAGCardDetails).initMe()
|
|
Next
|
|
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub dgvSDL_KeyDown(sender As Object, e As KeyEventArgs) Handles dgvSDL.KeyDown
|
|
initDetails()
|
|
End Sub
|
|
|
|
Private Sub btnEdit_Click(sender As Object, e As EventArgs) Handles btnEdit.Click
|
|
showDetail(dgvSDL.CurrentRow.Cells("KartenNr").Value)
|
|
End Sub
|
|
End Class
|