Automatisch Kennzeichen generieren

  • VB.NET

Es gibt 61 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    So hab jetzt mal einige Tage immer mal wieder ein wenig was daran versucht was ihr alle geschrieben habt.
    Also die Methode von @VaporiZed finde ich erlich gesagt sehr gut, habe dies jetzt so eingepflegt und umgesetzt. Mit dem Kennzeichen problem bin ich momentan auf dem stand das immer +1 gemommen wird und wenn man ein Kennzeichen (z.b. 0003) abgibt addiert er trotzdem weiter ... bis 9999 und startet dann neu mit 0001 sofern verfügbar.

    Habe jetzt ja ein DataGridView der als Tabelle meine Gekauften Fahrzeuge anzeigt inkl. TÜV usw. wann es dran ist... wie kann ich diese Tabelle so speichern wie sie ist und später per Laden button wieder so füllen.

    So sieht momentan mein Speichern aus für die anderen dinge im spiel. (Wie kann ich die Speicherung fortsetzten damit er das DataGridView mit speichert)

    VB.NET-Quellcode

    1. Dim sfd As New SaveFileDialog
    2. If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
    3. My.Computer.FileSystem.WriteAllText(sfd.FileName, Label_nFirma.Text & ";" & Label_Spielername.Text & ";" & Label_pKonto.Text & ";" & Label_fKonto.Text & ";" & Label_fWert.Text, False)
    4. End If


    EDIT: Hab da grad noch ein Problem gefunden ich bekomme die Formatierung in der DataView nicht hin.

    Er hat die Variable: Dim Kennzeichen As String

    jetzt Kaufe ich ein Fahrzeug per Klick:

    VB.NET-Quellcode

    1. Kennzeichen += 1
    2. Kennzeichen = Format(Val(Kennzeichen), "0000").ToString
    3. DataGridView1.Rows.Add(Fahrzeugart, Kennzeichen, Standort, Tuev, Inspektion)


    und in der Tabelle zeigt er mir das Kennzeichen 0001...0002....0003 usw an statt B - 0001....B - 0002 usw.

    Ich weis weil es da so Formatiert ist Kennzeichen = Format(Val(Kennzeichen), "0000").ToString aber ich bekomme das B - nicht hin habs in der Variablen versucht und im klick auch aber er sagt immer Fehler Typ double ... B - 0001 fügt er hinzu danach ist ende... schmiert das Programm ab.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VBHunter“ ()

    @VBHunter Zunächst machst Du Option Strict On, falls das noch nicht ist.
    Eine Variable für die Nummer, eine für den String!
    Probier dann mal dies:

    VB.NET-Quellcode

    1. Private Kennzeichen As Integer = 1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim kzText = String.Format("B - {0:0000}", Kennzeichen)
    4. Kennzeichen += 1
    5. Label1.Text = kzText
    6. End Sub

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Da RfGs Code läuft, wenn er 1:1 verwendet wird, wird es an der Implementierung in den eigenen Code liegen.

    VBHunter schrieb:

    aber er sagt immer Fehler Typ double ... B - 0001 fügt er hinzu danach ist ende... schmiert das Programm ab.
    Geht das vielleicht etwas … klarer? Ich kann die Fehlermeldung aus diesem Satz nicht extrahieren. Aber es bleibt dabei, was RfG schrieb: Entweder ist Kennzeichen eine Zahl oder ein Text. Beides zusammen geht nicht. Das wär sonst so, als würdest Du versuchen, mit dem Inhalt eines Wörterbuchs zu rechnen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Jou.

    VBHunter schrieb:

    aber leider nein es geht trotzem nicht
    Den hab ich sogar getestet :!:
    Wahrscheinlich hast Du halbe Zeilen von Dir an halbe Zeilen von Dir gehängt und damit den Kontext völlig verändert, insbesondere was die Variablen-Typen angeht.
    Programmierst Du Option Strict On :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Na ja 1:1 hab ich ihn nicht kopiert da ich es ja in mein Dataview einbauen will statt in ein Label aber ich teste deins nachher noch einmal.

    Ja ich habe option strict on wurde ja in anderen Themen oft von dir drauf hingewiesen :D

    VBHunter schrieb:

    Ja ich habe option strict on
    Ich wagte zu zweifeln, da Du eine Variable wohl vom Typ String sowohl für die laufende Nummer als auch für den Kennzeichentext verwendest, das geht schief :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VBHunter schrieb:

    Ja ich habe option strict on wurde ja in anderen Themen oft von dir drauf hingewiesen
    Dann würde ich jetzt noch drauf hinweisen, den MVB-GeneralImport zu entfernen.
    Weil Methoden wie Format(), Val() etc. sind aus dem letzten Jahrtausend (was ja ansich nicht schlimm wäre, aber .Net hat tatsächlich inzwischen besseres! ;) ).
    Visual Studio - Empfohlene Einstellungen

    Hm also ich hab @RodFromGermany code noch einmal eingebaut 1:1 und der Funktioniert wirklich im Label und in meiner DataView ...
    jetzt hab ich denn Code mal geändert da ich es ja nicht in einen Label anzeigen lassen will sondern nur in der DataView:

    VB.NET-Quellcode

    1. Dim kzText = String.Format("B - {0:0000}", Kennzeichen)
    2. Kennzeichen += 1
    3. Kennzeichen = kzText 'Nur das habe ich geändert


    und dieser Fehler kommt, wenn ich auf Autokauf klicke (Button)

    VBHunter schrieb:

    und dieser Fehler kommt, wenn ich auf Autokauf klicke (Button)

    RodFromGermany schrieb:

    Eine Variable für die Nummer, eine für den String!
    Beratungsresistent?
    Welchen Typ hat Kennzeichen :?:
    Welchen Typ hat kzText :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VBHunter schrieb:

    Integer & String
    Korrekt.
    Was hast Du für eine Veranlassung, diese Zeile einzufügen:

    VBHunter schrieb:

    VB.NET-Quellcode

    1. Kennzeichen = kzText 'Nur das habe ich geändert
    :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    na weil ich will, dass es in meiner DataView so angezeigt wird...


    du hatest da label1.text und das ist ja für ein Label ....

    so sieht mein Autokauf Button aus:

    VB.NET-Quellcode

    1. 'Beispiel Sprinter Kauf
    2. Dim Fahrzeugart As String
    3. Dim Standort As String
    4. Dim TuevbeiKauf As Date = SystemDatum
    5. Dim Inspektion As Date = SystemDatum
    6. Fahrzeugart = "Sprinter"
    7. Dim kzText = String.Format("B - {0:0000}", Kennzeichen)
    8. Kennzeichen += 1
    9. Kennzeichen = kzText
    10. Standort = "Berlin"
    11. TuevbeiKauf = DateAdd("yyyy", 2, SystemDatum)
    12. Tuev = TuevbeiKauf
    13. Inspektion = DateAdd("yyyy", 1, SystemDatum)
    14. DataGridView1.Rows.Add(Fahrzeugart, Kennzeichen, Standort, Tuev, Inspektion)


    wie oben im Bild zu sehen fügt er ja jetzt ein Fahrzeug hinzu, klicke ich aber noch einmal dann ....

    VBHunter schrieb:

    na weil ich will, dass es in meiner DataView so angezeigt wird...
    Genau dafür ist die Variable kzText da.
    Wenn Du sie in einer anderen Prozedur brauchst, solltest Du sie dort generieren, Kennzeichen liegt ja in der Klasse.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Man bist du gut.... und es machte wieder Klick :D

    Das:

    VB.NET-Quellcode

    1. DataGridView1.Rows.Add(Fahrzeugart, Kennzeichen, Standort, Tuev, Inspektion)


    ersetzen durch:

    VB.NET-Quellcode

    1. DataGridView1.Rows.Add(Fahrzeugart, kzText, Standort, Tuev, Inspektion)


    Perfekt..... aber bekomm ich da jetzt noch irgendwie meine NULLEN hin also das er es als B - 0001 anzeigt statt B - 1?

    VBHunter schrieb:

    aber bekomm ich da jetzt noch irgendwie meine NULLEN hin
    Hatten wir doch schon:

    VBHunter schrieb:

    VB.NET-Quellcode

    1. Dim kzText = String.Format("B - {0:0000}", Kennzeichen)

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VBHunter schrieb:

    macht er es bei mir aber nicht
    Bei mir schon:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!