[Lazarus] lazreport: how to use global report variables

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Tue Jun 30 15:03:19 CEST 2015


Hi,

I have a print dialog, shown before the report is generated. The user
can make some selections. Based on that, I want to set the value of a
global variable, then use that variable to decide if a column of data
must be visible or not.

I've used File -> Variable List to define a new variable (just the name).

I then double clicked on a header memo field and enabled the Script
checkbox, and typed in the following code in the Script box:

===================================
if [ HideKlas] = '0' then
  Visible := True
else
  Visible := False;
===================================

In my *.pas unit I temporarily tried to set a hard-coded value of the
"HideKlas" variable to see what happens in the report. I tried both the
values '0' and '1'.

===================================
If FRPrint.PrepareReport then
begin
  FRPrint.Variables.Values['HideKlas'] := '1';  // for testing only
  FRPrint.Preview := FAfdrukForm.PrintPanel;
  FRPrint.ShowPreparedReport;
end;
===================================


No matter what I do, the header (memo) field is now _always hidden_.
Changing the hard-coded value of the variable doesn't seem to make any
difference.

Before any of the above script changes the report worked, and the header
text was visible. But I can't seem to make that visibility a dynamic option.

Any tips would be much appreciated.


Regards,
  - Graeme -

-- 
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/




More information about the Lazarus mailing list