Files
DISPO/UID/frmMain/usrcntlFirmen.vb
2019-08-21 17:01:47 +02:00

224 lines
8.6 KiB
VB.net

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)
SplitContainer1.Panel1Collapsed = True
btnDetailSuche.Text = ChrW(9660) & ChrW(9660) & ChrW(9660) & "Detailsuche" & ChrW(9660) & ChrW(9660) & ChrW(9660)
cboRolle.Items.Clear()
cboRolle.Items.Add(New MyListItem("nicht filtern", "-1"))
cboRolle.Items.Add(New MyListItem("ohne (-)", "0"))
cboRolle.Items.Add(New MyListItem("Auftraggeber", "1"))
cboRolle.Items.Add(New MyListItem("Ladestelle", "2"))
cboRolle.Items.Add(New MyListItem("Entladestelle", "3"))
cboRolle.Items.Add(New MyListItem("Frachtführer", "4"))
cboRolle.Items.Add(New MyListItem("Transportunternehmen", "5"))
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
Whereinator3000(search, where)
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 = ""
cboLand.SelectedItem = "-"
cboRolle._value = "-1"
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
Private Sub btnDetailSuche_Click(sender As Object, e As EventArgs) Handles btnDetailSuche.Click
SplitContainer1.Panel1Collapsed = Not SplitContainer1.Panel1Collapsed
If SplitContainer1.Panel1Collapsed Then
btnDetailSuche.BackColor = Color.White
btnDetailSuche.Text = ChrW(9660) & ChrW(9660) & ChrW(9660) & "Detailsuche" & ChrW(9660) & ChrW(9660) & ChrW(9660)
Else
btnDetailSuche.BackColor = Color.RoyalBlue
btnDetailSuche.Text = ChrW(9650) & ChrW(9650) & ChrW(9650) & "Detailsuche" & ChrW(9650) & ChrW(9650) & ChrW(9650)
End If
End Sub
Function Whereinator3000(ByRef search As String, ByRef where As String)
If txtSuche.Text <> "" Then
search = txtSuche.Text.Replace("'", "")
Else
search = "%"
End If
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 & "%')"
If cboRolle._value IsNot "-1" And cboRolle._value IsNot "" Then
where &= " AND kd_rolle = '" & cboRolle._value & "'"
End If
If cboLand.SelectedItem IsNot "" And cboLand.SelectedItem IsNot "-" And cboLand.SelectedItem IsNot Nothing Then
where &= " AND kd_land = '" & cboLand.SelectedItem & "'"
End If
'Else
' If cboRolle._value IsNot "-1" And cboRolle._value IsNot "" Then
' where &= " WHERE kd_rolle = '" & cboRolle._value & "'"
' End If
'End If
End Function
Private Sub cboRolle_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboRolle.SelectedIndexChanged, cboLand.SelectedIndexChanged
showDGVKunden()
End Sub
End Class