Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   cxGrid (https://www.delphipraxis.net/188540-cxgrid.html)

Sugar 14. Mär 2016 14:19

Delphi-Version: 7

cxGrid
 
Hallo,

ich benutze eine schon etwas ältere Version des TcxGrid (Developer Express). Ich denke aber mein Problem ist eher grundelegender Natur.

Das Durchsuchen diverser Forn und KB hat mich nicht weiter gebracht... mein Problem:

Ich lese eine Textdatei in eine Tabelle ein und stelle diese über deine DataSource in einem TcxGrid dar.Die Textdatei beinhaltet Buchhaltungsdaten und zu einer "Kopfzeile" gehören X Buchungszeilen. Die Kopfzeilen, erkennbar an einem bestimmten Buchstaben in einem Tabellenfeld, würde ich gerne optisch hervorheben.

Alle meine Versuche mit dem Event "OnCustomDrawCell" waren bisher erfolglos.

Kann mir jemand einen Hinweis geben`?

Gruß
Sugar

vagtler 14. Mär 2016 14:32

AW: cxGrid
 
http://stackoverflow.com/questions/2...of-tcxgrid-row

Wie sehen Deine Versuche denn aus bislang?

TheFrog 14. Mär 2016 14:38

AW: cxGrid
 
Ich verstehe zwar nicht wirklich, was Du erreichen möchtest, aber ich habe das individuelle Einfärben über die TableView und hier über das Event Styles.OnGetContentStyle gelöst.

Vielleicht kommst Du damit ja irgendwie weiter.

uligerhardt 14. Mär 2016 14:47

AW: cxGrid
 
Zitat:

Zitat von TheFrog (Beitrag 1332908)
Ich verstehe zwar nicht wirklich, was Du erreichen möchtest, aber ich habe das individuelle Einfärben über die TableView und hier über das Event Styles.OnGetContentStyle gelöst.

Vielleicht kommst Du damit ja irgendwie weiter.

Jepp, IMHO sind cxStyles für soetwas der beste Weg.

Sugar 14. Mär 2016 15:00

AW: cxGrid
 
Hi, erstmal danke für die Ansätze. Allerdings ist mein Problem nicht, ein Style zu entwerfen, sondern explizit den Inhalt eines Datenfeld zu ermitteln und DANN diese eine Zeile einzufärben (oder einen Style zuzuweise)

Ums mal Platt auszudrücke:

Ist in der ersten Spalte der String "XY" dann nehme Style XY

Mein Ansatz (der m.E, auch schon in anderen Prjekten funktioniert hat):
Delphi-Quellcode:
procedure THauptForm.RepDruckViewCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
  Var I:Integer;
begin

  if (AViewInfo.GridRecord.Values[0] = 'F') then
  showmessage('HUHU');
end;
Ich bekomme hier aber eine Fehlermeldung "Index out of Range'"

TheFrog 14. Mär 2016 15:05

AW: cxGrid
 
Du hast doch die Möglichkeit, über den TcxCustomGridRecord an die Werte zu gelangen:


Delphi-Quellcode:
    Col := GetColumnByFieldName('FeldABC');

    if Assigned(Col) then
    begin

      FieldValue := ARecord.Values[Col.Index];
Damit solltest Du an den Wert einer bestimmten Spalte für die aktuelle Zeile kommen.

vagtler 14. Mär 2016 15:05

AW: cxGrid
 
Der Ansatz ist in dem von mir genannten Link ausgeführt. Woran scheitert es genau?

uligerhardt 14. Mär 2016 15:16

AW: cxGrid
 
Hier ein Sample von denen, die es wissen sollten, wenn du es uns nicht glaubst: :mrgreen:
https://www.devexpress.com/Support/C...etails/T334829

Sugar 14. Mär 2016 15:27

AW: cxGrid
 
@vagtler:

hier: if RepDruckView.ViewData.Rows[i].Values[1] = 'F' then....

Hier kommt die Fehlermeldung "Invalid DataControllerOperation" ... RecordIndex out of rnage"....

vagtler 14. Mär 2016 15:50

AW: cxGrid
 
Zitat:

Zitat von Sugar (Beitrag 1332918)
[...] hier: if RepDruckView.ViewData.Rows[i].Values[1] = 'F' then.... [...]

:wall: Das war die Problemstellung, nicht die Lösung...

Kleiner Tipp: Vielleicht sollte man auch die Antworten lesen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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