Einzelnen Beitrag anzeigen

ken_jones

Registriert seit: 16. Mai 2005
Ort: Luzern
154 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

TcxGrid - Selektierte Records ändern

  Alt 3. Feb 2006, 15:51
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBO
Manchmal stolpert man über das einfachste...
Ich möchte lediglich diejenigen Records in der Datenbank ändern (ein SmallInt auf 1 setzen), welche im Developer Express TcxGrid selektiert sind.

Folgender Code funktioniert super, aber er ist nur für ungebundene Felder, soll heissen, im Grid wird dann zwar der neue Wert angezeigt, in der DB jedoch nicht gespeichert. So werden diese Werte dann auch wieder gelöscht, wenn man ein Update (Refresh) macht.

Delphi-Quellcode:
    cxGrid1DBTableView1.BeginUpdate;
    try
      For ii := 0 to cxGrid1DBTableView1.Controller.SelectedRowCount-1 do begin
        cxGrid1DBTableView1.DataController.SetValue(
          cxGrid1DBTableView1.Controller.SelectedRecords[ii].RecordIndex,
          cxGrid1DBTableView1.GetColumnByFieldName('UPPED').Index],
          1);
      end;
    finally
      cxGrid1DBTableView1.EndUpdate;
    end;
Es gibt auch noch die Möglichkeit über z.B. cxGrid1DBTableView1.DataController.GetSelectedBook mark eine Bookmark zu bekommen, damit wäre auch gedient, jedoch funktioniert dies nur, wenn das Grid im GridMode ist. Leider funktioniert dann die automatische Sortierung, Filterung und Gruppierung nicht mehr.

Es muss doch eine simple Lösung geben, wie man anhand der selektierten Records im Grid auf den Datensatz kommt um diesen Ändern zu können. Oder vielleicht gibts auch ne Variante über das Grid selbst den Datensatz zu ändern. Das Handbuch schweigt sich leider darüber aus...
  Mit Zitat antworten Zitat