| |

VB.NET - Ein- und UmsteigerRe: Buchung simulieren | |  | Autor: Moglie | Datum: 16.12.13 17:23 |
| Hallo Manfred
Danke für deinen Code. Leider muss ich mich an die Vorgaben des Lehrgangs halten. Diese lauten:
In der Aufgabe erstellen sie eine Klasse Konto. in der Testklasse dazu simulieren Sie einige Buchungen. Sollte dabei der Dispositionsrahmen überschritten werden, wirft die Klasse Konto das Ereignis DispoGrenze aus. Dieses Ereignis werden Sie wiederum in der Testklasse behandeln, indem Sie mittels der unten abgebildeten MessageBox den Benutzer informieren und fragen, b der Disporahmen ausgeschöpft werden soll oder aber der Vorgang abgebrochen werden soll. hab meinen Code etwas überarbeitet und mit deiner Hilfe rechnet er nun auch richtig. Was er aber nicht macht ist "Abbrechen". Also wenn ich ihm sagen "Betrag abheben(ja), Abbruch (Nein) funktioniert Variante "ja" aber "nein" nicht. Hast du mir einen Tipp?
Imports System.Console
Imports System.Windows.Forms
Class Konto
Private m_Kontonr As String
Private m_Kontostand As Decimal
Private m_Dispo As Decimal
Public Event DispoGrenze(ByVal sender As Object, ByRef Abbrechen As Boolean)
ReadOnly Property Kontonr() As String
Get
Return m_Kontonr
End Get
End Property
ReadOnly Property Kontostand() As Decimal
Get
Return m_Kontostand
End Get
End Property
ReadOnly Property Dispo As Decimal
Get
Return m_Dispo
End Get
End Property
Public Sub New(ByVal Kontonr As String, ByVal Dispo As Decimal)
m_Kontonr = Kontonr
m_Dispo = Dispo
m_Kontostand = 2000
End Sub
Sub Buchung(ByVal Betrag As Decimal)
If Betrag + Kontostand > m_Dispo Then
m_Kontostand = Betrag + Kontostand
Else
Dim Abbrechen As Boolean = True
RaiseEvent DispoGrenze(Me, Abbrechen)
If Abbrechen = False Then
End If
m_Kontostand = Math.Max(m_Kontostand + Betrag, m_Dispo)
End If
End Sub
Sub Ausgabe()
Dim s As String = "Kontonr: " & Kontonr & ", " _
& " Kontostand: " & Kontostand.ToString(".00") & _
"," _
& " Disporahmen: " & Dispo
WriteLine(s)
End Sub
End Class
Class Test
Shared WithEvents k As Konto
Shared Sub Main()
k = New Konto("123", -3000)
With k
.Ausgabe()
WriteLine()
.Buchung(-8000)
.Ausgabe()
WriteLine()
.Buchung(-12000)
.Ausgabe()
End With
End Sub
Private Shared Sub k_DispoGrenze(ByVal sender As Object, ByRef Abbrechen As _
Boolean) Handles k.DispoGrenze
Dim s As String = _
"Der gewünschte Betrag kann nicht abgehoben werden," _
& " da der Dispositionsrahmen überschritten wurde." _
& vbCrLf & vbCrLf _
& " Sie können noch " & CType(sender, Konto).Kontostand - CType( _
sender, Konto).Dispo & " abheben." _
& vbCrLf _
& "Betrag abheben (Ja), Abbruch (Nein)."
Dim Antwort As DialogResult
Antwort = MessageBox.Show(s, "Buchung", MessageBoxButtons.YesNo, _
MessageBoxIcon.Error, _
MessageBoxDefaultButton.Button2)
If Antwort = DialogResult.OK Then
Abbrechen = False
End If
End Sub
End Class |  |
 | 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 TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 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
|
|