Imports System.ComponentModel Imports System.IO Imports System.Globalization Imports System.Data.SqlClient Imports System.Reflection Public Class usrcntlFrachtkosten Dim SelectedDGVIndex As Integer = 0 Private DISPO As New cOptionenDAL Dim dt As DataTable Private Sub initDGVFrachtkosten(bindingString As String) Dim sqlstr As String = bindingString ' dgvLKW.DataSource = bindingSDL Dim vpasql As New VERAG_PROG_ALLGEMEIN.SQL dt = vpasql.loadDgvBySql(sqlstr, "DISPO") dgvFrachtkosten.DataSource = dt End Sub Public Sub showDGVFrachtkosten() Dim where As String = " AND frtkst_AVISOfirma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' " 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 &= " AND (frtkst_id LIKE '%" & search & "%' OR kd_firma LIKE '%" & search & "%')" End If With dgvFrachtkosten initDGVFrachtkosten("SELECT frtkst_id,frtkst_firmaId,kd_firma,frtkst_preisM3,frtkst_preisLDM,frtkst_provision FROM tblFrachtkosten,tblKunden WHERE kd_id=frtkst_firmaId " & where & "") 'locZeilen = -1 Dim top As String = "" ' "top 100" 'Tabelle Kommt/Geht bereinigen If .RowCount = 0 Then Exit Sub dgvFrachtkosten.Sort(.Columns(1), ListSortDirection.Descending) .RowTemplate.Height = 20 .RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft .AllowUserToAddRows = False .AllowUserToDeleteRows = False .AllowUserToOrderColumns = False .AllowUserToResizeColumns = True .AllowUserToResizeRows = False .RowTemplate.ReadOnly = True .RowHeadersVisible = False .SelectionMode = DataGridViewSelectionMode.FullRowSelect .MultiSelect = False .Columns(0).Visible = False .Columns(1).Visible = False .Columns(2).MinimumWidth = 300 .Columns(2).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns(2).HeaderText = "Firma" .Columns(3).Width = 100 .Columns(3).HeaderText = "Preis pro m³" .Columns(3).DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE") .Columns(3).DefaultCellStyle.Format = "n" .Columns(4).Width = 100 .Columns(4).HeaderText = "Preis pro LDM" .Columns(4).DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE") .Columns(4).DefaultCellStyle.Format = "n" .Columns(5).Width = 100 .Columns(5).HeaderText = "Provision" .Columns(5).DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE") .Columns(5).DefaultCellStyle.Format = "n" 'Anzeige der Anzahl gewählter/aller Datensätze lblAnzahl.Text = Format(.RowCount, "#,##0") & " Einträge" If (.RowCount = 100) Then lblAnzahl.Text &= " ausgewählt (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" End Sub Private Sub btnNew_Click(sender As Object, e As EventArgs) Handles btnNew.Click frmFrachtkostenNew.Show() : AddHandler frmFrachtkosten.Disposed, AddressOf meEnabledTrue End Sub Private Sub meEnabledTrue() Me.Enabled = True showDGVFrachtkosten() Me.BringToFront() End Sub Private Sub usrcntlFrachtkosten_Load(sender As Object, e As EventArgs) Handles Me.Load EnableDoubleBuffered(dgvFrachtkosten) showDGVFrachtkosten() End Sub Private Sub btnChange_Click(sender As Object, e As EventArgs) Handles btnChange.Click If frmFrachtkosten.Visible Then MsgBox("Ein Frachtkosten-Formular ist bereits geöffnet!", vbCritical, "Fenster geöffnet") frmFrachtkosten.BringToFront() Else frmFrachtkosten.frachtfirma_id = dgvFrachtkosten.CurrentRow.Cells(1).Value End If frmFrachtkosten.Show() Me.Enabled = False AddHandler frmFrachtkosten.Disposed, AddressOf meEnabledTrue 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.delFrachtkosten(Convert.ToInt32(dgvFrachtkosten.CurrentRow.Cells(0).Value)) showDGVFrachtkosten() Case vbNo End Select End Sub Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvFrachtkosten.CellDoubleClick If frmFrachtkosten.Visible Then MsgBox("Ein Frachtkosten-Formular ist bereits geöffnet!", vbCritical, "Fenster geöffnet") frmFrachtkosten.BringToFront() Else frmFrachtkosten.frachtfirma_id = dgvFrachtkosten.CurrentRow.Cells(1).Value End If frmFrachtkosten.Show() Me.Enabled = False AddHandler frmFrachtkosten.Disposed, AddressOf meEnabledTrue End Sub Private Sub txtSuche_TextChanged(sender As Object, e As EventArgs) Handles txtSuche.TextChanged showDGVFrachtkosten() End Sub Private Sub btnReset_Click(sender As Object, e As EventArgs) Handles btnReset.Click txtSuche.Text = "" showDGVFrachtkosten() 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 End Class