225 lines
8.4 KiB
VB.net
225 lines
8.4 KiB
VB.net
Imports Gemeinsames
|
|
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class frmStatFrima
|
|
|
|
Public srch As String = ""
|
|
Public auftrFraecht As String = ""
|
|
Public StatVon As String = ""
|
|
Public StatBis As String = ""
|
|
|
|
Public DauerVon As String = ""
|
|
Public DauerBis As String = ""
|
|
Public firma As String = ""
|
|
Dim Sql As New Statistik
|
|
Private Sub frmStatFrima_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
initList()
|
|
|
|
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
|
|
DataGridView2.SelectionMode = DataGridViewSelectionMode.FullRowSelect
|
|
lblFirma.Text = firma
|
|
Try
|
|
lblZeitraum.Text = StatVon & " - " & StatBis
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
' Me.Height =
|
|
End Sub
|
|
|
|
|
|
Sub initPnlStat()
|
|
If Not IsDate(StatVon) Then StatVon = "1800-01-01 00:00:00"
|
|
If Not IsDate(StatBis) Then StatBis = Now.ToString("yyyy-MM-dd HH:mm:ss")
|
|
If Not IsNumeric(DauerVon) Then DauerVon = "0"
|
|
If Not IsNumeric(DauerBis) Then DauerBis = "99999"
|
|
|
|
Dim SQLstat As New StatDB
|
|
Dim c As Integer = 0
|
|
|
|
Dim stdVon As Integer = CInt(Math.Floor(CInt(DauerVon) / 60))
|
|
Dim stdBis As Integer = CInt(Math.Ceiling(CInt(DauerBis) / 60))
|
|
' Dim s3(,) As String
|
|
Dim stepValue As Integer = 1
|
|
|
|
If (stdBis - stdVon) > 15 Then
|
|
stepValue = CInt(Math.Ceiling((stdBis - stdVon) / 15))
|
|
End If
|
|
DauerBis = CStr(CInt(DauerBis) + 1)
|
|
Dim s(CInt(stdBis / stepValue - stdVon), 2) As String
|
|
|
|
For i = stdVon To stdBis - 1 Step stepValue
|
|
Dim lkws As Integer = SQLstat.getAnzahlLkwDauer(CDate(StatVon), CDate(StatBis), CStr(i * 60), CStr((i + stepValue) * 60 - 1), DauerVon, DauerBis, " AND ( " & srch & " LIKE '" & auftrFraecht & "' ) ")
|
|
s(c, 0) = i & "-" & (i + stepValue) & " h"
|
|
s(c, 1) = CStr(lkws)
|
|
c += 1
|
|
Next
|
|
|
|
|
|
drawStat(pnlStat, s)
|
|
|
|
|
|
Dim listStatAvisoProleme As List(Of listStatAvisoProleme) = SQLstat.getAnzahlAvisoProbleme("", CDate(StatVon), CDate(StatBis), DauerVon, DauerBis, " AND ( " & srch & " LIKE '" & auftrFraecht & "' ) ")
|
|
|
|
|
|
ListView1.Columns.Add("Probleme", 150)
|
|
ListView1.Columns.Add("Anzahl", 50)
|
|
|
|
ListView1.View = View.Details
|
|
ListView1.FullRowSelect = True
|
|
|
|
For Each l In listStatAvisoProleme
|
|
|
|
Dim eintrag1 As New ListViewItem(l.Bezeichnung, 0)
|
|
eintrag1.SubItems.Add(l.AnzahlVermerke.ToString)
|
|
ListView1.Items.Add(eintrag1)
|
|
Next
|
|
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
Sub initList()
|
|
With DataGridView1
|
|
|
|
Dim sqlstr As String = "select AvisoID, Datum, LKW_Nr, Dauer, Auftraggeber, Frächter, Ankunft, Freigabe, AvisoEingang, Grenzstelle, Info,LetzterMitarbeiter from Aviso "
|
|
|
|
'WHERE
|
|
Dim where As String = ""
|
|
If StatVon <> "" Then where &= " AND Datum >= '" & StatVon & "' "
|
|
If StatBis <> "" Then where &= " AND Datum <= '" & StatBis & "' "
|
|
|
|
If DauerVon <> "" Then where &= " AND Dauer >= '" & DauerVon & "' "
|
|
If DauerBis <> "" Then where &= " AND Dauer <= '" & DauerBis & "' "
|
|
|
|
sqlstr &= " WHERE ( " & srch & " LIKE '" & auftrFraecht & "' " & where & " ) AND Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' "
|
|
sqlstr &= " ORDER BY Dauer DESC "
|
|
.DataSource = Sql.getKunden(sqlstr)
|
|
|
|
'.Columns(0).HeaderText
|
|
.Columns(0).Visible = False
|
|
.Columns(1).HeaderText = "Datum"
|
|
.Columns(4).HeaderText = "Avisierer"
|
|
.Columns("Info").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
.Columns(2).HeaderText = "LKW-Kz"
|
|
If .RowCount > 0 Then
|
|
DataGridView1.Rows(0).Cells(0).Selected = True
|
|
DataGridView1_CellContentClick(DataGridView1, New DataGridViewCellEventArgs(0, 0))
|
|
End If
|
|
End With
|
|
End Sub
|
|
|
|
Private Sub DataGridView1_CellContentClick(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged
|
|
If DataGridView1.SelectedCells.Count > 0 Then
|
|
With DataGridView2
|
|
If DataGridView1.SelectedRows.Count > 0 Then
|
|
Dim sqlstr As String = ""
|
|
sqlstr += " ("
|
|
sqlstr += " select VermerkID,'' as [AenderungID],AvisoID, Datum, Mitarbeiter, Hinweis_Vermerk from Vermerke WHERE ( AvisoID = '" & CStr(DataGridView1.SelectedRows(0).Cells(0).Value) & "' ) "
|
|
sqlstr += " union "
|
|
sqlstr += " select '',[AenderungID],[AvisoID],[Datum],[Mitarbeiter],[Aenderung_Text] "
|
|
sqlstr += " FROM [Aenderungen] WHERE ( AvisoID = '" & CStr(DataGridView1.SelectedRows(0).Cells(0).Value) & "' ) "
|
|
sqlstr += " ) "
|
|
sqlstr += " ORDER By Datum DESC"
|
|
|
|
' Dim sqlstr As String = "select VermerkID,AvisoID, Datum, Mitarbeiter, Hinweis_Vermerk from Vermerke WHERE ( AvisoID = '" & CStr(DataGridView1.SelectedRows(0).Cells(0).Value) & "' ) "
|
|
' sqlstr &= " ORDER BY Datum DESC "
|
|
.DataSource = Sql.getKunden(sqlstr)
|
|
.Columns(0).Visible = False
|
|
.Columns(1).Visible = False
|
|
.Columns(2).Visible = False
|
|
|
|
.Columns(3).HeaderText = "Datum"
|
|
.Columns(3).Width = 150
|
|
|
|
.Columns(4).HeaderText = "Mitarbeiter"
|
|
.Columns(4).Width = 300
|
|
|
|
.Columns(5).HeaderText = "Vermerk"
|
|
.Columns(5).MinimumWidth = 300
|
|
.Columns(5).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
|
|
|
|
End If
|
|
End With
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
|
Dim str As String = ""
|
|
For Each r As DataGridViewRow In DataGridView1.Rows()
|
|
If r.Selected Then
|
|
str &= "'" & CStr(r.Cells(0).Value) & "',"
|
|
End If
|
|
Next
|
|
If str.EndsWith(",") Then str = str.Substring(0, str.Length - 1)
|
|
|
|
Dim f As New cStatFunctions
|
|
f.showReport("DETAILS", " SELECT * from Aviso where AvisoID IN (" & str & ")", True)
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
|
Private Sub drawStat(p As Panel, s(,) As String) 'Handles Panel1.Paint
|
|
|
|
Dim g As Graphics = pnlStat.CreateGraphics
|
|
Dim topbound = 10
|
|
|
|
|
|
Dim y0 As Integer = 0
|
|
Dim x0 As Integer = 0
|
|
Dim yMax As Integer = p.Height - 50
|
|
Dim xMax As Integer = p.Width
|
|
|
|
Dim h As Integer = p.Height
|
|
Dim w As Integer = p.Width
|
|
|
|
Dim sMax As Long = getMax(s)
|
|
|
|
Dim xLeftBound As Integer = 0
|
|
For i = 0 To s.GetUpperBound(0) - 1
|
|
Try
|
|
|
|
Dim hoehe = 0
|
|
If sMax > 0 Then hoehe = CInt(yMax * (CLng(s(i, 1)) * 100 / sMax) / 100)
|
|
' MsgBox(CStr(s(i, 0)).ToString)
|
|
' g.FillRectangle(Brushes.Red, New Rectangle(x0 + xLeftBound, y0, 20, hoehe))
|
|
g.FillRectangle(Brushes.Red, CoordRectangle(w, h, x0 + xLeftBound, y0 + 20, 20, hoehe))
|
|
g.DrawString(CInt(s(i, 1)).ToString, New Font(p.Font.FontFamily, 8), Brushes.Black, CoordPoint(h, x0 + xLeftBound, 20 + hoehe + 15))
|
|
g.DrawString(CStr(s(i, 0)).ToString, New Font(p.Font.FontFamily, 7), Brushes.Black, CoordPoint(h, x0 + xLeftBound, 15))
|
|
|
|
xLeftBound += 30
|
|
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
Next
|
|
|
|
End Sub
|
|
Function getMax(s(,) As String) As Long
|
|
Dim max As Long = 0
|
|
For i = 0 To s.GetUpperBound(0) - 1
|
|
If CLng(s(i, 1)) > max Then
|
|
max = CLng(s(i, 1))
|
|
End If
|
|
Next
|
|
Return max
|
|
End Function
|
|
Function CoordRectangle(w As Integer, h As Integer, x0 As Integer, y0 As Integer, x As Integer, y As Integer) As Rectangle
|
|
' MsgBox(" x0: " & x0 & " y0: " & CStr(h - y0 - y) & " x: " & x & " y: " & y)
|
|
Return New Rectangle(x0, h - y0 - y, x, y)
|
|
End Function
|
|
Function CoordPoint(h As Integer, x As Integer, y As Integer) As Point
|
|
Return New Point(x, h - y)
|
|
End Function
|
|
|
|
Private Sub frmStatFrima_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
|
initPnlStat()
|
|
End Sub
|
|
|
|
Private Sub Label8_Click(sender As Object, e As EventArgs) Handles lblAnzLKWs.Click
|
|
|
|
End Sub
|
|
End Class |