Helpers - EditNew(of Form) vor dem speichern prüfen ob bereits existiert

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von DerSmurf.

    Helpers - EditNew(of Form) vor dem speichern prüfen ob bereits existiert

    Holladiho - gleich das nächste :o)
    Ich nutze die Helpers (SmallEd) vom @ErfinderDesRades
    Konkret geht es um EditNew(of Form) und EditCurrent(of Form).
    Diese beiden nutze ich zum Beispiel zum anlegen neuer Lieferanten. DtsSettings.Supplier - hier gibt es die Spalten ID, Name, CustNo, Taxes, ShowOrderProgramm.
    Dazu dann eine Form frmEditSupplier. Diese enthält - wie vom @ErfinderDesRades erklärt, die entsprechenden Controls, wenn ich die DataTable aus den Datenquellen auf die Form ziehe.
    Außerdem einen Button mit DialogResult.OK und einen mit DialogResult.Cancel. Code gibt es in dieser Form nicht.
    Der Aufruf zum anlegen eines neuen Lieferanten, bzw. zum bearbeiten eines existierenden Lieferanten, erfolgt dann mittels:

    VB.NET-Quellcode

    1. 'Button zum hinzufügen eines neuen Lieferanten
    2. Private Sub BTNNewSupplier_Click(sender As Object, e As EventArgs) Handles BTNNewSupplier.Click
    3. SupplierBindingSource.EditNew(Of frmEditSupplier)
    4. End Sub
    5. 'Button zum ändern eines Lieferanten
    6. Private Sub BTNEditSupplier_Click(sender As Object, e As EventArgs) Handles BTNEditSupplier.Click
    7. If SupplierBindingSource.Current Is Nothing Then Exit Sub
    8. SupplierBindingSource.EditCurrent(Of frmEditSupplier)
    9. End Sub


    Nun würde ich jedoch gerne beim Anlegen eines neuen Lieferanten prüfen, ob es diesen schon gibt.
    Code dafür wäre ja nicht schwierig und ließe sich gut im Button.OK unterbringen, wenn ich das per Form gesetzte DialogResult entferne und dies im Code erledige, sofern der Lieferant noch nicht existiert.
    Dies würde ja aber zu Problemen beim bearbeiten (EditCurrent) führen, denn beide Methoden nutzen ja die selbe Form.

    Gibt es für dieses Problem eine einfache Lösung? z.B. irgendwie die Möglichkeit eine Property der frmEditSupplier mit einzubringen (CreateNew as boolean oder so).
    Oder sollte ich an dieser Stelle auf die Helpers verzichten und mir das editieren, und selbst anlegen "selber" bauen?

    VB.NET-Quellcode

    1. Private Sub dlgKundeEditNew_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. If Me.bsKunde.At(Of dts.KundeRow).RowState = DataRowState.Detached Then
    3. 'Überprüfen ob Kunde vorhanden
    4. Else
    5. 'nichts tun,Kunde wird bearbeitet.
    6. End If
    7. End Sub


    Sowas vielleicht?
    Rechtschreibfehler betonen den künstlerischen Charakter des Autors.