![]() |
Re: DevExpress cxGridView Daten auslesen
Hallo alzaimer,
das ganze soll ein Datenerfassungsprogramm werden. Die Automatik soll nur die Erfassungarbeit vereinfachen und ein indvidueller Text sollte noch möglich sein. Gruß Alfred |
Re: DevExpress cxGridView Daten auslesen
Hallo,
das GridView ist mit einem "DataSet" verbunden. Dort gibt es "BeforePost". An dieser Stelle kann alles mögliche abgefrage/gesetzt werden. Ggf. kann mit Locate (sehr langsam) oder einem Query (besser) gearbeitet werden umd Referenzwerte zu holen. Wichtig ist, dass "ForceRefresh" im DataSet aktiv ist.
Delphi-Quellcode:
Viele Grüße :-)
procedure TFM_Test_Form.dxMemData1BeforePost(DataSet: TDataSet);
begin if DataSet.FieldByName('Nummer').AsInteger > 1000 then DataSet.FieldByName('Text').AsString := 'OK' else DataSet.FieldByName('Text').AsString := 'Nicht OK' ; end; |
Re: DevExpress cxGridView Daten auslesen
Hi,
es gibt IMHO verschiedene einfache Wege, an den Wert zu kommen. Mal eine Möglichkeit GridView.OnEditValueChanged...
Delphi-Quellcode:
Das ist nur ein Ansatz. Du musst AItem natürlich noch verifizieren oder halt gleich die Evenst von AItem setzen anstatt von GridView.
procedure TFilterByCodeDemoMainForm.tvCustomersEditValueChanged(Sender:
TcxCustomGridTableView; AItem: TcxCustomGridTableItem); Var v: Variant; begin // Sender.Controller.EditingController.Edit liefert aktuellen Editor // neuer Wert steht immer in EditingValue v := Sender.Controller.EditingController.Edit.EditingValue; // v hat eigegebenen Wert. end; Das Setzen der neuen Werte kann z.B. über die Columns (GridView.GetColumnByFieldName('FeldName')) erfolgen. Vielleich hilft es ja weiter. Cu, Frank |
Re: DevExpress cxGridView Daten auslesen
Zitat:
|
Re: DevExpress cxGridView Daten auslesen
@Frank
So funktioniert das super: :thumb:
Delphi-Quellcode:
Hinweis: der 2. EditValue ist notwendig, weil wohl durch den ersten Befehl der aufrufende Editor geschlossen wird, ohne dass der eingegebene Wert abgespeichert wird.
procedure TForm1.cxGrid1DBTableView1GKTOPropertiesEditValueChanged(Sender: TObject);
begin edit3 := cxGrid1DbTableView1.Controller.EditingController.Edit.EditingValue; if edit3 = 4910 then begin cxGrid1DBTableView1.GetColumnByFieldName('BUCHTEXT').EditValue := 'Porto'; cxGrid1DBTableView1.GetColumnByFieldName('GKTO').EditValue := edit3; end end; @alzaimer Ich werde mir das mit dem Lookup, wegen der zu erwartenden größeren Anzahl an Abfragen, noch anschauen. Gruß Alfred |
Re: DevExpress cxGridView Daten auslesen
Hi,
man sollte IMHO:
Delphi-Quellcode:
verwenden (statt der erneuten Zuweisung).
cxGrid1DbTableView1.Controller.EditingController.Edit.PostEditValue;
Frank |
Re: DevExpress cxGridView Daten auslesen
Zitat:
Z.B. Edit-Modus programmatisch abwürgen:
Delphi-Quellcode:
TableView.BeginUpdate;
try TableView.DataController.Cancel; // <= hier einer TableView.Controller.EditingController.HideEdit(False); // <= hier noch zwei finally TableView.EndUpdate; end; |
Re: DevExpress cxGridView Daten auslesen
@Frank,
it works. :) Wie kommt man denn an das ganze Wissen über diese Editoren? @Uli dann mußt Du halt ********.cancel; machen :mrgreen: Gruß Alfred |
Re: DevExpress cxGridView Daten auslesen
Zitat:
|
Re: DevExpress cxGridView Daten auslesen
Zitat:
![]() Ich nutze die Kompo' s halt schon ein paar Jahre. Freut mich, dass ich helfen konnte. Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz