Files
DISPO/UID/frmMain/usrcntlFrachtkosten.vb
2025-04-04 08:17:02 +02:00

152 lines
6.0 KiB
VB.net

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