Formular mit berechneten Feldern und Abhängigkeiten.

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Vatter.

    Formular mit berechneten Feldern und Abhängigkeiten.

    Hallo,

    ich bin dabei ein Formular zu erstellen, mit NumericUpDown Feldern. Nun suche ich nach einer Möglichkeit, wenn ich eines dieser Felder ändere, dass alle anderen berechneten Felder auch aktualisiert werden.

    Gibt es eine Möglichkeit vom Formular aus?

    Oder welche Möglichkeiten gibt es noch, Parametereingaben im Forumlar zu erstellen?



    Danke.

    Steffen
    Moin,

    würde grundsätzlich gehen.

    Aber ich würde er gerne nur als Formular umsetzen. Es sind viele Textfelder enthalten, und NumericUpDown Felder - mit denen man die Prämissen ändern kann. Diese Änderungen sollen sich dann auf einige Textfelder auswirken. Gibt es nicht ein Change, dass bei Änderung eines Parameters alles ändert?

    Gruß

    Steffen
    "ein Change" gibt es nicht - du sagst ja selbst, dasses sich um viele Changes handelt.
    Die Changes kannst du natürlich alle so auswerten, dass jeder davon eine KernMethode aufruft, die das Gesamtsystem neu berechnet.

    Wenn du Wert darauf legst, es dir schwer zu machen, nichts grundsätzlich neues zu lernen, und unübersichtlichen und nur beschränkt leistungsfähigen Code zu schreiben, dann ist das der richtige Weg für dich ;).

    Vielleicht erzählst du mal, was du eiglich machen willst - u.U. kann man schon Probleme vorhersehen, die du ohne datenbänkerisches Denken nicht wirst lösen können.

    Steffen114 schrieb:

    Es sind viele Textfelder enthalten, und NumericUpDown Felder - mit denen man die Prämissen ändern kann

    Ein Screenshot wäre hilfreich gewesen.

    Steffen114 schrieb:

    Gibt es nicht ein Change, dass bei Änderung eines Parameters alles ändert?

    Ein einzelnes Control hat natürlich Events die Änderungen signalisieren, z.B. das TextChanged Event für inhaltliche Änderungen. Aber eine Art kumulatives Ereignis auf Form-Ebene gibt es nicht. Aber Du kannst es Dir ziemlich leicht selber programmieren: abonniere bei jedem Control welches Neuberechnungen auslösen soll das TextChanged Ereignis ( AddHandler-Methode ) und löse ein eigenes Event Neuberechnung aus. Je nachdem wieviele Controls die Neuberechnung auslösen sollen, kann dazu auch die Controls-Collection der Form durchlaufen werden.

    Steffen114 schrieb:

    Diese Änderungen sollen sich dann auf einige Textfelder auswirken.

    Statt eines eigenen Events kannst Du natürlich auch bei der Methode 'Neuberechnung' manuell Handles-Statements auf alle TextChanged Ereignisse setzen, die eine Neuberechnung auslösen sollen.
    Moinsen,



    sorry das ich mich erst jetzt wieder melde. Hatte zwischenzeitlich andere Sachen um die Ohren.

    Anbei mal ein Screenshot vom Entwurf. (Es fehlen noch viele Felder)


    Gibt es eine einfache Methode? Die von euch angebotene verstehe ich irgendwie nicht.



    LG Steffen
    Bilder
    • 24.02.jpg

      47,73 kB, 676×460, 133 mal angesehen
    dein Screenshot zeigt eindeutig eine Tabelle. Wenn man wüsste, was konkret programmiert werden soll, könnteman das mit dem in post#2 angedeutetem Ansatz vmtl. in 1/2h soweit hinkriegen, dasses soweit läuft, dasses den Anforderungen schomal funktional entspricht.

    Steffen114 schrieb:

    Gibt es eine einfache Methode?
    Als Programmierer zieht man grundsätzlich immer nur die einfachsten Methoden in Betracht, die man kennt.

    Nur was kann man auf

    Steffen114 schrieb:

    Die von euch angebotene verstehe ich irgendwie nicht.
    noch hilfreiches Antworten?

    Also eine Frage, die den Begriff "irgendwie" enthält, hat prinzipiell einfach keine Chance, eine konkret hilfreiche Antwort zu bekommen.
    Wenn man davon ausgeht, dass es noch mehr Zeilen werden (oder auch Spalten) und du diese Werte sicherlich auch irgendwann speichern möchtest (oder gibst du die jedesmal alle neu ein?), dann gibt es sogar sehr einfache Möglichkeiten:
    Lies dir mal die Signatur von Erfinder des Rades durch und schau dir die Links dort an. da gibs auch was ohne Datenbank. Stichwort typisiertes Dataset. Dabei speicherst du lediglich die eingetragenen Werte und hältst berechnete Spalten in den Datatables bereit (Stichwort DataExpressions). Das Speichern geschieht in 1 Zeile Code als XML (aber ein nach des annere).
    Wenn du son einfaches Tut mal durchhast, wirst du erleichtert feststellen, dass es damit um vieles einfacher ist, als dein Ansatz bis zu der Stelle, wo du jetzt hängst. Das Berechnen geschieht dann übrigens immer automatisch bei jedem neuen Eintrag, und des ohne eine Zeile Code.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup: