Imports System.ComponentModel Imports System.IO Imports System.Globalization Imports System.Data.SqlClient Imports System.Reflection Public Class usrcntlFirmen Private DISPO As New cOptionenDAL Public Shared dt As DataTable Public Shared SelectedDGVIndex As Integer Private Sub usrcntlFirmen_Load(sender As Object, e As EventArgs) Handles Me.Load EnableDoubleBuffered(dgvKunden) showDGVKunden() End Sub Private Sub initDGVKunden(bindingString As String) Dim sqlstr As String = bindingString ' dgvLKW.DataSource = bindingSDL Dim vpasql As New VERAG_PROG_ALLGEMEIN.SQL dt = vpasql.loadDgvBySql(sqlstr, "DISPO") dgvKunden.DataSource = dt End Sub Public Sub showDGVKunden() Dim where As String = "" Dim search As String = "" Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds If txtSuche.Text <> "" Then search = txtSuche.Text.Replace("'", "") where &= " WHERE kd_firma LIKE '%" & search & "%' OR (kd_str + ' ' + kd_strnr) LIKE '%" & search & "%' OR (kd_plz + ' - ' + kd_ort) LIKE '%" & search & "%' OR kd_land LIKE '%" & search & "%'" End If With dgvKunden Dim top As String = "" initDGVKunden("SELECT " & top & " kd_id, kd_firma, (kd_str + ' ' + kd_strnr) as strasse, (kd_plz + ' - ' + kd_ort) as ort, kd_land,kd_oez_id FROM tblKunden " & where & " ") 'locZeilen = -1 ' If Not Grid_aktiv Then Exit Sub 'Tabelle Kommt/Geht bereinigen If .RowCount = 0 Then Exit Sub .Sort(.Columns(1), ListSortDirection.Ascending) .RowTemplate.Height = 20 .RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft .AllowUserToAddRows = False .AllowUserToDeleteRows = False .AllowUserToOrderColumns = False .AllowUserToResizeColumns = True .AllowUserToResizeRows = False .RowTemplate.ReadOnly = True .RowHeadersVisible = False .MultiSelect = False .SelectionMode = DataGridViewSelectionMode.FullRowSelect .ReadOnly = True .Columns(0).Visible = False .Columns(1).MinimumWidth = 300 .Columns(1).HeaderText = "Firma" .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill ' .Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns(2).Width = 250 .Columns(2).HeaderText = "Straße" .Columns(3).Width = 250 .Columns(3).HeaderText = "Ort" .Columns(4).Width = 150 .Columns(4).HeaderText = "Land" .Columns(5).Visible = False 'initDGVKundenFilter() 'Anzeige der Anzahl gewählter/aller Datensätze lblAnzahl.Text = Format(.RowCount, "#,##0") & " Einträge" If (.RowCount = 100) Then lblAnzahl.Text &= " (Die Suche wurde auf 100 Ergebnisse beschränkt.)" End With lblAnzahl.Refresh() Dim ende As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds lblMs.Text = "Ladezeit: " & (ende - start) & " ms" Try If dgvKunden.Rows.Count - 1 >= SelectedDGVIndex Then dgvKunden.Rows(SelectedDGVIndex).Selected = True Catch ex As Exception MsgBox(ex.Message) End Try 'lblMs.Image = Nothing End Sub Public Sub EnableDoubleBuffered(ByVal dgv As DataGridView) Dim dgvType As Type = dgv.[GetType]() Dim pi As PropertyInfo = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance Or BindingFlags.NonPublic) pi.SetValue(dgv, True, Nothing) End Sub Private Sub txtSuche_TextChanged(sender As Object, e As EventArgs) Handles txtSuche.TextChanged showDGVKunden() End Sub Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click txtSuche.Text = "" showDGVKunden() End Sub Private Sub btnNew_Click(sender As Object, e As EventArgs) Handles btnNew.Click frmDetails.rowId = -1 : frmDetails.mainForm = "frmMain" : frmDetails.Show() : AddHandler frmDetails.Disposed, AddressOf meEnabledTrue End Sub Private Sub meEnabledTrue() Me.Enabled = True showDGVKunden() Me.BringToFront() End Sub Private Sub btnChange_Click(sender As Object, e As EventArgs) Handles btnChange.Click SelectedDGVIndex = dgvKunden.CurrentRow.Index Try If frmDetails.Visible Then MsgBox("Ein Kunden-Formular ist bereits geöffnet!", vbCritical, "Fenster geöffnet") frmDetails.BringToFront() Else frmDetails.rowId = dgvKunden.CurrentRow.Cells(0).Value frmDetails.mainForm = "frmMain" frmDetails.Show() AddHandler frmDetails.Disposed, AddressOf meEnabledTrue Me.Enabled = False End If Catch ex As Exception Me.Enabled = True End Try End Sub Private Sub btnDel_Click(sender As Object, e As EventArgs) Handles btnDel.Click Select Case MsgBox("Soll der Eintrag wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes DISPO.delData(Convert.ToInt32(dgvKunden.CurrentRow.Cells(0).Value)) DISPO.delOeffnungszeiten(Convert.ToInt32(dgvKunden.CurrentRow.Cells(5).Value)) showDGVKunden() Case vbNo End Select End Sub Private Sub dgvKunden_CellDouble(sender As Object, e As DataGridViewCellEventArgs) Handles dgvKunden.CellDoubleClick SelectedDGVIndex = dgvKunden.CurrentRow.Index Try If frmDetails.Visible Then MsgBox("Ein Kunden-Formular ist bereits geöffnet!", vbCritical, "Fenster geöffnet") frmDetails.BringToFront() Else frmDetails.rowId = dgvKunden.CurrentRow.Cells(0).Value frmDetails.mainForm = "frmMain" frmDetails.Show() AddHandler frmDetails.Disposed, AddressOf meEnabledTrue Me.Enabled = False End If Catch ex As Exception Me.Enabled = True End Try End Sub End Class