Hi,
ich steh gerade mal da wie der Ochs vorm Berg. Und das Problem kann doch gar nicht so schwer sein.
Ich hab da ein Dataset mit drei Tabellen und zwei 1:n Relationen, so sieht das aus:
Auf meiner Form habe ich drei DGVs, die das abbilden:
Zwei davon sind auch synchronisiert, also wenn ich links klicke, erscheinen in der Mitte die zugehörigen Datensätze:
Das Dritte rechts ist aber autark, also was die Klickerei angeht. Ich würde das aber gern so haben, dass, wenn man links was klickt, dann die entsprechenden Datensätze rechts angezeigt werden. Mit einem Filter auf dem Click-Event im mittleren DGV geht das ziemlich einfach. Aber da ist die Bedingung auch "einfach". Aber mit Klick im linken DGV wäre der Filter für Rechts eine Liste von Id_Melder.
-> Wie baut man die (Liste) aus der BindingSource auf und wie wendet man das dann als Filter an?
Aber jetzt hab ich ein spannenderes Anliegen. Ich möchte aus der dem DGV rechts zugrunde liegenden Tabelle zwei Spalten in dem DGV in der Mitte anzeigen, nämlich Nachname und Vorname.
Mit berechneten Spalten im DGV bekommt man das wohl hin
[Edit 170924]Ja klar, ganz einfach mit einer ComboColumn
Kleiner Exkurs: Beim Tippen dieser Worte kommt mir eine Frage in den Sinn. Warum eigentlich nicht mit ColumnExpressions arbeiten? Wie ist das denn eigentlich mit dem Speicherplatz? Habe ich dann die ganzen Namen der Melder doppelt und dreifach im Speicher oder wird das nur referenziert?
Wieder zurück zum Problem. Ich möchte nicht einfach nur den Nachnamen im mittleren DGV, sondern den nur, wenn das Feld kNachname leer ist, sonst kNachname (siehe DataSet). Es sollte also eine Formel oder besser eine Funktion hinterlegt werden können. (Erklärung: Die Namen werden vom Benutzer im Feld kNachname korrigiert. Die Korrekturen werden beim erneuten Import beibehalten.)
[Edit 170924]Auch hier habe ich nun einfach auf die ColumnExpressions zurückgegriffen.
Yo, klappt soweit alles. Wäre trotzdem schön, wenn die Frage oben noch geklärt würde und mich jemand bzgl. des Speicherbedarfs von berechneten Spalten aufklären könnte
ich steh gerade mal da wie der Ochs vorm Berg. Und das Problem kann doch gar nicht so schwer sein.
Ich hab da ein Dataset mit drei Tabellen und zwei 1:n Relationen, so sieht das aus:
Auf meiner Form habe ich drei DGVs, die das abbilden:
Zwei davon sind auch synchronisiert, also wenn ich links klicke, erscheinen in der Mitte die zugehörigen Datensätze:
Das Dritte rechts ist aber autark, also was die Klickerei angeht. Ich würde das aber gern so haben, dass, wenn man links was klickt, dann die entsprechenden Datensätze rechts angezeigt werden. Mit einem Filter auf dem Click-Event im mittleren DGV geht das ziemlich einfach. Aber da ist die Bedingung auch "einfach". Aber mit Klick im linken DGV wäre der Filter für Rechts eine Liste von Id_Melder.
-> Wie baut man die (Liste) aus der BindingSource auf und wie wendet man das dann als Filter an?
Aber jetzt hab ich ein spannenderes Anliegen. Ich möchte aus der dem DGV rechts zugrunde liegenden Tabelle zwei Spalten in dem DGV in der Mitte anzeigen, nämlich Nachname und Vorname.
Mit berechneten Spalten im DGV bekommt man das wohl hin
Melder.Expression= Parent(Melder_ICa).kMelder
, aber geht es auch on thy fly im DGV? [Edit 170924]Ja klar, ganz einfach mit einer ComboColumn
Kleiner Exkurs: Beim Tippen dieser Worte kommt mir eine Frage in den Sinn. Warum eigentlich nicht mit ColumnExpressions arbeiten? Wie ist das denn eigentlich mit dem Speicherplatz? Habe ich dann die ganzen Namen der Melder doppelt und dreifach im Speicher oder wird das nur referenziert?
Wieder zurück zum Problem. Ich möchte nicht einfach nur den Nachnamen im mittleren DGV, sondern den nur, wenn das Feld kNachname leer ist, sonst kNachname (siehe DataSet). Es sollte also eine Formel oder besser eine Funktion hinterlegt werden können. (Erklärung: Die Namen werden vom Benutzer im Feld kNachname korrigiert. Die Korrekturen werden beim erneuten Import beibehalten.)
[Edit 170924]Auch hier habe ich nun einfach auf die ColumnExpressions zurückgegriffen.
Typ + ': '+ iif(kNachname='',Nachname,kNachname) +', '+ iif(kVorname='',Vorname,kVorname) +' ('+ iif(kOrt='',Ort,kOrt)+')'
Die Felder kNachname, kVorname dürfen nicht <DBNull> sein, der Standard-Nullwert ist String.Empty. Damit klappt der iff-Vergelcih. Sonst müsste man hier wohl mit verschachtelten ifnull()
arbeiten.Yo, klappt soweit alles. Wäre trotzdem schön, wenn die Frage oben noch geklärt würde und mich jemand bzgl. des Speicherbedarfs von berechneten Spalten aufklären könnte
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „OliverSte“ ()