Imports VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO Public Class frmSecretAviso Dim lkwbackcolor As Color = Color.FromArgb(220, 220, 220) Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim AvisoDAL As New VERAG_PROG_ALLGEMEIN.cAvisoDAL Dim Details_aktiv = False Private Sub txt_TextChanged(sender As Object, e As EventArgs) Handles txt.TextChanged If txt.Text = "" Then MyDatagridview1.ClearSelection() End If End Sub Private Sub txt_KeyDown(sender As Object, e As KeyEventArgs) Handles txt.KeyDown If e.KeyCode = Keys.Return Then initDGV() End If End Sub Sub initDGV() pnlDetailsRechts.Controls.Clear() With MyDatagridview1 Dim search = txt.Text Dim sqlstr = "SELECT TOP (20) AvisoID, Status, LKW_Nr, Auftraggeber, Frächter,VoraussichtlichesEintreffen, AvisoEingang, Ankunft, Dauer, Grenzstelle,letzterMitarbeiter,CASE WHEN [ZOLLDigitalEingereicht] = 1 THEN 'DE' ELSE CASE WHEN [LKW_fertig] = 1 THEN 'OK' ELSE '' END END AS [LKW_fertig], Datum, Vorbereitet, Vorgeschrieben, Freigabe, Telefonisch, Info,Handling,AvisoTVHinweis,DATEDIFF(DAY,getdate(),[VoraussichtlichesEintreffen]) TageBisEintreffen FROM [Aviso] WHERE ((LKW_Nr LIKE '%" & search & "%') OR (Frächter LIKE '%" & search & "%') OR (Auftraggeber LIKE '%" & search & "%')) AND Status NOT IN (1,2) AND Datum > DATEADD(MONTH,-1 ,GETDATE()) order by DATUM DESC" ' .SET_SQL(sqlstr, "AVISO") '.LOAD() .DataSource = SQL.loadDgvBySql(sqlstr, "AVISO") If .RowCount = 0 Then .Columns.Clear() : Exit Sub End If '.Columns("AvisoID").Visible = False '.Columns("LKW").Width = 250 '.Columns("Frächter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill ''.loa.Columns("Avisierer").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill '.Columns("Avisierer").Visible = False gridAviso_SpaltenFestlegen() End With End Sub Private Sub frmSecretAviso_Load(sender As Object, e As EventArgs) Handles Me.Load txt.Focus() End Sub Private Sub grid_CellMouseClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles MyDatagridview1.CellMouseClick If e.RowIndex < 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt 'If gridVermerke.SelectedRows.Count = 0 Then Exit Sub 'Es wurde außerhalb einer gültigen Datenzeile geklickt 'gridMyAviso.ClearSelection() 'WARUM? MyDatagridview1.ClearSelection() ': UsrCntlBenachrichtigungen1.gridAvisoBenachrichtigungen.ClearSelection() ' MsgBox(Grid_aktiv) DirectCast(sender, DataGridView).Rows(e.RowIndex).Selected = True Dim tmpId = CInt(sender.Rows(e.RowIndex).Cells("AvisoId").Value) VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_SendungsID = -1 If e.Button = MouseButtons.Right Then If VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA = "ATILLA" Then VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = tmpId sender.CurrentCell = sender.Rows(e.RowIndex).Cells(e.ColumnIndex) ' conMenuAviso.Show(Cursor.Position) Else setAkive_AuswahlID() ' avisoAktualisierenAktiveIdBehalten(tmpId, , False) Dim hStatus = AvisoDAL.LesenAviso(tmpId, "").Status If hStatus <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft And hStatus <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorgeschrieben And hStatus <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst And hStatus <> VERAG_PROG_ALLGEMEIN.cGlobal.Status_Vorbereitet Then 'MsgBox("Ein Vermerk kann nur erfasst werden, wenn der Status des Aviso auf 'Erfasst', 'Vorbereitet', 'Vorgeschrieben' oder 'Ankunft' steht.", vbInformation) ' lblErrVermerk.Width = 300 ' lblErrVermerk.Visible = True ' hideErr.Enabled = True Exit Sub End If Dim frmGrayOut = VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO.grayoutForm() Dim sv As New frmAddAktenvermerkShort(tmpId) sv.Location = Me.PointToClient(Cursor.Position) ' sv.ShowDialog() sv.ShowDialog(frmGrayOut) frmGrayOut.Close() End If ElseIf e.Button = MouseButtons.Left Then VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = tmpId Details_anzeigen(setAkive_AuswahlID()) ' avisoAktualisierenAktiveIdBehalten(tmpId, , False) End If End Sub Public Sub avisoAktualisierenAktiveIdBehalten(tmpid As Integer, Optional aktWithoutCheckTime As Boolean = False, Optional Aviso_anzeigenBool As Boolean = True) Try 'If Not Grid_aktiv Then Exit Sub Details_aktiv = False 'initEAviso() 'If Aviso_anzeigenBool Then Aviso_anzeigen("", False) ': meineAviso_anzeigen() ' If pnlDetailsRechts.Controls.Count > 0 Then Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "ATILLA" If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DAKOSY", Me.FindForm) Then Dim usrcntl As usrcntlAktDetailsATILLANeu = DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLANeu) If aktWithoutCheckTime Or usrcntl.AvisoID <> tmpid Then Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID) Else If DateDiff(DateInterval.Second, usrcntl.aktiv, Now) > 60 Then 'Wenn die Details länger als 60 Sek inaktiv sind (Prüfung durch click und keydown) Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID) End If End If Else Dim usrcntl As usrcntlAktDetailsATILLA = DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLA) If aktWithoutCheckTime Or usrcntl.AvisoID <> tmpid Then Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID) Else If DateDiff(DateInterval.Second, usrcntl.aktiv, Now) > 60 Then 'Wenn die Details länger als 60 Sek inaktiv sind (Prüfung durch click und keydown) Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID) End If End If End If Case Else Dim usrcntl As usrcntlAktDetails = DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetails) If aktWithoutCheckTime Or usrcntl.AvisoID <> tmpid Then Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID) Else usrcntl.changeCurrentSndId() If DateDiff(DateInterval.Second, usrcntl.aktiv, Now) > 60 Then 'Wenn die Details länger als 60 Sek inaktiv sind (Prüfung durch click und keydown) Details_anzeigen(VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID) End If End If End Select ' End If Catch ex As Exception ' pic.Visible = True End Try End Sub Public Sub Details_anzeigen(ByVal id As Integer, Optional reloadIfSameId As Boolean = True) ', Optional opensendungsDetails As Boolean = False) Me.Cursor = Cursors.AppStarting ' If Not Details_aktiv Then Exit Sub If id > 0 Then pnlDetailsRechts.Visible = True Select Case VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA Case "ATILLA" If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("DAKOSY", Me.FindForm) Then If pnlDetailsRechts.Controls.Count = 0 Then Dim usrCntl As New usrcntlAktDetailsATILLANeu(id) usrCntl.Dock = DockStyle.Fill pnlDetailsRechts.Controls.Add(usrCntl) Else DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLANeu).reload(id) End If Else If pnlDetailsRechts.Controls.Count = 0 Then Dim usrCntl As New usrcntlAktDetailsATILLA(id) usrCntl.Dock = DockStyle.Fill pnlDetailsRechts.Controls.Add(usrCntl) Else DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetailsATILLA).reload(id) End If End If Case Else If pnlDetailsRechts.Controls.Count = 0 Then Dim usrCntl As New usrcntlAktDetails(id) usrCntl.Dock = DockStyle.Fill pnlDetailsRechts.Controls.Add(usrCntl) Else If reloadIfSameId Then DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetails).reload(id) Else If DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetails).AvisoID <> id Then DirectCast(pnlDetailsRechts.Controls(0), usrcntlAktDetails).reload(id) End If End If End If End Select Else pnlDetailsRechts.Visible = False End If Me.Cursor = Cursors.Default End Sub Function setAkive_AuswahlID() As Integer If MyDatagridview1.SelectedRows.Count > 0 Then VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = CInt(MyDatagridview1.Rows(MyDatagridview1.SelectedRows(0).Index).Cells("AvisoID").Value) Else VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID = -1 End If Return VERAG_PROG_ALLGEMEIN.cGlobal.Aktive_ID End Function Private Sub gridAviso_SpaltenFestlegen() If MyDatagridview1.RowCount = 0 Then Exit Sub Dim bfont = New Font(MyDatagridview1.Font.FontFamily, MyDatagridview1.Font.Size, FontStyle.Bold) With MyDatagridview1 .Columns("AvisoID").Visible = False 'AvisoID nicht anzeigen .Columns("Datum").Visible = False 'Mitarb. nicht anzeigen .Columns("Freigabe").Visible = False 'Mitarb. nicht anzeigen .Columns("Handling").Visible = False 'Mitarb. nicht anzeigen .Columns("Vorbereitet").Visible = False .Columns("Vorgeschrieben").Visible = False .Columns("TageBisEintreffen").Visible = False .Columns("Status").Width = 25 .Columns("Status").HeaderText = "St." .Columns("LetzterMitarbeiter").Width = 135 .Columns("LetzterMitarbeiter").HeaderText = "akt. Mitarb" .Columns("VoraussichtlichesEintreffen").Width = 95 .Columns("VoraussichtlichesEintreffen").HeaderText = "Vorauss.Eintreffen" .Columns("VoraussichtlichesEintreffen").DefaultCellStyle.Format = "dd.MM.yyyy" '.Columns("VoraussichtlichesEintreffen").DefaultCellStyle.Font = New Font(Me.Font.FontFamily, Me.Font.Size, FontStyle.Bold) .Columns("AvisoEingang").Width = 95 .Columns("AvisoEingang").HeaderText = "Av.Eingang" .Columns("AvisoEingang").DefaultCellStyle.Format = "dd.MM. HH:mm" .Columns("Datum").Width = 95 .Columns("Datum").HeaderText = "Erfasst" .Columns("Datum").DefaultCellStyle.Format = "dd.MM. HH:mm" .Columns("Datum").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("Vorbereitet").Width = 100 .Columns("Vorbereitet").HeaderText = "Vorbereitet" .Columns("Vorbereitet").DefaultCellStyle.Format = "dd.MM. HH:mm" .Columns("Vorgeschrieben").Width = 100 .Columns("Vorgeschrieben").HeaderText = "Vorgeschrieben" .Columns("Vorgeschrieben").DefaultCellStyle.Format = "dd.MM. HH:mm" .Columns("Ankunft").Width = 100 .Columns("Ankunft").HeaderText = "Ankunft" .Columns("Ankunft").DefaultCellStyle.Format = "dd.MM. HH:mm" .Columns("Freigabe").Width = 100 .Columns("Freigabe").HeaderText = "Freigabe" .Columns("Freigabe").DefaultCellStyle.Format = "dd.MM. HH:mm" .Columns("Dauer").Width = 60 .Columns("Dauer").HeaderText = "Dauer" .Columns("Dauer").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("Dauer").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter ' If cGlobal.AktiverMitarbeiter.Abteilung = "quick-stop" Then '.Columns(10).Visible = True ' Else ' .Columns(10).Visible = False ' End If .Columns("Grenzstelle").Width = 40 .Columns("Grenzstelle").HeaderText = "Grenz." .Columns("Grenzstelle").HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("Grenzstelle").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("LKW_Nr").Width = 150 '.Columns("LKW_Nr").MinimumWidth = 90 .Columns("LKW_Nr").HeaderText = "LKW-Nr" ' .Columns("LKW_Nr").DefaultCellStyle.Font = New Font(.DefaultCellStyle.Font.FontFamily, .DefaultCellStyle.Font.Size, FontStyle.Bold) '.Columns("LKW_Nr").DefaultCellStyle.BackColor = lkwbackcolor '.Columns("LKW_Nr").DefaultCellStyle.SelectionBackColor = lkwbackcolor .Columns("Auftraggeber").MinimumWidth = 150 .Columns("Auftraggeber").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("Auftraggeber").HeaderText = "Avisierer" .Columns("Frächter").MinimumWidth = 150 .Columns("Frächter").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("Frächter").HeaderText = "Frächter" .Columns("Telefonisch").Visible = False 'Status Telefon nicht anzeigen .Columns("AvisoTVHinweis").Visible = False 'Status Telefon nicht anzeigen .Columns("LKW_fertig").Width = 35 .Columns("LKW_fertig").HeaderText = "OK" .Columns("LKW_fertig").DefaultCellStyle.ForeColor = Color.White .Columns("LKW_fertig").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns("LKW_fertig").DefaultCellStyle.Font = bfont .Columns("Info").Visible = False .Columns("Info").MinimumWidth = 200 .Columns("Info").HeaderText = "Info (Einträge bis zum Status ERFASST)" .Columns("Info").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill .Columns("Handling").Width = 50 .Columns("Handling").HeaderText = "Handling" '.Columns(12).Width = 700 '.Columns(12).HeaderText = "Änderungen" initDauerLKWFertig() End With End Sub Sub initDauerLKWFertig() Try 'Dauer berechnen: With MyDatagridview1 For Each r As DataGridViewRow In .Rows If r.Cells("Dauer").Value Is DBNull.Value Or r.Cells("Dauer").Value = 0 Then If CInt(r.Cells("Status").Value) = VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft Then If Not IsDBNull(r.Cells("Ankunft").Value) AndAlso Not CDate(r.Cells("Ankunft").Value) = LeerDatum Then Dim dauerTmp = DateDiff(DateInterval.Minute, CDate(VarToDate(r.Cells("Ankunft").Value)), Now) If IsNumeric(dauerTmp) AndAlso dauerTmp > 0 Then r.Cells("Dauer").Value = dauerTmp Else r.Cells("Dauer").Value = "0" End If Else r.Cells("Dauer").Value = "0" End If End If End If If r.Cells("LKW_fertig").Value = "OK" Then r.Cells("LKW_fertig").Style.ForeColor = Color.White r.Cells("LKW_fertig").Style.BackColor = Color.FromArgb(0, 54, 128) 'Else 'r.Cells("LKW_fertig").Style.BackColor = Color.White End If If r.Cells("LKW_fertig").Value = "DE" Then r.Cells("LKW_fertig").Style.ForeColor = Color.White r.Cells("LKW_fertig").Style.BackColor = Color.Green 'Else 'r.Cells("LKW_fertig").Style.BackColor = Color.White End If Next End With GridZeichnenAviso() Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) End Try End Sub Private Sub GridZeichnenAviso() 'hier wird der Grid speziell designed If MyDatagridview1.RowCount = 0 Then Exit Sub 'Falls Kunde auf inaktiv steht, dann wird Zeile ausgegraut angezeigt For Each dr As DataGridViewRow In MyDatagridview1.Rows Select Case VarToInt(dr.Cells("Status").Value) Case 0 'erfasst dr.DefaultCellStyle.SelectionBackColor = Color.FromArgb(230, 0, 0) dr.DefaultCellStyle.ForeColor = Color.FromArgb(230, 0, 0) dr.DefaultCellStyle.SelectionForeColor = Color.White Case 1 'freigegeben dr.DefaultCellStyle.SelectionBackColor = Color.Green dr.DefaultCellStyle.ForeColor = Color.Green dr.DefaultCellStyle.SelectionForeColor = Color.White Case 2 'LKW nicht eingetroffen dr.DefaultCellStyle.SelectionBackColor = Color.Gray dr.DefaultCellStyle.ForeColor = Color.Gray dr.DefaultCellStyle.SelectionForeColor = Color.White Case 3 'Ankunft dr.DefaultCellStyle.SelectionBackColor = Color.Blue dr.DefaultCellStyle.ForeColor = Color.Blue dr.DefaultCellStyle.SelectionForeColor = Color.White Case 4 'Vorbereitet dr.DefaultCellStyle.SelectionBackColor = Color.Brown dr.DefaultCellStyle.ForeColor = Color.Brown dr.DefaultCellStyle.SelectionForeColor = Color.White Case 5 'Vorbereitet dr.DefaultCellStyle.SelectionBackColor = Color.Purple dr.DefaultCellStyle.ForeColor = Color.Purple dr.DefaultCellStyle.SelectionForeColor = Color.White End Select dr.Cells("Status").Style.BackColor = dr.DefaultCellStyle.ForeColor dr.Cells("Status").Style.SelectionForeColor = dr.DefaultCellStyle.ForeColor dr.Cells("LKW_Nr").Style.BackColor = lkwbackcolor 'dr.Cells("LKW_Nr").Style.SelectionBackColor = lkwbackcolorSel ' dr.Cells("LKW_Nr").Style.SelectionForeColor = Color.Black Next End Sub End Class