AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TcxGrid - Selektierte Records ändern
Thema durchsuchen
Ansicht
Themen-Optionen

TcxGrid - Selektierte Records ändern

Ein Thema von ken_jones · begonnen am 3. Feb 2006 · letzter Beitrag vom 3. Feb 2006
Antwort Antwort
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, 14: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
ken_jones

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

Re: TcxGrid - Selektierte Records ändern

  Alt 3. Feb 2006, 15:54
Da leider Zeitdruck herrscht... hab ich erstmal nen Workaround gefunden.
Über das Grid die RowID auslesen (LINKSTORE_ID) und über diese dann den Datensatz finden und ändern.
Gefällt mir nicht, aber funktioniert.

Delphi-Quellcode:
    cxGrid1DBTableView1.BeginUpdate;
    try
      For ii := 0 to cxGrid1DBTableView1.Controller.SelectedRowCount-1 do begin
        id := Integer(cxGrid1DBTableView1.DataController.GetValue(
              cxGrid1DBTableView1.Controller.SelectedRecords[ii].RecordIndex,
              cxGrid1DBTableView1.GetColumnByFieldName('LINKSTORE_ID').Index));
        With cxGrid1DBTableView1.DataController.DataSet do
          if Locate('LINKSTORE_ID', id, []) then begin
            Edit;
            FieldByName('UPPED').AsInteger := 1;
            Post;
          end;
      end;
    finally
      cxGrid1DBTableView1.EndUpdate;
    end;
Bin also immernoch offen für bessere Vorschläge
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz