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

Reply via email to