AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Fastreport Kreuztabelle Zelle einfärben
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport Kreuztabelle Zelle einfärben

Ein Thema von Kostas · begonnen am 19. Jul 2013 · letzter Beitrag vom 23. Jul 2013
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Fastreport Kreuztabelle Zelle einfärben

  Alt 19. Jul 2013, 15:38
Hallo Zusammen,

in meine Daten habe ich ein Feld für die Hintergrundfarbe der Datenzelle.
Hat jemand eine Idee wie ich im Report die Hintergrundfarbe der Zelle setzen kann?
Jede Zelle kann eine andere Farbe haben. Die Farbe kann innerhalb des Reports nicht ermittelt werden nach dem Beispiel von Highlight deshalb
übergeben ich die Farbe Direkt mit den Daten.

So funktioniert es nicht. Die Farbe wird zwar gesetzt doch es ist immer die Farbe vom letzten Datensatz.

Delphi-Quellcode:
procedure DBCross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
begin
  Memo.color := <Data."ACOLLOR">;
end;
Gruß Kostas
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Fastreport Kreuztabelle Zelle einfärben

  Alt 23. Jul 2013, 10:30
Wenn ich das richtig sehe, ist es nicht möglich beim onPaint der Zelle auf den aktiven Datensatz zuzugreifen.

Es gebe wohl eine Möglichkeit über DBCross1OnPrintCell auf die komplette Werte der CrossTab zuzugreifen, aber nur wenn die
Information auch als Spalte oder Zeile eingebunden ist. In meinem Fall wollte ich nicht die Farbe als Spalte einbauen.

Auch der Support hat sich in allen Richtung gedreht und gewendet, doch keine Lösung geliefert.

Da es keine andere Möglichkeit zu geben scheint, habe ich die Farbe mit den Zelldaten kombiniert und zur Laufzeit im Report über script
wieder zerlegt. Das funktioniert einwandfrei und ist schnell genug.

Delphi-Quellcode:
procedure DBCross1OnPrintCell(Memo: TfrxMemoView; RowIndex, ColumnIndex, CellIndex: Integer; RowValues, ColumnValues, Value: Variant);
var aColor:TColor;
    str:String;
    p:integer;
  
begin
  //Cell value combined Color and Data Format: Color/Data = 32768/3,56
  str := VarToStr(Value);
  if str= 'then
  begin
    Memo.text := '';
    Memo.Color := clNone;
  end else
  begin
    p := pos('/',str); //get delimiter
    aColor := StrToInt(copy(str,1,p-1)); //extract color
    Memo.text := copy(str,p+1,length(str)); //extract and set data
    Memo.color := aColor; //set color
  end;
end;

Gruß Kostas
  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 23:38 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