Hallo liebe Leuts,
ich habe eine Anwendung mit einem Dataset, das 2 verknüpfte Tabellen enthält. Es geht dabei um die Protokollierung der Prüfung von Geräten.
Die Tbl_Geräte enthält eine Auflistung aller vorhandenen Geräte mit ID, Bezeichnung, Aufnahmedatum usw.
Die Tbl_Prüfungen enthält u.a. das Prüfdatum, die GeräteID, den Namen des Prüfers und das Prüfergebnis (OK/nichtOK)
Die Darstellung der Views in den DGVs funzt soweit, was Geräteerfassung, Prüfhistorie der Einzelgeräte und die Darstellung aller Prüfungen angeht.
Jetzt möchte ich aber zu jedem Gerät die jeweils letzte Prüfung in ein DGV schreiben. Die Filterfunktion der Bindingsource bekommt das aber nicht hin. Deswegen habe ich mit Linq to Dataset die Prüfungen nach Geräten und Datum sortiert und anschließend nach Geräten gruppiert. nun kann ich jeweils den 1. Eintrag der Liste ausgeben.
Spoiler anzeigen
Nun möchte ich diese Collection als Tabelle an ein DGV ausgeben. Dazu schreibe ich also die Collection in eine Bindingsource (im Designer auf die Form gezogen und binde des an das DGV.
Das mit der Collection is mir aber irgendwie komisch, weils keine richtige Datarow is. Ich hätte ja viel lieber mit dem Linq-Ausdruck direkt die Datarows aus der Prüfungstabelle gezogen (Das hattich schon passend). Dann habich eine Tabelle vom Typ der Prüfungstabelle erstellt (Dim Tab as DS_Geräte.Tbl_Prüfungen), sie dem DGV als Datasource zugeordnet(damit ich die Columns stylen kann) und wollte der dann die gewonnenen Zeilen Adden. Da hieß es denn, dass diese Zeilen bereits zu einer anneren Tabelle gehören. So mußtich dan auf den oben geschilderten Plan umsteigen.
Ich bin sicher, dasses da ne einfache Lösung gibt, die Zeilen aus dem Linq direkt in eine passende Tabelle zu schieben, aba wie??
Ich hoffe, ich konnte das verständlich rüberbringen...
ich habe eine Anwendung mit einem Dataset, das 2 verknüpfte Tabellen enthält. Es geht dabei um die Protokollierung der Prüfung von Geräten.
Die Tbl_Geräte enthält eine Auflistung aller vorhandenen Geräte mit ID, Bezeichnung, Aufnahmedatum usw.
Die Tbl_Prüfungen enthält u.a. das Prüfdatum, die GeräteID, den Namen des Prüfers und das Prüfergebnis (OK/nichtOK)
Die Darstellung der Views in den DGVs funzt soweit, was Geräteerfassung, Prüfhistorie der Einzelgeräte und die Darstellung aller Prüfungen angeht.
Jetzt möchte ich aber zu jedem Gerät die jeweils letzte Prüfung in ein DGV schreiben. Die Filterfunktion der Bindingsource bekommt das aber nicht hin. Deswegen habe ich mit Linq to Dataset die Prüfungen nach Geräten und Datum sortiert und anschließend nach Geräten gruppiert. nun kann ich jeweils den 1. Eintrag der Liste ausgeben.
VB.NET-Quellcode
- Private Function GetLetztePrüfung() As Collection
- Dim gruppiertePrüfungen = From Prüfung In DS_Geräte.Tbl_Prüfungen _
- Select Geräte_ID = Prüfung.ID_Ger, _
- Prüfdatum = Prüfung.Datum, _
- Prüfer = Prüfung.ID_Prüfer, _
- Status = Prüfung.OK
- Order By Geräte_ID, Prüfdatum Descending _
- Group By Geräte_ID Into Prüfungen = Group
- GetLetztePrüfung = New Collection
- For Each gruppe In gruppiertePrüfungen
- GetLetztePrüfung.Add(gruppe.Prüfungen(0))
- Next
- End Function
Nun möchte ich diese Collection als Tabelle an ein DGV ausgeben. Dazu schreibe ich also die Collection in eine Bindingsource (im Designer auf die Form gezogen und binde des an das DGV.
Das mit der Collection is mir aber irgendwie komisch, weils keine richtige Datarow is. Ich hätte ja viel lieber mit dem Linq-Ausdruck direkt die Datarows aus der Prüfungstabelle gezogen (Das hattich schon passend). Dann habich eine Tabelle vom Typ der Prüfungstabelle erstellt (Dim Tab as DS_Geräte.Tbl_Prüfungen), sie dem DGV als Datasource zugeordnet(damit ich die Columns stylen kann) und wollte der dann die gewonnenen Zeilen Adden. Da hieß es denn, dass diese Zeilen bereits zu einer anneren Tabelle gehören. So mußtich dan auf den oben geschilderten Plan umsteigen.
Ich bin sicher, dasses da ne einfache Lösung gibt, die Zeilen aus dem Linq direkt in eine passende Tabelle zu schieben, aba wie??
Ich hoffe, ich konnte das verständlich rüberbringen...
Seit 26.Mai 2012 Oppa!