Array-Verarbeitung: ABC-Analyse II

Blättern im Array, Speichern von Änderungen in Tabelle
Aufgabe: Mit Schaltflächen  <  und  >  soll in der Tabelle geblättert werden. Wird beim Vorwärts-Scrollen das
Ende der Tabelle erreicht, soll eine Meldung ausgegeben werden. Ebenso soll das Ende beim Rückwärts-
Scrollen gemeldet werden.
Im Feld "Kundennummer" soll ein weiteres Feld den Zähler anzeigen.
Das oberste Umsatzfeld soll eingabebereit gemacht werden können.
Const armax = 99
Private KdList(0 To armax) As TKunden
Private hilf As TKunden
Private pos As Integer
Private Type TKunden
 KdNr As String * 5
 KdUm As Long
End Type
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) / 3, (Screen.Height - Me.Height) / 3
cmdRueck.Enabled = False
cmdWeiter.Visible = False
txtKdUm(0).TabStop = False
txtKdUm(0).Locked = True
lblMeld.Caption = "Tabellen- Anfang !"
Call TabLaden
Call TabAnzeigen
End Sub
Private Sub TabLaden()
Dim i As Long
Randomize
 For i = 0 To armax
  KdList(i).KdNr = Int((99999 - 10000 + 1) * Rnd + 10000)
  KdList(i).KdUm = Int((500000 - 5000 + 1) * Rnd + 5000)
 Next i
End Sub
Private Sub TabAnzeigen()
Dim i As Integer
 For i = 0 To 9
  lblKdNr(i).Caption = KdList(pos + i).KdNr
  txtKdUm(i).Text = KdList(pos + i).KdUm
  lblNr(i).Caption = pos + i
 Next i
End Sub
Private Sub cmdFreigabe_Click()
With txtKdUm(0)
 .BackColor = RGB(255, 255, 255)
 .Locked = False
 .TabStop = True
End With
Call settfokus
cmdFreigabe.Visible = False
End Sub
Private Sub settfokus()
With txtKdUm(0)
 .SelLength = Len(.Text)
 .SetFocus
End With
End Sub
Private Sub txtKdUm_LostFocus(Index As Integer) Speichert Änderungen in der ersten Textbox ab !
If txtKdUm(0).Text <> "" Then
 KdList(pos).KdUm = txtKdUm(0).Text
 txtKdUm(0).Text = KdList(pos).KdUm
 Call cmdVor_Click Beim Verlassen der TextBox springt der Zähler um
Else eins höher.
 MsgBox "Wert kann nicht gelöscht werden!" & vbCrLf & _
 "Muss mindestens einen Nullwert enthalten."
 txtKdUm(0).SetFocus
End If
End Sub
Private Sub cmdSort_Click()
Dim i As Integer, k As Integer
pos = 0 Sorgt dafür, dass der Index Null immer oben sichtbar ist.
 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
Call settfokus
End Sub
Private Sub cmdVor_Click() Für das Vorwärtsblättern.
If pos < 90 Then
 pos = pos + 1
 Call TabAnzeigen
 cmdWeiter.Visible = True
 cmdRueck.Enabled = True
 lblMeld.Caption = ""
Else
 pos = pos
 cmdVor.Enabled = False
 cmdWeiter.Visible = False
 lblMeld.Caption = "Tabellen- Ende !" Tabellen-Ende wird gemeldet.
End If
End Sub
Private Sub cmdRueck_Click() Für das Rückwärtsblättern.
If pos > 0 Then
 pos = pos - 1
 Call TabAnzeigen
 cmdVor.Enabled = True
 cmdWeiter.Visible = True
 lblMeld.Caption = ""
Else
 pos = pos
 cmdRueck.Enabled = False
 cmdWeiter.Visible = False
 cmdVor.SetFocus
 lblMeld.Caption = "Tabellen- Anfang !" Tabellen-Anfang wird gemeldet.
End If
End Sub
Private Sub txtKdUm_GotFocus(Index As Integer)
 Call settfokus
End Sub
Private Sub cmdWeiter_Click()
 Unload frmAufgabe2 Das nächste Formular wird aufgerufen - siehe
 frmAufgabe3.Show http://www.wbrnet.info/db/0072.html
End Sub
Links:
Feld 1 nicht eingabebereit.
Zähler 0 bis 9 werden
angezeigt.
Tabellenanfang wird
angezeigt.
Rechts:
Feld 1 eingabebereit.
Zähler 20 bis 29 werden
angezeigt.
.

 Ranking-Hits zurück Sitemap
Designed by www.wbrnet.info