| |

VB.NET - FortgeschritteneStoerdauer ermitteln | |  | Autor: ERBRU | Datum: 02.04.18 10:09 |
| Hallo Forum,
Frohe Ostern wünsche ich, habe ein kleinen Denkfehler mit meinem Code.
möchte doch in der Auswertung die Stördauer ermitteln, kriege es nicht wirklich hin, bzw. verstehe das irgendwie noch nicht. Im Code Fett markiert, da komme ich nicht weiter zu den Einträgen auch die Stördauer zu erhalten.
https://picload.org/view/daparaaw/02-04-_2018_09-36-49.png.html
wäre schön von euch zu hören
Private Function GetFreq1(ByVal week As Integer, _
year As Integer, masch As Integer) As DataTable
Dim Text As String = "Kein Stör-Ereignis"
Dim dt As DataTable = Schichtbuch
Dim cal As Globalization.Calendar = _
Globalization.CultureInfo.CurrentCulture.Calendar
Dim q = From row As DataRow In dt
Let wk As Integer = _
cal.GetWeekOfYear(row.Field(Of Date)("Eintrag"), _
Globalization.CalendarWeekRule.FirstFourDayWeek, _
DayOfWeek.Monday)
Where year = row.Field(Of Date)("Eintrag").Year _
AndAlso wk = week _
AndAlso row.Field(Of Integer)("MaschID") = masch _
AndAlso row.Field(Of String)("Eintrag-Instandhaltung") <> Text, _
Minuten as String = row.Field(Of Integer)("Stoerdauer") _
Group By art = row.Field(Of String)("Eintrag-Instandhaltung") _
Into Count()
Dim df As New DataTable
With df.Columns
.Add("Eintrag-Instandhaltung", GetType(String))
.Add("Stoerdauer", GetType(Integer))
.Add("Count", GetType(Integer))
.Add("Cum", GetType(Double))
.Add("CumPerc", GetType(Double))
End With
For Each el In q
df.Rows.Add(el.art, el.Count)
Next el
Dim bs As New BindingSource With {.DataSource = df}
bs.Sort = "Count DESC"
Dim Summe As Integer
For i As Integer = 0 To bs.Count - 1
Dim row As DataRow = DirectCast(bs(i), DataRowView).Row
'Häufigkeiten kumulieren
Summe += CInt(row("Stoerdauer"))
row("Stoerdauer") = Summe
Next i
Dim sm As Integer = 0
For i As Integer = 0 To bs.Count - 1
Dim row As DataRow = DirectCast(bs(i), DataRowView).Row
'Häufigkeiten kumulieren
sm += CInt(row("Count"))
row("cum") = sm
Next i
'Kumulierte Werte in Prozentanteile umrechnen
For i As Integer = 0 To bs.Count - 1
Dim row As DataRow = DirectCast(bs(i), DataRowView).Row
row("CumPerc") = Math.Round(CInt(row("Cum")) / sm * 100, 2)
Next i
If bs.Count <> 1 Then
FirefoxH28.Text = String.Concat(bs.Count.ToString & " Eintraege" & _
"ausgewertet")
Else
FirefoxH28.Text = String.Concat(bs.Count.ToString & " Eintrag" & _
"ausgewertet")
End If |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|