El 11/05/2020 a las 16:12, Graeme Geldenhuys via lazarus escribió:
On 03/05/2020 5:03 pm, Santiago A. via lazarus wrote:
I want to write a report where even lines are written with no background
and odd lines with a light gray background.
Have you considered using the newer FPReport (aka fcl-report) included
with FPC? There is a report designer for Lazarus too. It is super simple
to implement the alternating colors that you required. Take a look at
the fcl-report/demos/ directory and look at the "rptexpressions.pas"
unit. All you need to do is assign the alternating colors in the
DoBeforePrint() event handler.
eg:
procedure TExpressionsDemo.DoBeforePrint(Sender: TFPReportElement);
begin
With rpt.Variables.FindVariable('isEven') do
AsBoolean:=Not AsBoolean;
if rpt.Variables.FindVariable('isEven').AsBoolean then
Sender.Frame.BackgroundColor := clLtGray
else
Sender.Frame.BackgroundColor := clWhite;
end;
Regards,
Graeme
Yes, in fact I have solved it with a similar way using events in pascal.
Nevertheless, that is not the question. Do variables work in LazReport
or not? if they do, how?
I have hidden a band and a few tweaks using the reports scripts, that
means that I have divided the logic of the report in the scripts in lrf
file and in events in the pascal source. If I can't trust that scripts
work, I will move everything to pascal and let the report just for
basic graphic design with no script.
Using only pascal events is not the best solution, because I could, for
example, change the design of alternate colors of the band to a line
division without touching the pascal code and having to generate a new
executable.
I still hope that I have misunderstood something about variables, or at
least it is known bug.
--
Saludos
Santiago A.
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus