Imports System.ComponentModel Imports System.IO Imports System.Globalization Imports System.Data.SqlClient Imports System.Reflection Public Class frmMain Public Shared ConnStr, ConnStrInfo As String Public Shared Niederlassung As String Private Grid_aktiv As Boolean = False Private Anzahl As Integer Private locZeilen As Integer = -1 Private Suche_freigegeben As Boolean = False Private DISPO As New cOptionenDAL ' Public Shared rowId As Integer Private hSQL As String Private nochange As Boolean = False Private startdate As Date = Now.AddYears(-1) 'Private startdatestring As String 'Private enddate As Date 'Private enddatestring As String = Format(Now(), "yyyymmdd") Private ein, aus As String Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnNew.Click If tbContrl.SelectedIndex = 0 Then frmDetails.rowId = -1 : frmDetails.mainForm = "frmMain" : frmDetails.Show() If tbContrl.SelectedIndex = 1 Then frmAuftragNEU.auftragID = -1 : frmAuftragNEU.Show() : AddHandler frmAuftragNEU.Disposed, AddressOf meEnabledTrue If tbContrl.SelectedIndex = 2 Then frmFrachtkostenNew.Show() : AddHandler frmFrachtkosten.Disposed, AddressOf meEnabledTrue End Sub Private Sub frmMain_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed frmLogin.Close() End Sub Private Sub Main_Load(sender As Object, e As EventArgs) Handles Me.Load dgvAuftraege.DataSource = Me.dataBindingAuftraege dgvKunden.DataSource = Me.dataBindingKunden dgvFrachtkosten.DataSource = Me.dataBindingFrachtkosten cboAuftragsart.Items.Clear() cboAuftragsart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ALLE", "")) cboAuftragsart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("HANDLING", "HANDLING")) cboAuftragsart.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TRANSPORT", "TRANSPORT")) cboAuftragsart.changeItem("ALLE") cboFiliale.Items.Clear() cboFiliale.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ALLE", "")) cboFiliale.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("SUBEN", "4807")) cboFiliale.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("NEUHAUS", "4819")) Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_niederlassung Case "NEU" : cboFiliale.changeItem("4819") : Niederlassung = "4819" Case Else : cboFiliale.changeItem("4807") : Niederlassung = "4807" End Select ' dgvResult.DataSource = null; ' dgvResult.DataSource = patientBindingSource; If VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME = "Andreas Luxbauer" Then btnSQL.Visible = True ' If frmLogin.USRBER > 0 Then btnMitarb.Visible = False ' If frmLogin.USRBER > 5 Then btnNew.Enabled = False : btnDel.Enabled = False : btnChange.Enabled = False Grid_aktiv = True Tabelle_anzeigen() lblVersion.Text = "Version: " & My.Resources.Version cboSearchAuftraege.Items.Add(New MyListItem("PosNr", "atr_frachtpos")) cboSearchAuftraege.Items.Add(New MyListItem("Auftraggeber", "atr_auftr_firma")) cboSearchAuftraege.Items.Add(New MyListItem("Frachtführer Bis", "atr_frachtf_firma")) cboSearchAuftraege.Items.Add(New MyListItem("Frachtführer Ab", "atr_frachtfAb_firma")) cboSearchAuftraege.Items.Add(New MyListItem("Transportunternehmen", "atr_frachtpos")) cboSearchAuftraege.Items.Add(New MyListItem("Ladestelle", "atr_ladest_firma")) cboSearchAuftraege.Items.Add(New MyListItem("Entladestelle", "atr_entladest_firma")) cboSearchAuftraege.SelectedIndex = 0 DateBIS.Value = Now() ' DateBIS.Visible = False DateVON.Value = Now.AddYears(-1).AddDays(1) 'DateVON.Visible = False 'LblVon.Visible = False 'LblBis.Visible = False EnableDoubleBuffered(dgvAuftraege) EnableDoubleBuffered(dgvFrachtkosten) EnableDoubleBuffered(dgvKunden) btnAuswertung.Visible = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("AUSWERTUNGEN", "DISPO") btnVollmacht.Visible = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("VOLLMACHT", "DISPO") btnTest.Visible = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("TEST", "DISPO") End Sub Dim dataAdapterAuftraege As New SqlDataAdapter Dim dataBindingAuftraege As New BindingSource Private Sub initDGVAuftraege(bindingString As String) Dim sqlstr As String = bindingString ' dgvLKW.DataSource = bindingSDL Dim d As New SqlDataAdapter() Try 'Dim connectionString As String = cSqlDb.GetNewOpenConnection If frmLogin.TESTSYSTEM Then Me.dataAdapterAuftraege = New SqlDataAdapter(sqlstr, My.Resources.connStringDISPO_TEST) Else Me.dataAdapterAuftraege = New SqlDataAdapter(sqlstr, My.Resources.connStringDISPO) End If Catch ex As SqlException MessageBox.Show("Der Connection-String kann nicht verarbeitet werden. Wenden Sie sich an den Programmbetreuer.") End Try Dim commandBuilder As New SqlCommandBuilder(Me.dataAdapterAuftraege) Dim table As New DataTable() Me.dataAdapterAuftraege.Fill(table) table.Locale = System.Globalization.CultureInfo.InvariantCulture dgvAuftraege.DataBindings.Clear() Me.dataBindingAuftraege.DataSource = table End Sub Public Sub initDGVAuftraegeFilter() Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds Dim andtxt As String = "" Dim where As String = "" If txtSuche.Text <> "" Then Dim oItem As MyListItem = CType(cboSearchAuftraege.SelectedItem, MyListItem) where = " " & oItem.Value & " LIKE '%" & txtSuche.Text & "%'" andtxt = " AND " End If If cboAuftragsart._value <> "" Then where &= andtxt & " atr_AuftragsArt='" & cboAuftragsart._value & "' " andtxt = " AND " End If If cboFiliale._value <> "" Then where &= andtxt & " atr_FilialenNr='" & cboFiliale._value & "' " andtxt = " AND " End If If cbxAbliefer.CheckState = CheckState.Checked Then where &= andtxt & " atr_abliefernachweis = 1" ElseIf cbxAbliefer.CheckState = CheckState.Unchecked Then where &= andtxt & " atr_abliefernachweis = 0" End If 'where &= andtxt & "atr_datum <= '" & enddatestring & "' AND atr_datum >= '" & startdatestring & "' " dataBindingAuftraege.Filter = where lblAnzahl.Refresh() Dim ende As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds lblMs.Text = "Ladezeit: " & (ende - start) & " ms" End Sub Public Sub showDGVAuftraege() Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds With dgvAuftraege initDGVAuftraege("SELECT atr_id, atr_frachtpos,atr_datum,atr_auftr_firma, atr_frachtf_firma,atr_frachtfAb_firma,atr_trans_firma,case when atr_AuftragsArt='TRANSPORT' THEN atr_ladest_firma ELSE atr_absender_firma END as atr_ladest_firma,case when atr_AuftragsArt='TRANSPORT' THEN atr_entladest_firma ELSE atr_empfaenger_firma END as atr_entladest_firma,atr_abliefernachweis,atr_AuftragsArt,atr_FilialenNr FROM tblAuftraege WHERE atr_datum <= '" & DateBIS.Value.ToShortDateString & "' AND atr_datum >= '" & DateVON.Value.ToShortDateString & "'") 'initDGVAuftraege("SELECT atr_AuftragsArt,atr_id, atr_frachtpos,atr_datum,atr_auftr_firma, atr_frachtf_firma,atr_frachtfAb_firma,atr_trans_firma,case when atr_AuftragsArt='TRANSPORT' THEN atr_ladest_firma ELSE atr_absender_firma END as atr_ladest_firma,case when atr_AuftragsArt='TRANSPORT' THEN atr_entladest_firma ELSE atr_empfaenger_firma END as atr_entladest_firma,atr_abliefernachweis,atr_FilialenNr FROM tblAuftraege WHERE atr_datum <= '" & DateBIS.Value.ToShortDateString & "' AND atr_datum >= '" & DateVON.Value.ToShortDateString & "'") ' MsgBox("SELECT atr_id, atr_frachtpos,atr_datum,atr_auftr_firma, atr_frachtf_firma,atr_frachtfAb_firma,atr_trans_firma, 'Case when atr_AuftragsArt='TRANSPORT' THEN atr_ladest_firma ELSE atr_absender_firma END as atr_ladest_firma, 'Case when atr_AuftragsArt='TRANSPORT' THEN atr_entladest_firma ELSE atr_empfaenger_firma END as atr_entladest_firma, 'atr_abliefernachweis, atr_AuftragsArt, atr_FilialenNr FROM tblAuftraege WHERE atr_datum <= '" & enddate.ToShortDateString & "' AND atr_datum >= '" & startdate.ToShortDateString & "'") locZeilen = -1 Dim top As String = "" 'Tabelle Kommt/Geht bereinigen For i As Integer = 0 To dgvAuftraege.Columns.Count - 1 .Columns(i).ReadOnly = True Next If .RowCount = 0 Then Exit Sub .Sort(dgvAuftraege.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("atr_AuftragsArt").Visible = False .Columns(1).MinimumWidth = 70 .Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns(1).HeaderText = "FrachtposNr." .Columns(2).Width = 70 .Columns(2).HeaderText = "Datum" .Columns(3).Width = 165 .Columns(3).HeaderText = "Auftraggeber" .Columns(4).Width = 165 .Columns(4).HeaderText = "Frachtführer Bis" .Columns("atr_frachtfAb_firma").Width = 165 .Columns("atr_frachtfAb_firma").HeaderText = "Frachtführer Ab" .Columns(6).Width = 165 .Columns(6).HeaderText = "Transportunternehmen" .Columns(7).Width = 165 .Columns(7).HeaderText = "Ladestelle/Absender" .Columns(8).Width = 165 .Columns(8).HeaderText = "Entladest./Empfänger" .Columns(9).Width = 60 .Columns(9).HeaderText = "Abl.Nachw." .Columns(9).ReadOnly = False .Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("atr_FilialenNr").Width = 60 .Columns("atr_FilialenNr").HeaderText = "Filiale" .Columns("atr_FilialenNr").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("atr_Auftragsart").Width = 80 .Columns("atr_Auftragsart").HeaderText = "Auftragsart" .Columns("atr_Auftragsart").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("atr_Auftragsart").DisplayIndex = 11 'Anzeige der Anzahl gewählter/aller Datensätze lblAnzahl.Text = Format(dgvAuftraege.RowCount, "#,##0") If (dgvAuftraege.RowCount = 100) Then lblAnzahl.Text &= " ausgewählt (Die Suche wurde auf 100 Ergebnisse beschränkt.)" initDGVAuftraegeFilter() End With lblAnzahl.Refresh() Dim ende As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds lblMs.Text = "Ladezeit: " & (ende - start) & " ms" 'lblMs.Image = Nothing End Sub Dim dataAdapterFrachtkosten As New SqlDataAdapter Dim dataBindingFrachtkosten As New BindingSource Private Sub initDGVFrachtkosten(bindingString As String) Dim sqlstr As String = bindingString ' dgvLKW.DataSource = bindingSDL Dim d As New SqlDataAdapter() Try 'Dim connectionString As String = cSqlDb.GetNewOpenConnection If frmLogin.TESTSYSTEM Then Me.dataAdapterFrachtkosten = New SqlDataAdapter(sqlstr, My.Resources.connStringDISPO_TEST) Else Me.dataAdapterFrachtkosten = New SqlDataAdapter(sqlstr, My.Resources.connStringDISPO) End If Catch ex As SqlException MessageBox.Show("Der Connection-String kann nicht verarbeitet werden. Wenden Sie sich an den Programmbetreuer.") End Try Dim commandBuilder As New SqlCommandBuilder(Me.dataAdapterFrachtkosten) Dim table As New DataTable() Me.dataAdapterFrachtkosten.Fill(table) table.Locale = System.Globalization.CultureInfo.InvariantCulture dgvFrachtkosten.DataBindings.Clear() Me.dataBindingFrachtkosten.DataSource = table End Sub Public Sub initDGVFrachtkostenFilter() Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds Dim andtxt As String = "" Dim where As String = "" If txtSuche.Text <> "" Then where = " kd_firma LIKE '%" & txtSuche.Text & "%' " End If dataBindingFrachtkosten.Filter = where lblAnzahl.Refresh() Dim ende As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds lblMs.Text = "Ladezeit: " & (ende - start) & " ms" End Sub Public Sub showDGVFrachtkosten() Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds With dgvFrachtkosten initDGVFrachtkosten("SELECT frtkst_id,frtkst_firmaId,kd_firma,frtkst_preisM3,frtkst_preisLDM,frtkst_provision FROM tblFrachtkosten,tblKunden WHERE kd_id=frtkst_firmaId ") 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") If (.RowCount = 100) Then lblAnzahl.Text &= " ausgewählt (Die Suche wurde auf 100 Ergebnisse beschränkt.)" initDGVFrachtkostenFilter() End With lblAnzahl.Refresh() Dim ende As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds lblMs.Text = "Ladezeit: " & (ende - start) & " ms" End Sub Public Sub Tabelle_anzeigen() btnRechner.Visible = False pnlFilterAuftrag.Visible = False If tbContrl.SelectedIndex = 0 Then showDGVKunden() : lblSuche.Visible = True : cboSearchAuftraege.Visible = False : cbxAbliefer.Visible = False : btnDuplicate.Visible = False : DatePicker_ausblenden() If tbContrl.SelectedIndex = 1 Then showDGVAuftraege() : pnlFilterAuftrag.Visible = True : lblSuche.Visible = False : cboSearchAuftraege.Visible = True : cbxAbliefer.Visible = True : btnDuplicate.Visible = True : DatePicker_einblenden() If tbContrl.SelectedIndex = 2 Then showDGVFrachtkosten() : lblSuche.Visible = True : cboSearchAuftraege.Visible = False : btnRechner.Visible = True : cbxAbliefer.Visible = False : btnDuplicate.Visible = False : DatePicker_ausblenden() End Sub Dim dataAdapterKunden As New SqlDataAdapter Dim dataBindingKunden As New BindingSource Private Sub initDGVKunden(bindingString As String) Try If frmLogin.TESTSYSTEM Then Me.dataAdapterKunden = New SqlDataAdapter(bindingString, My.Resources.connStringDISPO_TEST) Else Me.dataAdapterKunden = New SqlDataAdapter(bindingString, My.Resources.connStringDISPO) End If Catch ex As SqlException MessageBox.Show("Der Connection-String kann nicht verarbeitet werden. Wenden Sie sich an den Programmbetreuer.") End Try Dim commandBuilder As New SqlCommandBuilder(Me.dataAdapterKunden) Dim table As New DataTable() Me.dataAdapterKunden.Fill(table) table.Locale = System.Globalization.CultureInfo.InvariantCulture dgvKunden.DataBindings.Clear() Me.dataBindingKunden.DataSource = table ' Me.dataAdapterKunden.Fill(0, 2, dataBindingKunden.DataSource) End Sub Public Sub initDGVKundenFilter() Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds Dim search As String = txtSuche.Text Dim where As String = "" If txtSuche.Text <> "" Then Dim arr() As String = Split(txtSuche.Text.Replace(" ", ","), ",") Dim cnt As Integer = 1 If arr.Count() > 0 Then cnt = arr.Count Dim or_txt As String = "" For i As Integer = 0 To cnt - 1 Step 1 If arr(i) <> "" Then search = arr(i).Trim If i > 0 Then where += " AND " ' where += " ( kd_firma LIKE '%" & search & "%' OR kd_str LIKE '%" & search & "%' OR kd_strnr LIKE '%" & search & "%' OR kd_plz LIKE '%" & search & "%' OR kd_ort LIKE '%" & search & "%' OR kd_land LIKE '%" & search & "%' OR kd_anspr1_vn LIKE '%" & search & "%' OR kd_anspr1_nn LIKE '%" & search & "%' OR kd_anspr2_vn LIKE '%" & search & "%' OR kd_anspr2_nn LIKE '%" & search & "%' OR kd_tel LIKE '%" & search & "%' OR kd_fax LIKE '%" & search & "%' OR kd_email LIKE '%" & search & "%' OR kd_homepage LIKE '%" & search & "%' ) " where += " ( kd_firma LIKE '%" & search & "%' OR strasse LIKE '%" & search & "%' OR ort LIKE '%" & search & "%' OR kd_land LIKE '%" & search & "%' ) " Next End If ' MsgBox(where) dataBindingKunden.Filter = where lblAnzahl.Refresh() Dim ende As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds lblMs.Text = "Ladezeit: " & (ende - start) & " ms" End Sub Public Sub showDGVKunden() Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds With dgvKunden Dim top As String = "" ' "top 100" 'initDGVKunden("SELECT * FROM tblKunden ") 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 ") '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 ") 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 .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") & " ausgewählt" 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" 'lblMs.Image = Nothing End Sub Private Sub Eintraege_festlegen() For i As Integer = 0 To dgvKunden.RowCount - 1 'If (.Rows(i).Cells(1).Value = True) Then ' .Rows(i).DefaultCellStyle.BackColor = Color.IndianRed '.Item(1, i).BackColor = Color.IndianRed ' Dim inImg As Image = My.Resources.uhr_green ' dgvUID.Rows(i).Cells(5).Value.Image = inImg ' End If Next End Sub Private Sub dgvUID_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvKunden.CellDoubleClick ' rowId = dgvUID.CurrentRow.Cells(0).Value 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" End If frmDetails.Show() Me.Enabled = False AddHandler frmDetails.Disposed, AddressOf meEnabledTrue 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 Button8_Click(sender As Object, e As EventArgs) Me.Close() End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnChange.Click If tbContrl.SelectedIndex = 0 Then 'Kunden 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 If If tbContrl.SelectedIndex = 1 Then 'Aufträge Try If frmAuftragNEU.Visible Then MsgBox("Ein Auftrag ist bereits geöffnet!", vbCritical, "Fenster geöffnet") frmAuftragNEU.BringToFront() Else frmAuftragNEU.auftragID = dgvAuftraege.CurrentRow.Cells(0).Value frmAuftragNEU.Show() AddHandler frmAuftragNEU.Disposed, AddressOf meEnabledTrue Me.Enabled = False End If ' Me.Enabled = False Catch ex As Exception Me.Enabled = True End Try End If If tbContrl.SelectedIndex = 2 Then 'Aufträge Try If frmFrachtkostenNew.Visible Then MsgBox("Ein Auftrag ist bereits geöffnet!", vbCritical, "Fenster geöffnet") frmFrachtkostenNew.BringToFront() Else frmFrachtkostenNew.frachtfirma_id = dgvFrachtkosten.CurrentRow.Cells(1).Value frmFrachtkostenNew.Show() frmFrachtkostenNew.Text = "Änderung" AddHandler frmFrachtkostenNew.Disposed, AddressOf meEnabledTrue Me.Enabled = False End If ' Me.Enabled = False Catch ex As Exception Me.Enabled = True End Try End If End Sub Private Sub meEnabledTrue() Me.Enabled = True Tabelle_anzeigen() Me.BringToFront() End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles btnDel.Click If tbContrl.SelectedIndex = 0 AndAlso dgvKunden.SelectedRows.Count > 0 Then 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)) Tabelle_anzeigen() Case vbNo End Select End If If tbContrl.SelectedIndex = 1 AndAlso dgvAuftraege.SelectedRows.Count > 0 Then Select Case MsgBox("Soll der Eintrag wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes DISPO.delAuftrag(Convert.ToInt32(dgvAuftraege.CurrentRow.Cells(0).Value)) Tabelle_anzeigen() Case vbNo End Select End If If tbContrl.SelectedIndex = 2 AndAlso dgvFrachtkosten.SelectedRows.Count > 0 Then 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)) Tabelle_anzeigen() Case vbNo End Select End If End Sub Private Sub dgvUID_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) ' Eintraege_festlegen() End Sub Private Sub dgvUID_KeyDown(ByVal sender As Object, _ ByVal e As System.Windows.Forms.KeyEventArgs) If e.KeyCode = Keys.Delete Then e.Handled = True If dgvKunden.SelectedRows.Count = 1 Then 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)) Tabelle_anzeigen() Case vbNo End Select End If End If End Sub Private Sub SearchChanged(sender As Object, e As EventArgs) Handles txtSuche.TextChanged, cbxAbliefer.CheckStateChanged, txtSuche.Click, Button1.Click, cboAuftragsart.SelectedIndexChanged, cboFiliale.SelectedIndexChanged txtSuche.Text = txtSuche.Text.Replace("'", "") Dim anz As Integer = 0 If tbContrl.SelectedIndex = 0 Then initDGVKundenFilter() : anz = dgvKunden.RowCount If tbContrl.SelectedIndex = 1 Then initDGVAuftraegeFilter() : anz = dgvAuftraege.RowCount If tbContrl.SelectedIndex = 2 Then initDGVFrachtkostenFilter() : anz = dgvFrachtkosten.RowCount lblAnzahl.Text = Format(anz, "#,##0") If IsNumeric(anz) AndAlso CInt(anz) = 100 Then lblAnzahl.Text &= " ausgewählt (Die Suche wurde auf 100 Ergebnisse beschränkt.)" 'If Not nochange Then Tabelle_anzeigen() End Sub Private Sub txtPosSearch_TextChanged(sender As Object, e As EventArgs) txtSuche.Text = "" If Not nochange Then Tabelle_anzeigen() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click txtSuche.Text = "" cbxAbliefer.CheckState = CheckState.Indeterminate Tabelle_anzeigen() End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) frmHistory.rowId = dgvKunden.CurrentRow.Cells(0).Value frmHistory.Show() End Sub Private Sub dgvUID_SelectionChanged(sender As Object, e As EventArgs) ' Try 'If (dgvUID.CurrentRow.Cells(1).Value = True) Then ' dgvUID.CurrentRow.Cells(1).Style.SelectionBackColor = Color.IndianRed ' Else ' dgvUID.CurrentRow.Cells(1).Style.SelectionBackColor = Color.White ' End If ' Catch ex As Exception ' End Try End Sub Private Sub btnMitarb_Click(sender As Object, e As EventArgs) frmMitarbeiter.Show() End Sub Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click frmLogin.UpdateDISPO() End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click Application.Exit() End Sub Private Sub dgvUID_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Dim print As Boolean = True If (dgvKunden.RowCount > 100) Then print = (MsgBox("Möchten Sie wirklich " & dgvKunden.RowCount & " Einträge drucken?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Einträge drucken?") = vbYes) End If If print Then Dim l As IList(Of cEntry) l = DISPO.getDataBySQL(hSQL) Dim where As String = "" If MsgBox("Möchten Sie auch deaktivierte Kunden einschließen?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Auswahl mit deaktivierten Kunden?") = vbNo Then For i As Integer = 0 To (l.Count - 1) Step 1 MsgBox(i & " - " & l.Count - 1) ' If l(i).deakt Then ' l.RemoveAt(i) ' : i = i - 1 'End If Next End If frmPrintView.Show() frmPrintView.BefuellenFirmen(l) End If End Sub Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint End Sub Private Sub dgvAuftraege_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvAuftraege.CellDoubleClick frmAuftragNEU.auftragID = dgvAuftraege.CurrentRow.Cells(0).Value If frmAuftragNEU.Visible Then MsgBox("Ein Antrag ist bereits geöffnet!", vbCritical, "Fenster geöffnet") frmAuftragNEU.BringToFront() End If frmAuftragNEU.Show() AddHandler frmAuftragNEU.Disposed, AddressOf meEnabledTrue frmAuftragNEU.BringToFront() End Sub Private Sub tbContrl_SelectedIndexChanged(sender As Object, e As EventArgs) Handles tbContrl.SelectedIndexChanged txtSuche.Text = "" txtSuche.Focus() Tabelle_anzeigen() End Sub Private Sub dataGridView1_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles dgvAuftraege.CellClick Try If e.ColumnIndex = dgvAuftraege.Rows(e.RowIndex).Cells("atr_abliefernachweis").ColumnIndex Then Dim val As Boolean = Not dgvAuftraege.Rows(e.RowIndex).Cells("atr_abliefernachweis").Value DISPO.setAbliefernachweis(dgvAuftraege.Rows(e.RowIndex).Cells(0).Value, val) Tabelle_anzeigen() End If Catch ex As Exception End Try End Sub Private WithEvents T As New Timers.Timer With {.Interval = 500, .Enabled = True, .AutoReset = True} Private FormCount As Integer = 1 Private Sub SomeForm_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) If e.KeyData = Keys.Escape Then Dim TheForm = DirectCast(DirectCast(sender, Control).TopLevelControl, Form) If Not TheForm Is Nothing Then TheForm.Close() End If End If If e.KeyData = Keys.PrintScreen Then Dim TheForm = DirectCast(DirectCast(sender, Control).TopLevelControl, Form) If Not TheForm Is Nothing Then Dim c As New cProgramFunctions c.screenshot() End If End If End Sub Private Sub HookControls(ByVal f As Control) For Each Control As Control In f.Controls AddHandler Control.KeyUp, AddressOf SomeForm_KeyUp If Control.Controls.Count <> 0 Then HookControls(Control) End If Next End Sub Private Sub T_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles T.Elapsed If FormCount = 0 Then FormCount = 1 Dim FormOpened As Integer = My.Application.OpenForms.Count If FormCount <> FormOpened Then If FormOpened > FormCount Then For x As Integer = 1 To (FormOpened - FormCount) Dim F As Form = My.Application.OpenForms.Item(FormOpened - x) AddHandler F.KeyDown, AddressOf SomeForm_KeyUp HookControls(F) FormCount = My.Application.OpenForms.Count Next Else FormCount = My.Application.OpenForms.Count End If End If End Sub Private Sub btnHelp_Click(sender As Object, e As EventArgs) Handles btnHelp.Click 'Process.Start(My.Resources.DISPO_Benutzerhandbuch) Dim pdf As Byte() = My.Resources.DISPO_Benutzerhandbuch Using tmp As New FileStream("tmp.pdf", FileMode.Create) tmp.Write(pdf, 0, pdf.Length) End Using Process.Start("tmp.pdf") ' Dim p As pdfviewer ' pdfviewer.src = My.Resources.MyPdfFile ' FileMode.OpenOrCreate(My.Resources.DISPO_Benutzerhandbuch) End Sub Private Sub Button3_Click_1(sender As Object, e As EventArgs) Handles btnDuplicate.Click Try Dim AUFTRAG As New cDispoAuftraege(dgvAuftraege.CurrentRow.Cells(0).Value) AUFTRAG.atr_id = -1 AUFTRAG.atr_datum = Now AUFTRAG.atr_frachtpos = Nothing AUFTRAG.LADUNGEN.Clear() AUFTRAG.BH_rechnungen.Clear() AUFTRAG.SAVE() Dim frmAuftragNEU As New frmAuftragNEU frmAuftragNEU.auftragID = AUFTRAG.atr_id AddHandler frmAuftragNEU.Disposed, AddressOf meEnabledTrue frmAuftragNEU.Show() Exit Sub Dim a As cAuftraege = DISPO.getAuftragById(dgvAuftraege.CurrentRow.Cells(0).Value) a.atr_frachtpos = DISPO.getFrachtpos a.atr_datum = Now a.atr_abliefernachweis = False a.atr_ladungen = New List(Of cLadungen) a.bh_rechnungen = New List(Of cBuchhaltungRechnung) a.cmr_ausl_land = "" a.cmr_ausl_ort = "" a.cmr_beigefDok = "" a.cmr_anwAbs = "" a.cmr_rueckerst = "" a.cmr_frZahlanwFrei = "" a.cmr_frZahlanwUnfrei = "" a.cmr_besVereinb = "" a.cmr_ausgefIn = "" a.cmr_uebergabe_land = "" a.cmr_uebergabe_ort = "" a.cmr_uebergabe_datum = "" a.cmr_vorbehFrachtf = "" a.bh_mon = "" a.bh_vermerke = "" a.atr_notes = "" a.atr_gefahrengut = "" a.atr_frachtkosten = "" a.atr_entladest_terminBis = "" a.atr_entladest_terminVon = "" a.atr_entladest_terminDat = "" a.atr_ladest_terminBis = "" a.atr_ladest_terminVon = "" a.atr_ladest_terminDat = "" a.atr_bemerkung = "" a.atr_speditionsbuchNr = -1 a.atr_lkwArt = "" a.atr_lkwKz = "" a.atr_lkwNutzlast = "" a.atr_anhKz = "" a.atr_anhNutzlast = "" DISPO.insertAuftragUndLadung(a) DISPO.setFrachtpos(a.atr_frachtpos) frmAuftragNEU.auftragID = DISPO.atr_id_insert AddHandler frmAuftragNEU.Disposed, AddressOf meEnabledTrue frmAuftragNEU.Show() 'frmAuftragNEU.Show() Catch ex As Exception MsgBox("Fehler beim Duplizieren: " & ex.Message) End Try End Sub Private Sub lblVersion_Click(sender As Object, e As EventArgs) Handles lblVersion.Click frmInfo.Show() End Sub Private Sub Button3_Click_2(sender As Object, e As EventArgs) Handles Button3.Click 'If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ADMIN", Me) Then Me.Cursor = Cursors.WaitCursor Dim eh As New SDL.frmCMR() eh.Show() Me.Cursor = Cursors.Default ' End If Exit Sub frmCMR.Show() End Sub Private Sub btnRechner_Click(sender As Object, e As EventArgs) Handles btnRechner.Click If dgvFrachtkosten.SelectedRows.Count > 0 Then frmFrachtkosten.frachtfirma_id = dgvFrachtkosten.CurrentRow.Cells(1).Value frmFrachtkosten.Show() AddHandler frmFrachtkosten.Disposed, AddressOf meEnabledTrue End If End Sub Private Sub btnSQL_Click(sender As Object, e As EventArgs) Handles btnSQL.Click DISPO.doSQL(" " & " INSERT INTO [DISPO].[dbo].tblBhUntern " & " SELECT [atr_id] as [bhut_atrId] " & " ,[bh_unterKennz_1] as [bhut_unternKennz] " & " ,[bh_unterKennz_bis_1] as [bhut_bis] " & " ,[bh_unterKennz_kosten_1] as [bhut_kosten] " & " FROM DISPO.[dbo].[tblAuftraege] " & " WHERE [bh_unterKennz_1]<>'' or [bh_unterKennz_bis_1]<>'' or [bh_unterKennz_kosten_1]<>'' " & " INSERT INTO [DISPO].[dbo].tblBhUntern " & " SELECT [atr_id] as [bhut_atrId] " & " ,[bh_unterKennz_2] as [bhut_unternKennz] " & " ,[bh_unterKennz_bis_2] as [bhut_bis] " & " ,[bh_unterKennz_kosten_2] as [bhut_kosten] " & " FROM DISPO.[dbo].[tblAuftraege] " & " WHERE [bh_unterKennz_2]<>'' or [bh_unterKennz_bis_2]<>'' or [bh_unterKennz_kosten_2]<>'' " & " INSERT INTO [DISPO].[dbo].tblBhUntern " & " SELECT [atr_id] as [bhut_atrId] " & " ,[bh_unterKennz_3] as [bhut_unternKennz] " & " ,[bh_unterKennz_bis_3] as [bhut_bis] " & " ,[bh_unterKennz_kosten_3] as [bhut_kosten] " & " FROM DISPO.[dbo].[tblAuftraege] " & " WHERE [bh_unterKennz_3]<>'' or [bh_unterKennz_bis_3]<>'' or [bh_unterKennz_kosten_3]<>'' ") End Sub Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click Dim s As New SDL.frmSecureLoginKassenbuch s.openKB = True s.disableCBO = False s.ShowDialog(Me) End Sub Private Sub DateVONorBIS_ValueChanged(sender As Object, e As EventArgs) Handles DateVON.ValueChanged, DateBIS.ValueChanged showDGVAuftraege() End Sub Private Sub CmdHeute_Click(sender As Object, e As EventArgs) Handles CmdHeute.Click DateVON.Value = Now() DateBIS.Value = Now() End Sub Private Sub CmdTagMinus_Click(sender As Object, e As EventArgs) Handles CmdTagMinus.Click, CmdTagPlus.Click If sender Is CmdTagPlus Then DateVON.Value = DateVON.Value.AddDays(1) DateBIS.Value = DateVON.Value Else DateVON.Value = DateVON.Value.AddDays(-1) DateBIS.Value = DateVON.Value End If End Sub Private Sub CmdMonat_Click(sender As Object, e As EventArgs) Handles CmdMonat.Click DateVON.Value = Now.AddDays(-Now.Day + 1) DateBIS.Value = Now() End Sub Private Sub CmdMonatMinus_Click(sender As Object, e As EventArgs) Handles CmdMonatMinus.Click, CmdMonatPlus.Click If sender Is CmdMonatPlus Then DateVON.Value = DateVON.Value.AddDays(-DateVON.Value.Day + 1).AddMonths(1) DateBIS.Value = DateVON.Value.AddMonths(1).AddDays(-1) Else DateVON.Value = DateVON.Value.AddDays(-DateVON.Value.Day + 1).AddMonths(-1) DateBIS.Value = DateVON.Value.AddMonths(1).AddDays(-1) End If End Sub Private Sub CmdJahr_Click(sender As Object, e As EventArgs) Handles CmdJahr.Click DateVON.Value = Now.AddDays(-Now.Day + 1).AddMonths(-Now.Month + 1) DateBIS.Value = Now() End Sub Private Sub CmdJahrMinus_Click(sender As Object, e As EventArgs) Handles CmdJahrMinus.Click, CmdJahrPlus.Click If sender Is CmdJahrPlus Then DateVON.Value = DateVON.Value.AddDays(-DateVON.Value.Day + 1).AddMonths(-DateVON.Value.Month + 1).AddYears(1) DateBIS.Value = DateVON.Value.AddYears(1).AddDays(-1) Else DateVON.Value = DateVON.Value.AddDays(-DateVON.Value.Day + 1).AddMonths(-DateVON.Value.Month + 1).AddYears(-1) DateBIS.Value = DateVON.Value.AddYears(1).AddDays(-1) End If End Sub Private Sub CmdAlle_Click(sender As Object, e As EventArgs) Handles CmdAlle.Click Try DateVON.Value = "01.01.1970" DateBIS.Value = Now.AddDays(-DateVON.Value.Day + 1).AddMonths(-DateVON.Value.Month + 1).AddYears(1) cboAuftragsart.changeItem("Alle") cboFiliale.changeItem("Alle") Catch MsgBox("Oh oh") End Try End Sub Private Function DatePicker_einblenden() 'DateBIS.Visible = True 'DateVON.Visible = True 'LblVon.Visible = True 'LblBis.Visible = True PnlDatum.Visible = True End Function Private Function DatePicker_ausblenden() 'DateBIS.Visible = False 'DateVON.Visible = False 'LblVon.Visible = False 'LblBis.Visible = False PnlDatum.Visible = False End Function Private Sub btnExportVollmacht_Click(sender As Object, e As EventArgs) Handles btnVollmacht.Click SDL.FormularManagerNEU.OPEN_FORM(SDL.FormularManagerArten.VERAG_EXPORT, -1, , True) End Sub Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click frmMainV2.Show() End Sub Private Sub btnAuswertung_Click(sender As Object, e As EventArgs) Handles btnAuswertung.Click If cboFiliale.SelectedItem.text = "NEUHAUS" Then frmAuswertung.Niederlassung = "4819" ElseIf cboFiliale.SelectedItem.text = "SUBEN" Then frmAuswertung.Niederlassung = "4807" Else Niederlassung = "" End If frmAuswertung.Show() 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