104 lines
3.8 KiB
VB.net
104 lines
3.8 KiB
VB.net
Public Class usrCntlAuswertungAuslastungMA
|
|
Dim cDIENST As New cDienstplan
|
|
Dim cPF As New cProgramFunctions
|
|
|
|
Public SETTINGS As cDienstSettings
|
|
|
|
Dim von As Integer = 6
|
|
Dim bis As Integer = 21
|
|
Dim bottomSpacing As Integer = 12
|
|
Dim montag As Date = Now
|
|
Dim niederlassung As String = ""
|
|
Dim maAnz As Integer = 0
|
|
Dim loaded = False
|
|
|
|
Public Sub init(montag As Date, niederlassung As String)
|
|
' Me.niederlassung = niederlassung
|
|
' lbl_Std_Mo.Text = getStd(montag).ToString("F1")
|
|
' lbl_Std_Di.Text = getStd(montag.AddDays(1)).ToString("F1")
|
|
' initPnl(pnlMo)
|
|
Me.montag = montag
|
|
Me.niederlassung = niederlassung
|
|
SETTINGS = New cDienstSettings(niederlassung)
|
|
von = SETTINGS.dpset_WoAuslVon
|
|
bis = SETTINGS.dpset_WoAuslBis
|
|
Me.maAnz = cDIENST.getValueTxtBySql("SELECT COUNT(*) FROM [tblDienstMitarb] where dstma_niederlassung='" & niederlassung & "'", "ADMIN")
|
|
|
|
loaded = True
|
|
Me.Refresh()
|
|
End Sub
|
|
|
|
|
|
Sub initPnl(pnl As Panel, datum As Date)
|
|
If Not loaded Then Exit Sub
|
|
|
|
Dim intervallAnz = bis - von + 1
|
|
Dim intervallBreite = pnl.Width / intervallAnz
|
|
Dim img As Image = New Bitmap(pnl.Width, pnl.Height)
|
|
|
|
Dim g As Graphics = pnl.CreateGraphics
|
|
|
|
Dim left = 0
|
|
|
|
'For t = 0 To 6
|
|
Dim list As List(Of cDienstEintrag) = cDIENST.getDienstEintragListBenSchicht(datum, niederlassung)
|
|
|
|
If list IsNot Nothing Then
|
|
For i = von To bis
|
|
Dim anz As Integer = 0
|
|
For Each l In list
|
|
Dim timeVon As TimeSpan = TimeSpan.Parse(i & ":00")
|
|
Dim timeVonDB As TimeSpan = TimeSpan.Parse(l.dstetr_von)
|
|
Dim timeBis As TimeSpan = TimeSpan.Parse(IIf((i + 1) = 24, "00", (i + 1)) & ":00")
|
|
Dim timeBisDB As TimeSpan = TimeSpan.Parse(l.dstetr_bis)
|
|
' MsgBox(timeVon.TotalMinutes & " _ " & timeVonDB.TotalMinutes)
|
|
If timeVonDB <= timeVon And timeBisDB >= timeBis Then
|
|
anz += 1
|
|
End If
|
|
Next
|
|
Dim height = anz * ((pnl.Height - bottomSpacing) / maAnz)
|
|
g.FillRectangle(Brushes.Brown, New Rectangle(left, pnl.Height - height - bottomSpacing, intervallBreite - 1, height))
|
|
' g.DrawRectangle(Pens.Gray, New Rectangle(left, pnl.Height - height - bottomSpacing, intervallBreite, height))
|
|
If i Mod 2 = 0 Then g.DrawString(i.ToString("00."), New Font(Me.Font.FontFamily, 7), Brushes.Brown, New Point(left, pnl.Height - bottomSpacing + 1))
|
|
left += intervallBreite
|
|
Next
|
|
End If
|
|
'Next
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub btn_Click(sender As Object, e As EventArgs)
|
|
init(CDate("23.01.2017"), "WAI")
|
|
End Sub
|
|
|
|
|
|
Private Sub pnlMo_Paint(sender As Object, e As PaintEventArgs) Handles pnlMo.Paint
|
|
initPnl(sender, montag.AddDays(0))
|
|
End Sub
|
|
|
|
Private Sub pnlDi_Paint(sender As Object, e As PaintEventArgs) Handles pnlDi.Paint
|
|
initPnl(sender, montag.AddDays(1))
|
|
End Sub
|
|
|
|
Private Sub pnlMi_Paint(sender As Object, e As PaintEventArgs) Handles pnlMi.Paint
|
|
initPnl(sender, montag.AddDays(2))
|
|
End Sub
|
|
|
|
Private Sub pnlDo_Paint(sender As Object, e As PaintEventArgs) Handles pnlDo.Paint
|
|
initPnl(sender, montag.AddDays(3))
|
|
End Sub
|
|
|
|
Private Sub pnlFr_Paint(sender As Object, e As PaintEventArgs) Handles pnlFr.Paint
|
|
initPnl(sender, montag.AddDays(4))
|
|
End Sub
|
|
|
|
Private Sub pnlSa_Paint(sender As Object, e As PaintEventArgs) Handles pnlSa.Paint
|
|
initPnl(sender, montag.AddDays(5))
|
|
End Sub
|
|
|
|
Private Sub pnlSo_Paint(sender As Object, e As PaintEventArgs) Handles pnlSo.Paint
|
|
initPnl(sender, montag.AddDays(6))
|
|
End Sub
|
|
End Class
|