Computerwissenschaften

Delphi DBGrid MultiSelect (Erläuterung und Beispiel)

Delphis DBGrid ist eine der am häufigsten verwendeten DB-fähigen Komponenten in datenbankbezogenen Anwendungen. Der Hauptzweck besteht darin, den Benutzern Ihrer Anwendung die Möglichkeit zu geben, Datensätze aus einem Dataset in einem tabellarischen Raster zu bearbeiten.

Eine der weniger bekannten Funktionen der DBGrid-Komponente besteht darin, dass sie so eingestellt werden kann, dass mehrere Zeilen ausgewählt werden können. Dies bedeutet, dass Ihre Benutzer mehrere Datensätze (Zeilen) aus dem mit dem Raster verbundenen Datensatz auswählen können.

 

Mehrfachauswahl zulassen

Um die Mehrfachauswahl zu aktivieren, müssen Sie nur das dgMultiSelect- Element in der Options- Eigenschaft auf „True“ setzen . Wenn dgMultiSelect „True“ ist, können Benutzer mithilfe der folgenden Techniken mehrere Zeilen in einem Raster auswählen :

  • Strg + Mausklick
  • Umschalt + Pfeiltasten

Die ausgewählten Zeilen / Datensätze werden als Lesezeichen dargestellt und in der SelectedRows- Eigenschaft des Rasters gespeichert .

Beachten Sie, dass SelectedRows nur nützlich ist, wenn die Options- Eigenschaft sowohl für dgMultiSelect als auch für dgRowSelect auf „True“ gesetzt ist . Wenn Sie dagegen dgRowSelect verwenden (wenn einzelne Zellen nicht ausgewählt werden können), kann der Benutzer Datensätze nicht direkt über das Raster und bearbeiten, und dgEditing wird automatisch auf „False“ gesetzt.

Die SelectedRows- Eigenschaft ist ein Objekt vom Typ TBookmarkList . Wir können die SelectedRows- Eigenschaft beispielsweise verwenden, um:

  • Holen Sie sich die Anzahl der ausgewählten Zeilen
  • Deaktivieren Sie die Auswahl (deaktivieren)
  • Löschen Sie alle ausgewählten Datensätze
  • Überprüfen Sie, ob ein bestimmter Datensatz ausgewählt ist

Um dgMultiSelect auf „True“ zu setzen, können Sie entweder den Objektinspektor zur Entwurfszeit verwenden oder zur Laufzeit einen Befehl wie diesen verwenden:

DBGrid1.Options:=DBGrid1.Options + [dgMultiSelect];

 

Beispiel für dgMultiSelect

Eine gute Situation für die Verwendung von dgMultiSelect kann sein, wenn Sie eine Option zum Auswählen zufälliger Datensätze benötigen oder wenn Sie die Summe der Werte der ausgewählten Felder benötigen.

Im folgenden Beispiel werden ADO-Komponenten ( AdoQuery, verbunden mit ADOConnection und DBGrid, verbunden mit AdoQuery über DataSource ) verwendet, um die Datensätze aus einer Datenbanktabelle in einer DBGrid-Komponente anzuzeigen.

Der Code verwendet eine Mehrfachauswahl, um die Summe der Werte im Feld „Größe“ zu erhalten. Verwenden Sie diesen Beispielcode, wenn Sie das gesamte DBGrid auswählen möchten :

Prozedur TForm1.btnDoSumClick (Absender: TObject); 
var
 i: Integer; 
Summe: Single; 
beginif DBGrid1.SelectedRows.Count> 0 thenbegin
 sum:=0; 
 mit DBGrid1.DataSource.DataSet dobeginfor i:=0 bis DBGrid1.SelectedRows.Count-1 dobegin
 GotoBookmark (Zeiger (DBGrid1.SelectedRows.Items [i])); 
sum:=summe + AdoQuery1.FieldByName ('Größe'). AsFloat; 
 Ende ; 
 Ende ; 
edSizeSum.Text:=FloatToStr (Summe); 
 Ende 
Ende ;

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.