Delphi-PRAXiS

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/)
-   -   FastReport: Bedingte Formatierung (https://www.delphipraxis.net/164043-fastreport-bedingte-formatierung.html)

scrat1979 26. Okt 2011 20:57

FastReport: Bedingte Formatierung
 
Nun zu meinem zweiten und vorerst letzen Problem mit FastReport. Diesmal geht es um die bedingte Formatierung der Datensätze.
Folgende Tabelle ist gegeben:

Datum (Date) | Feiertag (Boolean) | Dienst1 | Dienst2 | Dienst3

Im Report (z.B.)
26. Oktober 2011 Meier Schulz Schmidt

Die Darstellung im Report erfolgt tabellarisch (Dienstplan, s.o.), wobei die einzelne Zeilen folgendermaßen hervorgehoben werden sollen:

1. Zeilen / Daten mit Wochenenden (Fr-So) sollen fett hervorgeben werden. - KEIN PROBLEM mittels der bedingten Formatierung im Report-
Designer. Das funktioniert auch tadellos.
2. Nun sollen aber Zeilen an Feiertagen (also wenn Feiertag = True bzw. 1) zusätzlich ROT dargestellt werden. - ????

Das Problem ist, dass verschienden begingte Formatierungen im Reportdesigner (so wie ich es gesehen habe) nicht möglich sind. Gibt es z.B. ein Ereignis, in welchem man die Daten formatieren kann?

Danke für Eure Mithilfe!

Michael

Bummi 26. Okt 2011 21:52

AW: FastReport: Bedingte Formatierung
 
OnBeforePrint in den Events der Objekte oder Bänder

scrat1979 26. Okt 2011 22:26

AW: FastReport: Bedingte Formatierung
 
Tja, da muss ich wohl doch auf die Standard-Edition upgraden, in der Basic-Edition gibt es kein Event-Handler - das ist schlecht :(

Kann ich dann im Eventhandler direkt auf eine Feldvariable (hier Feiertag[boolean]) zugreifen und den Wert abfragen?

DANKE!

Bummi 26. Okt 2011 22:33

AW: FastReport: Bedingte Formatierung
 
ja, die Syntax ist etwas krude, aber es geht fast alles

scrat1979 26. Okt 2011 22:59

AW: FastReport: Bedingte Formatierung
 
Alles klar. Ich denke, ich werde den Thread die Tage fortsetzen (müssen) :)

Furtbichler 27. Okt 2011 07:10

AW: FastReport: Bedingte Formatierung
 
Zitat:

Zitat von Bummi (Beitrag 1132737)
ja, die Syntax ist etwas krude, aber es geht fast alles

Der Designer hilft Dir aber per Drag&Drop-Möglichkeit (Feld aus der Datenansicht einfach per D&D in den Code ziehen)

ibp 27. Okt 2011 08:01

AW: FastReport: Bedingte Formatierung
 
meines Erachtens kann man aber anhand einer Bedingung <DataSet."Feiertag"> = True innerhalb eines Memos auch die Farbe steuern, siehe unter Memo > Kartenreiter Highlight....

oder im Memo könnte das gehen...

[IIF(<DataSet."Feiertag">=true,<font color="#FF1111">,<font color="#FF0000">)]<DataSet."Dienst1"></font color>

scrat1979 27. Okt 2011 09:13

AW: FastReport: Bedingte Formatierung
 
Zitat:

Zitat von ibp (Beitrag 1132763)
meines Erachtens kann man aber anhand einer Bedingung <DataSet."Feiertag"> = True innerhalb eines Memos auch die Farbe steuern, siehe unter Memo > Kartenreiter Highlight....

oder im Memo könnte das gehen...

[IIF(<DataSet."Feiertag">=true,<font color="#FF1111">,<font color="#FF0000">)]<DataSet."Dienst1"></font color>

Jupp, das geht und so habe ich das ja auch gemacht. Allerdings möchte ich Wochenenden anders Formatieren und mehrere Formate unterstützt dieses Vorgehen leider nicht.

Grüsse,
Michael

ibp 27. Okt 2011 09:24

AW: FastReport: Bedingte Formatierung
 
wie anders formatieren? in deinem ersten post sprichst du von zusätzlich rot! :gruebel:

Kannst du es aufzeichnen oder besser erklären? Was genau geht denn nicht?

scrat1979 27. Okt 2011 09:39

AW: FastReport: Bedingte Formatierung
 
Zitat:

Zitat von ibp (Beitrag 1132801)
wie anders formatieren? in deinem ersten post sprichst du von zusätzlich rot! :gruebel:

Kannst du es aufzeichnen oder besser erklären? Was genau geht denn nicht?

Ich bin bezüglich der Formatierung von Wochenenden so vorgegangen wie Du geschrieben hast (also Highlighting in den Objekteigenschaften). Nur kann ich da keine 2. Bedingung zusätzlich eingeben um Feiertage zusätzlich rot zu markieren. Das wird vom Highlighting nicht unterstützt.

ibp 27. Okt 2011 09:48

AW: FastReport: Bedingte Formatierung
 
Zitat:

Zitat von scrat1979 (Beitrag 1132807)
Zitat:

Zitat von ibp (Beitrag 1132801)
wie anders formatieren? in deinem ersten post sprichst du von zusätzlich rot! :gruebel:

Kannst du es aufzeichnen oder besser erklären? Was genau geht denn nicht?

Ich bin bezüglich der Formatierung von Wochenenden so vorgegangen wie Du geschrieben hast (also Highlighting in den Objekteigenschaften). Nur kann ich da keine 2. Bedingung zusätzlich eingeben um Feiertage zusätzlich rot zu markieren. Das wird vom Highlighting nicht unterstützt.

und das zweite Beispiel was ich gegeben habe? Das lässt sich doch ausbauen!
Code:
[IIF(<DataSet."Feiertag">=true,<font color="#FF1111">,<font color="#FF0000">)]<DataSet."Dienst1"></font color>

Bummi 27. Okt 2011 10:02

AW: FastReport: Bedingte Formatierung
 
Du könntest auch ein berechnetes Feld für die Farbe im Dataset direkt mitführen ....

scrat1979 27. Okt 2011 10:14

AW: FastReport: Bedingte Formatierung
 
Ah, jetzt habe ich verstanden. Werde ich versuchen. Auch die Sache mit der Farbe im DataSet ist eine Überlegung wert! Dank Euch!

scrat1979 27. Okt 2011 23:48

AW: FastReport: Bedingte Formatierung
 
Das gibt es doch nicht...

Habe nun folgenden Code in das Script eingefügt:

Delphi-Quellcode:
 if <frxDBDataset1."FEIERTAG"> = 1 Then
   frxDBDataset1DATUM.Font.Color := clRed
 else                          
   frxDBDataset1DATUM.Font.Color := clBlack;
In meiner Testtabelle (31 Datensätze, Feiertag=1 am 3., 8. und 25.) wird jedoch nur das 1. Vorkommen (also der 3.) rot gefärbt, alle anderen Tage (einschließlich des 8. und 25. [Feiertag=1 DEFINITV gesetzt!!!]) sind schwarz. Habe auch schon alle möglichen Events in verschiedenen Objekten versucht (nach googlen und Herausfinden, welche Events wann ausgelöst werden) - das Ergebnis ist das selbe. Kann mir jemand sagen, was ich hier falsch mache? Ich verzweifel gerade etwas zur fortgeschrittener Stunde :-(

//EDIT: Habe gerade herausgefunden, dass der "Fehler"(?) nur in der Vorschau im Report-Designer (Design-Zeit) auftritt und im laufenden Programm beim Export als PDF-Datei eine korrekte Einfärbung aller drei Tage erfolgt. Nehme ich statt der Schriftfarbe den FontStyle, dann wird alles - auch in der Vorschau - korrekt angezeigt. Ist das bekannt oder mache ich dennoch einen (Denk)fehler=

Grüsse,
Michael


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