![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Quickreport: Boolean mit Ja/Nein statt Wahr/Falsch anzeigen
Hallo zusammen,
hat jemand einen Tipp, wie ich in einem Quickreport in einer TQRDBText-Komponente boolesche Werte aus einer TQuery-Auswertung mit JA oder NEIN anzeigen kann (und nicht mit WAHR oder FALSCH)? In meinem Programm kann der Benutzer beliebige SQL-Auswertungen vornehmen, die verschiedene Tabellen betreffen. Im DBGrid lasse ich die Suchergebnisse durch OnDrawColumnsCell entsprechend formatieren ... aber im Quickreport will es nicht gelingen. Leider kann ich die Eigenschaft DisplayValues ja nicht ansprechen, oder? Ich bekomme es einfach nicht hin ... :wall: Vielen Dank schonmal im voraus! Christian |
AW: Quickreport: Boolean mit Ja/Nein statt Wahr/Falsch anzeigen
Notfalls in der Abfrage:
SQL-Code:
select ... case when <Wert> = True then 'ja' else 'Nein' end ...
|
AW: Quickreport: Boolean mit Ja/Nein statt Wahr/Falsch anzeigen
Gibt es auch ne andere Möglichkeit?
Ich möchte, dass es nicht der Benutzer eingeben muss ... Es soll halt so einfach wie möglich sein. |
AW: Quickreport: Boolean mit Ja/Nein statt Wahr/Falsch anzeigen
Ja, verwende ein Datenbanksystem und erstelle dort eine entsprechende StoredProcedure.
Code:
Eine andere Möglichkeit wäre, das Resultset auf Boolean-Werte zu prüfen und dann diese Spalten ausblenden und dafür "berechnete" Spalten einzufügen.
SELECT ..., JaNein( Wert ), ...
|
AW: Quickreport: Boolean mit Ja/Nein statt Wahr/Falsch anzeigen
Die einfachste Möglichkeit läuft über das OnGetText-Event.
Wenn man es richtig macht, kann man ALLE Boolean-Felder so umstellen. (einmal programmieren, so oft wie gebraucht verwenden) Jedes Feld hat ein OnGetText-Event über das man den Text, den ein Feld liefert beliebig verändern kann:
Delphi-Quellcode:
Jetzt muss man noch dafür sorgen, dass dieser Eventhandler von den Felder auch benützt wird:
procedure TForm1.BooleanJaNeinGetText(Sender: TField; var Text: string; DisplayText: Boolean);
const JaNein : array[Boolean] of string = ('Nein', 'Ja'); begin Text := JaNein[Sender.AsBoolean]; end;
Delphi-Quellcode:
Wenn man diese Mehode im Event AfterOpen aufruft
procedure TForm1.SetupJaNeinEventHandler(fields:TFields);
ver i : Integer; f : TField; begin for i:= 0 to fields.Count-1 do begin f := fields[i]; if f.FieldType=ftBoolean then f.OnGetEvent := self.BooleanJaNeinGetText; end; end;
Delphi-Quellcode:
dann ist man fertig.
procedure TForm1.Query1AfterOpen(dataset.TDataset);
begin SetupJaNeinEventHandler(dataset.Fields); end; (Code ohne Hilfe einer Delphi IDE erstellt; kleine Syntaxfehler sind moglich) |
AW: Quickreport: Boolean mit Ja/Nein statt Wahr/Falsch anzeigen
Perfekt! Eigentlich auch logisch! Dickes Dankeschön!
Nur der Vollständigkeit halber ... für alle, die das gleiche Problem hatten: Eine kleine Korrektur beim Eventhandler:
Delphi-Quellcode:
Problem gelöst! :thumb:
procedure TForm1.SetupJaNeinEventHandler(fields:TFields);
var i : Integer; f : TField; begin for i:= 0 to fields.Count-1 do begin f := fields[i]; if f.DataType=ftBoolean then f.OnGetText := self.BooleanJaNeinGetText; end; end; |
AW: Quickreport: Boolean mit Ja/Nein statt Wahr/Falsch anzeigen
etwas OT...
Oder aber den QRDBText bei Font auf Wingdings einstellen & anschließend das OnPrint Event des Feldes auf
Delphi-Quellcode:
ändern. Jetzt erhält man das Häkchen (
procedure TFormDruckenIBC.QRDBTextXXPrint(sender: TObject;
var Value: String); begin if Datenmodul.DBQuery.FieldByName('Feld').AsBoolean = True then Value := #254 else Value := #168; end; ![]() |
AW: Quickreport: Boolean mit Ja/Nein statt Wahr/Falsch anzeigen
Zitat:
Wobei man versuchen sollte den Wert des Feldes über den Parameter Sender rauszuziehen:
Delphi-Quellcode:
procedure TFormDruckenIBC.QRDBTextXXPrint(sender: TObject; var Value: String);
var f : TField; begin f := (Sender as TQRDBText).Dataset.FieldByName((Sender as TQRDBText).DataField); if (f.AsBoolean then then Value := #254 else Value := #168; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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