Datatable mit "Autofill" ??

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von druide.

    Datatable mit "Autofill" ??

    Hallo liebe Community,

    habe gerade für mein Problem keine Ideen.

    Projekt: Win10, VB 2017, leeres Hirn ?(

    Aus dem typ. Dataset wird eine Tabelle mittels Bindinsource.Filter auf zwei DGV´s verteilt.
    Der User kann beiden DGV Daten hinzufügen/ändern/löschen, was er sonst so damit machen will. 8o

    Der Filter greift nur auf eine Spalte, diese ist aber nicht für den User sichtbar/änderbar.

    Problem jetzt, wenn neue Daten in eine Tabelle kommen, wie kann ich "diese Spalte" codeseitig füllen?
    Die Filterbedingung ist ja beim "nächsten" Zugriff sonst nicht vorhanden.

    Es müßte im Moment der Eingabe, beim Aktualisieren der Daten geschehen.
    Haben nur gar keine Idee wie. EVTL. Blackout

    Danke schon mal für Ideen und Hilfe.
    druide

    P.s.: Für alle Datensätze einer Tabelle gleichen Wert in der Spalte.
    Hallo VB1963,

    Danke für die schnelle Antwort.

    Klingt aber genau nach dem, was ich gesucht habe.

    Für weitere Erklärungen:
    Das typ. Dataset möchte ja alle Daten eindeutig zuweisen können.
    Wenn aber durch den User neue Daten, bis jetzt (so meine Überlegungen) hinzugefügt werden,
    kann das System nicht mehr richtig die Daten der jeweiligen Tabellen zuordnen. Es entsteht DatenChaos.
    Was vermieden werden sollte.
    Durch die Eingabe neuer Daten kann/darf der User diese Filter-Spalte nicht verändern, daher das Problem.

    Muß mir das mit dem Vorlagewert anschauen.

    Danke nochmal
    druide

    druide schrieb:

    Wenn aber durch den User neue Daten, bis jetzt (so meine Überlegungen) hinzugefügt werden,
    kann das System nicht mehr richtig die Daten der jeweiligen Tabellen zuordnen. Es entsteht DatenChaos.
    Wenn du damit Typsicherheit der Daten meinst, ist das typ. Dataset dazu ja da solche Daten aufzunehmen...
    Es quittiert sofort mit einer Fehlermeldung, wenn's typunverträglich hergeht!
    Hallo,

    genau an dem Punkt meiner Coderei habe ich pausiert.
    Wenn ich schon genau erkenne, daß ein Fehler auftauchen kann, gehts bei mir erst weiter, wenn das Problem gelöst.

    Sonst habe ich am Ende viele Probleme und kann dann gleich wieder von vorne anfangen.
    Bin auch nur faul, aber nicht blöd.

    Danke
    druide.
    Hallo,

    bin mir manchmal selber im Weg.
    Wollte das Problem auf irrwitzige Weise lösen, fand aber keinen funktionierenden Weg.
    Wenn man sich festgefahren hat, sieht man den Wald vor lauter Bäumen nicht mehr.

    Kleine Denkanstöße wirken manchmal Wunder.

    VB.NET-Quellcode

    1. DataColumn.DefaultValue
    ist die richtige Wahl. Und funktioniert.

    Danke an alle
    druide

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

    Hallo,

    konnte erst jetzt richtig testen.

    Problem besteht immer noch mit den beiden DGV´s und dem Filtern.
    Der DefaultValue sollte bei Eingabe nur eines DGV gesetzt werden.
    Bei Eingabe in dem anderen DGV sollte dieser Wert nicht gesetzt werden.
    Wenn ich jetzt einen Filter nutze, wird genau danach gesucht, DGV1 (DGV2 nicht gefüllt) richtig befüllt.
    Wenn ein zweiter Filter dazukommt, wird nur noch dieser ausgewertet und beide DGV zeigen identische Daten.

    VB.NET-Quellcode

    1. 1.Filter
    2. Dim filter1 As String
    3. BSSC.DataSource = StartDS.tabSpieler
    4. filter1 = "wer = 'SC'"
    5. BSSC.Filter = filter1
    6. TabSpielerDGV.DataSource = BSSC
    7. 2.Filter
    8. Dim filter2 As String
    9. BSNSC.DataSource = BSSC.DataSource
    10. BSSC.DataSource = StartDS.tabSpieler
    11. filter2 = "wer = ''"
    12. BSSC.Filter = filter2
    13. TabNSCDGV.DataSource = BSNSC


    Das Problem, beide DGV auf einer Form.
    Die Spalten beider DGV identisch, bis auf die Inhalte, werden ja vom User eingetragen.
    Die Bindingsource ist ja nur für eine Tabelle, umgekehrt auch ??

    Das Problem sehe ich beim Einfügen der Rows, ist aber typisiertes DS,
    was aber meine Fehler nicht verhindert, die ich nicht erkenne.

    Wollte auf diese Weise die Table.Merge Methode umgehen.
    Mit zwei getrennten Tabellen funzt es ja.

    druide

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

    Hallo,

    generell geht es in dem Programm um Spieler eines Rollenspielsystems.
    Hierbei existieren nur zwei Sorten von Teilnehmern(Spielern),
    1. die Speiler selbst ( am Tisch sitzend, real) - SC
    2. die vom Spielleiter erdachten Gegner - NSC
    Beide Spieler-Arten sind bis auf ihre Namen identisch, alle Eigenschaften gleich,
    bsw. Waffe, verletzt, angeschlagen, usw.

    Das Programm sollte dem Spielleiter nur die Arbeit bzw. Verwaltung in einem Kampf erleichtern.

    Auf der einen Form habe ich die Eingabe der Spieler SC-Tabelle und NSC-Tabelle, beide ja "gleich",
    auf einer anderen die visualisierte Darstellung des Kampfes (als ein Zeitstrahl, da ja jede Aktion des Spielers
    Laufen, Klettern, Angreifen, Verteidigen, Zaubern usw. eine entsprechende Zeit benötigt.
    Hier wird ermittelt, welcher Spieler wieder mit seiner nächsten Aktion dran ist.

    Dafür sollte natürlich die Auswertungstabelle(alle Teilnehmer, SC + NSC) vernünftig aufgebaut sein.
    Wie oben schon geschrieben, mit zwei getrennten Eingabetabellen SC und NSC funktioniert es.

    Da die Spielertabellen gleich sind, hatte ich versucht einen anderen Ansatz zu fahren.
    Habe nur ein Problem mit der Visualisierung der Daten, wenn nur eine Tabelle vorhanden ist, d.h.,
    aus dieser Teilnehmer-Tabelle Daten für eine SC und eine NSC Tabelle rausgefiltert werden sollen.
    Ich hoffe, meine Ausführung war klar.

    Danke
    druide

    P.s.: an einem Spieltag werden mehrere Kämpfe absolviert, die Spieleranzahl ändert sich sehr sehr selten an einem Tag.
    Das ist aber nicht so mit den NSC´s. Bei jedem Kampf unterschiedliche Anzahl NSC´s.
    Der Spielleiter muß vor jedem Kampf die Tabelle aktualisieren.

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

    hallo,

    habe alles auf zwei Tabellen im Dataset umgebaut, die dann für die Weiterverarbeitung
    ge-merged werden.
    Läuft so ohne Probleme.
    Danke trotzdem an alle.

    Wenn jemand eine Idee für meinen Weg hat, Dataset nur mit einer Tabelle,
    bin ich für alles dankbar.

    druide