op 10-03-14 17:28, Jesus Reyes schreef:
El Lunes, 10 de marzo, 2014 9:10:39, Koenraad Lelong escribió:
Hi,
Have you tried
procedure TDataModule1.frReport1EnterRect(Memo: TStringList; View: TfrView);
begin
if Dataset.FieldByName('VERSCHIL').asFloat<0.0 then
View.FillColor := clRed
else
View.FillColor := clWhite;
end;
?
Now I have ;-). It does not work like expected because (I think) Dataset
contains a whole record. The code says : if the field 'VERSCHIL' of the
current record contains a negative value paint the box of the current
field red. But that's true for all fields in the record.
I added :
if Memo.Text='[qrySamenVatting."VERSCHIL"]'#13#10 then
> if Dataset.FieldByName('VERSCHIL').asFloat<0.0 then
> View.FillColor := clRed
> else
> View.FillColor := clWhite;
This works as I expected.
Another way is, as shown in UserDs example, using a Script, You can make a
script var 'Negative', which value is updated in OnGetValue, just like
FNegative below, the difference would be that 'Negative' is a script var and in
your example FNegative is some data module field or property. In the UserDS
sample that would be something similar to variable 'I', for example.
procedure TDataModule1.frReport1GetValue(const ParName: String;
var ParValue: Variant);
begin
Append(OutFile);
writeln(OutFile,ParName);
CloseFile(OutFile);
if ParName='qrySamenVatting."VERSCHIL"' then
FNegative:=qrySamenVattingVERSCHIL.AsFloat<0.0
else
FNegative:=false;
end;
Used that way, the memo field's script would be something like:
Begin
if Negative then
FillColor := clRed
else
FillColor := clWhite;
End
When will that script be executed ? Before or after the EnterRect ?
Before is OK, after, like GetValue, is too late.
This colors the wrong field. After some debugging I found EnterRect is
fired before GetValue. So, how can I modify the color based on the value ?
Koenraad.
Thanks anyway, I'm a step further. Now getting a crosstab to work.
Koenraad
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus