Array-Verarbeitung: ABC-Analyse III

Array-Verarbeitung: ABC-Analyse. Kumulierten Umsatz zuordnen, Kundennummer suchen
Aufgabe: In der Kundenzeile soll rechts davon die zugehörende ABC-Klasse angezeigt werden (diese ergibt sich
durch kumulierte Addition der Umsatzanteile in Prozent).
Eine Suchfunktion für eine Kunden-Nummer soll integriert werden, die Fehler meldet, falls es die gesuchte Nummer
nicht gibt.
Const armax = 99
Private KdList(0 To armax) As TKunden
Private hilf As TKunden
Private GesUms As Long
Private pos As Integer
Private Type TKunden
KdNr As String * 5
KdUm As Long
ABC As String
End Type
Private Sub cmdSuchen_Click()
Dim KundSuchNr As String
Dim gef As Boolean, i As Integer
If txtSuchen.Text <> "" Then
KundSuchNr = Trim$(txtSuchen.Text) Kunden-Nummer soll mit dem Text, der sich im Suchfeld
i = 0 befindet, übereinstimmen.
gef = False
While i <= armax And Not gef
If KundSuchNr = Trim$(KdList(i).KdNr) Then
pos = i
gef = True
End If
i = i + 1
Wend
If gef Then Die Zeile mit gefundener Kunden-Nummer wird in der
Call TabAnzeigen ersten Ausgabezeile sichtbar gemacht.
Call settfokus
lblSuchen.ForeColor = &H80000012
lblSuchen.Caption = "<-- Suchen"
Else
lblSuchen.ForeColor = &HFF&
lblSuchen.Caption = "gibt's nicht" Wenn kein Eintrag gefunden wird, gibtís eine Meldung.
Call settfokus
End If
Else
With lblSuchen
.ForeColor = &HFF&
.Caption = "eingeben"
Call settfokus
End With
End If
End Sub
Private Sub settfokus()
With txtSuchen
.SelStart = 0
.SelLength = Len(.Text)
.SetFocus
End With
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 3, (Screen.Height - Me.Height) / 3
cmdRueck.Enabled = False
Call TabLaden
Call sortieren
Call analyse
Call TabAnzeigen
End Sub
Private Sub TabLaden()
Dim i As Long
GesUms = 0
Randomize
For i = 0 To armax
KdList(i).KdNr = Int((99999 - 10000 + 1) * Rnd + 10000)
KdList(i).KdUm = Int((500000 - 5000 + 1) * Rnd + 5000)
GesUms = GesUms + KdList(i).KdUm GesamtUmsatz berechnen.
Next i
End Sub
Private Sub TabAnzeigen()
Dim i As Integer
For i = 0 To 9
If pos + i <= armax Then
lblKdNr(i).Caption = KdList(pos + i).KdNr
txtKdUm(i).Text = KdList(pos + i).KdUm
lblKlasse(i).Caption = KdList(pos + i).ABC
lblNr(i).Caption = pos + i
Else
lblKdNr(i).Caption = ""
txtKdUm(i).Text = ""
lblKlasse(i).Caption = ""
End If
Next i
End Sub
Private Sub sortieren()
Dim i As Integer, k As Integer
For i = 0 To armax - 1
For k = i + 1 To armax
If KdList(i).KdUm < KdList(k).KdUm Then
hilf = KdList(i)
KdList(i) = KdList(k)
KdList(k) = hilf
End If
Next k
Next i
Call TabAnzeigen
End Sub
Private Sub analyse() ABC-Klassen bestimmen.
Dim i As Long, KumUms As Long
Dim AB_Grenze As Long, BC_Grenze As Long
AB_Grenze = 0.7 * GesUms 70% = Klasse A, 25% = Klasse B, 5% = Klasse C.
BC_Grenze = 0.95 * GesUms
KumUms = 0 Kumulierter Umsatz.
i = 0 Der GesamtUmsatz wird in TabLaden berechnet.
Do
KdList(i).ABC = "A"
KumUms = KumUms + KdList(i).KdUm
i = i + 1
Loop Until KumUms > AB_Grenze
Do
KdList(i).ABC = "B"
KumUms = KumUms + KdList(i).KdUm
i = i + 1
Loop Until KumUms > BC_Grenze
Do
KdList(i).ABC = "C"
i = i + 1
Loop Until i > armax
End Sub
Private Sub cmdVor_Click() Vorblättern.
If pos < 90 Then
pos = pos + 1
Call TabAnzeigen
cmdRueck.Enabled = True
Else
pos = pos
cmdVor.Enabled = False
End If
End Sub
Private Sub cmdRueck_Click() Zurückblättern.
If pos > 0 Then
pos = pos - 1
Call TabAnzeigen
cmdVor.Enabled = True
Else
pos = pos
cmdRueck.Enabled = False
cmdVor.SetFocus
End If
End Sub
Private Sub cmdEnde_Click() Ende des Programms.
Unload frmABC
Unload frmAufgabe2
Unload frmAufgabe3
End Sub

Mehr Tipps: Funktionen programmieren

Sponsoren und Investoren

Sponsoren und Investoren sind jederzeit herzlich willkommen!
Wenn Sie die Information(en) auf dieser Seite interessant fanden, freuen wir uns über eine kleine Spende. Empfehlen Sie uns bitte auch in Ihren Netzwerken (z. B. Twitter, Facebook oder Google+). Herzlichen Dank!

Nach oben Sitemap
Impressum & Kontakt