| |
VB.NET - FortgeschritteneDaten Auswerten | | | Autor: ERBRU | Datum: 13.06.18 19:21 |
| ich brauche eure Hilfe,
habe eine Tabelle
Spalte---------------Typ
ID-------------------Autowert(Int32)
Liefermangel---------String
Eingang--------------DateTime
Woche----------------Funktion(DateToWeek) (String)
Beschreibung---------String
Verursacher----------String
Stellungnahme--------String
Status---------------String
Nun, möchte ich ein Balkendiagramm 2018 mit den Monaten: Januar, Feburar ...,Dezember
Balken: je Monat Anzahl Liefermangel, und je Monat Häufigkeit Verursacher zum Liefermangel.
Hoffe bekomme auf dies Thema eine Antwort wie man ein Jahresdiagramm erstellen kann und die Daten richtig präsentiert (Bericht) für den Chef
Function DateToWeek zur berechnung der Woche aus Datum
Public Function DateToWeek(ByVal dDate As Date) As String
' Startdatum der ersten Kalenderwoche des Jahres und Folgejahres
' berechnen
Dim dThisYear As Date = CalendarWeek(1, dDate.Year)
Dim dNextYear As Date = CalendarWeek(1, dDate.Year + 1)
' Prüfen, ob Datum zur ersten Woche des Folgejahres gehört
If dDate >= dNextYear Then
' Rückgabe: KW 1 des Folgejahres
Return dDate.Year + 1 & "01"
ElseIf dDate < dThisYear Then
' Falls das Datum noch zu einer KW aus dem letzten Jahr zählt
Return dDate.Year - 1 & DatePart(DateInterval.WeekOfYear, _
New Date(dDate.Year - 1, 12, 28), FirstDayOfWeek.Monday, _
FirstWeekOfYear.FirstFourDays)
Else
' KW = Differenz zum ersten Tag der ersten Woche
Return dDate.Year & Format$(dDate.Subtract(dThisYear).Days \ 7 + 1, _
"00")
End If
End Function |Beispiel: Lieferant, Kunde, Material etc. = Verursacher.
so wird der Verursacher Lieferant für den Mangel 1, 2, ... mal zugewiesen, oder der Kunde etc.
oder das Material, oder Sonstiges
seht euch das Bild mal an. Danke, Danke
https://picload.org/view/dopggdpi/13-06-_2018_19-31-04.png.html
Beitrag wurde zuletzt am 13.06.18 um 19:41:12 editiert. | |
Re: Daten Auswerten | | | Autor: Manfred X | Datum: 13.06.18 20:25 |
| Hallo!
Stelle Fragen, die man auch beantworten kann.
Wie ergibt sich die Anzahl von Liefermängeln pro Monat
aus dieser Tabellenstruktur?
Ist bei einem Fehlenden Mangel in der Spalte Liefermangel "nichts"
eingetragen (Leerstring, DbNull, Kennstring)?
Geht es in dem Fall um relative oder absolute Häufigkeiten?
Oder beziehen sich alle Datensätze in der Tabelle auf Mangellieferungen
und müssen deshalb nur ausgezählt werden?
Können die verschiedenen Arten von Liefermängeln zu einer Häufigkeit
zusammengefasst werden? Oder gibt es Typen?
Sind die Mangel-Häufigkeiten für Monate oder für Verursacher aneinander zu
relativieren?
Du willst wissen, wie man die Daten richtig präsentiert?
Das hängt von den Daten (Häufigkeiten) ab?
Skala: Linear oder Logarithmisch? Typ: Balken oder Kuchen?
Soll es vielleicht ein stacked-Diagramm "Liefermagel x Verursacher" werden?
Auch der Darstellungs-Zweck spielt eine Rolle?
- Zeitlicher Trend
- Monate mit besonderer Häufung
- Selektion von Verursachern mit besonderer Häufung
Usw.
Übrigens:
Die Mittel die Du dafür brauchst (Klassen, Vorgehensweisen) sind in
diesem Forum ausführlich besprochen worden.
Und noch eins:
Ich glaube nicht, daß Du bereits Daten für Dezember 2018 besitzt!
Beitrag wurde zuletzt am 13.06.18 um 20:35:22 editiert. | |
Re: Daten Auswerten | | | Autor: ERBRU | Datum: 14.06.18 06:44 |
| Hallo Manfred X
erst mal Danke für die Antwort.
ich bekomme einen Mangel gemeldet mit einer Situationsbeschreibung
diese Meldung lege ich mir zunächst als Vorgang an. Vermerk den Eingang der Meldung
19.03.2018
der Vorgang geht in den Status In Bearbeitung. Nach Analyse wird der Vorgang "Mangel" einem möglichen Verursacher zugewiesen, ist der Verursacher nicht analysierbar weise ich das als Unbekannt zu.
Der Status etc. wird dokumentiert = erledigt. mit Datum
Dh. ausgewertet wird erst nach "Status" erledigt. Und bei Bedarf
somit:
Ist bei einem Fehlenden Mangel in der Spalte Liefermangel "nichts"
eingetragen (Leerstring, DbNull, Kennstring)? trifft nicht zu da der Mangel "als Vorgang" erfasst wird
Geht es in dem Fall um relative oder absolute Häufigkeiten? absolute Häufigkeiten
Können die verschiedenen Arten von Liefermängeln zu einer Häufigkeit
zusammengefasst werden? Oder gibt es Typen? in diesem Fall werden nicht die Arten von Liefermängeln
festgehalten oder nach Typ.
Beispielsweise: Technik, Elektik usw. sondern wer ist Verursacher für den Mangel
Beispiel: Meldung: 1 Vorgang 19.03.2018 :Verursacher Lieferant
Meldung: 1 Vorgang 20.03.2018 :Verursacher Lieferant
Meldung: 1 Vorgang 20.03.2018 :Verursacher Unbekannt
also 3 Liefermangel im Monat März
Verursacher im Monat März 2 x Lieferant 1x Unbekannt
Sind die Mangel-Häufigkeiten für Monate oder für Verursacher aneinander zu
relativieren? also Ja
Soll es vielleicht ein stacked-Diagramm "Liefermagel x Verursacher" werden? Ja
Auch der Darstellungs-Zweck spielt eine Rolle? Da hast du wohl Recht, kann da gerade nichts mit anfangen ist aber interessant.
- Zeitlicher Trend
- Monate mit besonderer Häufung
- Selektion von Verursachern mit besonderer Häufung
Die Mittel die Du dafür brauchst (Klassen, Vorgehensweisen) ja haste Recht aber ich bräuchte doch noch mal einen Tritt...
PS ja den Monat Dezember habe ich noch nicht
Danke
evtl so ? nur mal so in Excel (Verurscher bezieht sich nicht auf den Monat?)
https://picload.org/view/dopgacwa/14-06-_2018_06-47-48.png.html
Beitrag wurde zuletzt am 14.06.18 um 06:53:51 editiert. | |
Re: Daten Auswerten | | | Autor: Manfred X | Datum: 14.06.18 11:39 |
| Die Tabelle enthält Stringspalten.
Das ist z.B. für Häufigkeitsanalysen problematisch
(verschiedene Schreibweisen, Groß-/Kleinschreibung, Schreibfehler)
Es sollte eine zusätzliche Tabelle geben mit den String-Spalten:
Liefermangel, Verursacher Status
In den Zeilen sind die möglichen Bezeichner jeweils einmal
aufgelistet.
In der Tabelle, die die Liefermängel enthält, wird dann auf diese
Basistabelle verwiesen (Fremdschlüssel, Stichwort: Normalisierung). | |
Re: Daten Auswerten | | | Autor: ERBRU | Datum: 14.06.18 15:04 |
| OK Manfred X,
dann baue ich die zusätzliche Tabelle ein.
ich gehe jetzt so vor:
1. Tabelle Eingang in der ich die Meldung erfasse
- ID
- MeldungsnummerLM
- BeschreibungLM
2. Tabelle Status
- ID
- Status
- IDEingang
- MeldungsnummerLM
- VerursacherLM
3. Tabelle Maßnahme
- ID
- IDStatus
- Ursache
- Maßnahme
- Fazit | |
Re: Daten Auswerten | | | Autor: ERBRU | Datum: 17.06.18 10:17 |
| Hallo Manfred X,
habe nun eine seperate Tabelle angelegt, und alles überarbeitet.
im 1. Schritt wird die Meldung erfasst
im 2. Schritt wird der Meldung ein Verursacher zugewiesen
nachdem wir es analysiert haben. Evtl. angefallene Ausfallzeiten (Minuten) werden dem Verursacher zugewiesen angegeben.
im 3. Schritt soll das nun in eine Auswertung da brauche ich dich jetzt mal. Wie das in einem Chart aussehen könnte (Monatsauswertung)mit den Ausfallzeiten Häufigkeit nach Verursacher pro Monat
https://picload.org/view/dopocada/17-06-_2018_09-31-32.png.html
Datenmodell: über Private ReadOnly Property ... typisiert
https://picload.org/view/dopocapr/17-06-_2018_10-18-56.png.html
Beitrag wurde zuletzt am 17.06.18 um 10:23:53 editiert. | |
Re: Daten Auswerten | | | Autor: ERBRU | Datum: 30.06.18 20:30 |
| Hallo Manfred,
so ganz habe ich es noch nicht geschafft wie es sein sollte
https://picload.org/view/dlgaawia/30-06-_2018_20-11-08.png.html
ich möchte ja die Verursacher pro Monat ermitteln, also wer versteckt sich hinter der Anzahl
und wieviele Ausfallminuten hat er verursacht. Das wäre eine Top Auswertung evtl. mit Trend...
Datenmodell:
https://picload.org/view/dlgaogga/17-06-_2018_10-18-56.png.html
Private Sub btn_btn_Auswerten_Click(sender As Object, e As EventArgs) Handles _
btn_Auswerten.Click
Dim dt As DataTable = DSABLAGE.STATUSLM
Dim year_selected As Integer = CInt(cbx_Jahr.SelectedItem)
'Häufigkeitstabelle aus Datensätzen erstellen
Dim dc As New DataTable
With dc.Columns
.Add("Month", GetType(String))
.Add("Freq. done", GetType(Integer))
.Add("Freq. todo", GetType(Integer))
End With
dc.PrimaryKey = {dc.Columns("Month")}
For i As Integer = 0 To dt.Rows.Count - 1
Dim dr As DataRow = dt.Rows(i)
If DirectCast(dr("LMSTATUS"), Date).Year = year_selected Then
'sortierbarer Jahr-Monat-String
Dim ym As String = _
dr.Field(Of Date)("LMSTATUS").Year.ToString & "-" & _
dr.Field(Of Date)("LMSTATUS").Month.ToString("00")
'Datensatzsuche nach Monat in Häufigkeitstabelle
'gemäß Primärschlüssel
Dim dcr As DataRow = dc.Rows.Find({ym})
If dcr Is Nothing Then
dcr = dc.Rows.Add({ym, 0, 0})
End If
Dim fcol As String
fcol = dc.Columns(1).ColumnName
'Häufigkeit bestimmen
dcr(fcol) = CInt(dcr(fcol)) + 1
End If
Next i
Dim bs As New BindingSource With {.DataSource = dc}
bs.Sort = "Month ASC"
'Chart für Häufigkeiten erstellen
With Chart1
.ChartAreas.Clear()
.Series.Clear()
.Legends.Clear()
.AntiAliasing = AntiAliasingStyles.All
.TextAntiAliasingQuality = TextAntiAliasingQuality.High
.BackColor = Color.Transparent
.BackSecondaryColor = Color.Transparent
.BackHatchStyle = ChartHatchStyle.DashedHorizontal
.BackGradientStyle = GradientStyle.DiagonalRight
.BorderColor = Color.Transparent
.BorderDashStyle = ChartDashStyle.DashDotDot
.BorderWidth = 1
.Titles.Clear()
.Titles.Add("Titel")
.Titles(0).Text = "LM - AUSWERTUNG"
.Titles(0).Font = New Font("Thahoma", 10, FontStyle.Regular)
.Titles(0).ForeColor = Color.WhiteSmoke
.Titles(0).BorderColor = Color.Transparent
.Titles(0).BackColor = Color.Transparent
.Titles(0).Alignment = System.Drawing.ContentAlignment.BottomCenter
.DataSource = bs
'hier könnte man auch mittels IF Bedingung 3D <> 2D umschalten
.ChartAreas.Add("Base").Area3DStyle.Enable3D = False
'X - Achse
With .ChartAreas("Base").AxisX
.Title = "Jahr-Monat"
.TitleForeColor = Color.WhiteSmoke
.IsLabelAutoFit = True
.LabelStyle.Font = New Font("Arial", 10)
.LabelStyle.ForeColor = Color.WhiteSmoke
.LabelStyle.Angle = -45
.Interval = 1
End With
'Y - Achse
With .ChartAreas("Base").AxisY
.Title = "Anzahl - Liefermangel"
.IsLabelAutoFit = True
.LabelStyle.Font = New Font("Arial", 10)
.TitleForeColor = Color.WhiteSmoke
.LabelStyle.ForeColor = Color.WhiteSmoke
End With
.Series.Add("LM")
With .Series("LM")
.XValueMember = "Month"
.YValueMembers = dc.Columns(1).ColumnName
.ChartType = SeriesChartType.StackedColumn
.IsValueShownAsLabel = True
.ChartArea = "Base"
End With
End With
End Sub | |
Re: Daten Auswerten | | | Autor: ERBRU | Datum: 02.07.18 06:05 |
| das war es auch noch nicht, wer hat eine Idee?
Danke, Danke | |
| 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! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|