Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DevExpress: Kein Post bei ImmediatePost :-( (https://www.delphipraxis.net/213791-devexpress-kein-post-bei-immediatepost.html)

haentschman 26. Sep 2023 09:01


DevExpress: Kein Post bei ImmediatePost :-(
 
Liste der Anhänge anzeigen (Anzahl: 6)
Wieder klaut mir DevExpress Zeit...:evil:

Gegeben:
* 2 View mit TcxExtLookupComboBox Repositories in einer Spalte je View
* beide Repositories haben ImmediatePost = True

Fehler:
Das eine Repositorie macht anständig einen Post nach der Auswahl, das andere nicht! Dieses geht nur in den Edit Modus. :evil:

Was habe ich kontrolliert:
1. Repositories sind bis auf die Datasource und das KeyField identisch
2. Die View sind identisch (DFM)
3. Das Repositorie, was nicht Posted, macht es auch in einer anderen View nicht. (beide Repositories vertauscht)
4. Das Repositorie, was nicht Posted, macht aber in einer Compobox ein OnEditValueChanged.

Mir gehen langsam die Ideen aus...:?

Danke


Bild1: Normalzustand
Bild2: Auswahl aus dem Repositorie (Kunde)
Bild3: Änderung Kunde
Bild4: Auswahl aus dem Repositorie (Preis)
Bild5: Änderung Preis
Bild6: Propertie

himitsu 26. Sep 2023 09:23

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
Weil das kein Post ist in die DB ist!

Im Edit wird normal erst beim Exit der Wert ins Field gespeichert.
ImmediatePost speichert das sofort, nach der Eingabe jedes Buchstaben,
ins TField des TDataSet und nicht weiter in die DB.

haentschman 26. Sep 2023 09:24

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
Was willst du mir sagen?
...bei beiden ImmediatePost = True :?

Ich mache das nicht zum ersten Mal. :?

Zitat:

ins TField des TDataSet
...da kommt es aber nicht an! Es hängt noch im "Editor". SetValue der Datasource sollte mit ImmediatePost = True aufgerufen werden...nö!
Delphi-Quellcode:
procedure TSEAMArticlePriceDatasource.SetValue(RecordHandle: TcxDataRecordHandle; ItemHandle: TcxDataItemHandle; const Value: Variant);
var
  ColumnID: Integer;
  ArticlePrice: TSEAMArticlePrice;
begin
  ArticlePrice := FArticlePriceList[Integer(RecordHandle)]; // Breakpoint
  ColumnID := GetDefaultItemID(Integer(ItemHandle));
  case ColumnID of // !Reihenfolge wie View Customize (Struktur) ! beeinträchtigt das Verschieben zur Runtime nicht
    0: ArticlePrice.SumGross := Integer(Value);
    1: ArticlePrice.DiscountGroupID := Integer(Value);
  end;
  FArticlePriceList.Changed := True;
end;

himitsu 26. Sep 2023 09:30

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
Der Name dieses Property ist einfach nur etwas "unglücklich" gewählt.

Es ist eher ein ImmediateSaveCopyIntoField
aber hat garnichts mit DataSet.Post zu tun.

https://docs.devexpress.com/VCL/cxEd....ImmediatePost


Grid|EditControl.ImmediatePost = EditControl.Value zu DataSet.Field.Value

DataSet.Post = DataSet.Field.Value zu Datenbank.FieldColumn



Wenn da wirklich in die Datenbank gespeichert wird, dann muß es an was Anderem liegen.

haentschman 26. Sep 2023 09:32

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
Ist doch alles bekannt. :roll:

Warum funktionieren 2 identische Repositories anders...:evil: Was habe ich übersehen?

PS:
Kein TField sondern Datasource an TObjectList (TObject)

himitsu 26. Sep 2023 09:48

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
Zitat:

Zitat von haentschman (Beitrag 1527371)
Was habe ich übersehen?

Ein anderes Property/Event/...?

haentschman 26. Sep 2023 10:13

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich das Repository in eine andere Spalte der gleichen View hänge, funktioniert es wie gewünscht. (Post...NICHT in die DB :zwinker:)

PS: die relevanten Properties der Spalten sind identisch... (bis auf Sortierung, Ausrichtung, DataBinding) :roll:

Nachtrag:
Jetzt verstehe ich es nicht mehr. :roll:
Wenn ich die Spalte im View verschiebe, funktioniert es (Spaltenposition 2). Nur an der Spaltenposition 1 nicht...:kotz:
Was ist da anders?

tilla 26. Sep 2023 11:51

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
Ähm, der rechte Column ist unbound (TcxGridColumn).
Also der hängt garnicht an einem Dataset.
Wüsste garnicht, dass man ein unbound Column einfach so in ein DbTableView einfügen kann.

haentschman 26. Sep 2023 12:02

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Ähm, der rechte Column ist unbound (TcxGridColumn).
richtig. :wink:
Die Column hängt nicht an einem DB View sondern an einem TcxGridTableView (findest du nicht unter den Komponenten :wink:) TcxGridTableView hängt an einer CustomDataSource (findest du nicht unter den Komponenten :wink:) an einer Objektliste. :wink:

Hintergrund: Arbeiten mit dem Grid statt mit einem Dataset mit einer Objektliste.

tilla 26. Sep 2023 12:31

AW: DevExpress: Kein Post bei ImmediatePost :-(
 
OK.
Aber warum ist colPriceNetto dann ein DBColumn?
Ist das übrigens der, der nicht "geht"?

Was mir noch auffällt. Der colPriceNetto hat zum Repository zusätzlich noch einen PropertyEditor zugewiesen.
Ich meine, entweder PropertyEditor (PropertiesClassName) ODER Repository.
Also müsste man dort die Properties entfernen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr.
Seite 1 von 2  1 2      

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