PDA

Ver la Versión Completa : Cambiar color de QRDBText según su valor


Voltimer
01-07-2015, 20:48:02
Estoy intentando cambiar el color de la letra de un QRDBTEXT según el valor que este tenga. Si es <10 color negro, si esta entre 10-30 amarillo, y si es >30 en rojo.
El dataset es una ZQuery que realiza una consulta sobre una tabla de una base de datos, y la propiedad DataField de este elemento es un campo de dicha consulta.

Mi duda concretamente es a la hora de establecer la condición if en el evento BeforePrint. ¿Debo de comparar haciendo referencia a ZQuery['campo'] o hay alguna manera de comparar con el valor del QRDBTEXT directamente?

Un saludo, y gracias por vuestro tiempo

ecfisa
01-07-2015, 21:37:49
Hola Voltimer, bienvenido a Club Delphi :)

Es costumbre con los que ingresan sugerirles la lectura de nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php).

Con respecto a tu consulta, creo que es mas simple comparar con el valor de la columna(campo), ejemplo:

...
var
Value: Integer;
begin
with QRDBText1 do
begin
Value := DataSet.FieldByName(DataField).AsInteger;
if Value < 10 then
Font.Color := clBlack
else if Value <= 30 then
Font.Color := clYellow
else
Font.Color := clRed;
end;
end;


Saludos :)

Voltimer
03-07-2015, 18:10:53
Todo ok. Mucho más simple comparándolo con los campos de la consulta.
Muchas gracias!!!