PDA

Ver la Versión Completa : Imprimir en diferentes colores


luxus
30-09-2007, 21:06:04
Hola a todos,
Tengo una pequeña duda a ver si me podeis echar una mano.
Estoy creando una aplicación en el que se quiere ver el extracto de movimientos de una cuenta corriente.
Tengo el query implementado y en un DBGrid muestro la fecha,el concepto, el importe, el saldo y el tipo de movimiento (entrada/ingreso o salida/reintegro).

Mi duda viene cuando quiero imprimir dicho extracto de cuentas y dependiendo del tipo de movimiento se ha de imprimir en un color u otro. A continuación os muestro el codigo fuente:

FMovimientosCuentas.ADOQuery1.First;
while not(FMovimientosCuentas.ADOQuery1.Eof) do
begin
if (FMovimientosCuentas.ADOQuery1.FieldValues['movimiento']='ENTRADA') then
color:='clBlue'
else
color:='clRed';
movimiento:=FMovimientosCuentas.ADOQuery1.FieldValues['movimiento'];
linea:=FMovimientosCuentas.ADOQuery1.FieldValues['codigo'];
FImpresionExtractoCuentas.QRMemo1.Lines.Add(linea);
FImpresionExtractoCuentas.QRMemo1.Font.Color:=StringToColor(color);
linea:=FMovimientosCuentas.ADOQuery1.FieldValues['fecha'];
FImpresionExtractoCuentas.QRMemo2.Lines.Add(linea);
FImpresionExtractoCuentas.QRMemo2.Font.Color:=StringToColor(color);
linea:=FMovimientosCuentas.ADOQuery1.FieldValues['concepto'];
FImpresionExtractoCuentas.QRMemo3.Lines.Add(linea);
FImpresionExtractoCuentas.QRMemo3.Font.Color:=StringToColor(color);
linea:=FMovimientosCuentas.ADOQuery1.FieldValues['importe'];
FImpresionExtractoCuentas.QRMemo4.Lines.Add(linea);
FImpresionExtractoCuentas.QRMemo4.Font.Color:=StringToColor(color);
linea:=FMovimientosCuentas.ADOQuery1.FieldValues['saldo'];
FImpresionExtractoCuentas.QRMemo5.Lines.Add(linea);
FImpresionExtractoCuentas.QRMemo5.Font.Color:=StringToColor(color);
FMovimientosCuentas.ADOQuery1.Next;
end;

¿Me podeis decir donde tengo el fallo?
Gracias y un saludo

marcoszorrilla
30-09-2007, 21:14:14
El problema que veo es que lo guardas en un Memo, y que yo conozca el Memo tiene un color pero para todo el texto no para cada línea.

Si por el contrario lo quisieras imprimir por ejemplo con QuickReport, entonces le correspondería a éste resolver el tema del color, entonces podrías en el evento OnPrint de los campos susceptibles de cambiar de color, evaluar su contenido y en virtud del mismo atribuirle un color u otro, este evento actúa por cada línea (Registro), por lo que puedes tener colores distintos para cada línea.

Un Saludo.