Difference between revisions of "FPReport FAQ"

From Free Pascal wiki
Jump to navigationJump to search
(→‎Fontmanager: Some hints added)
(→‎FPC FPReport: Infos from Bug 0036545 and 0036525)
Line 45: Line 45:
 
Info from Mailinglist - FPC 2.6.4 (and Lazarus 1.6.2), but you will need to copy some additional units from the
 
Info from Mailinglist - FPC 2.6.4 (and Lazarus 1.6.2), but you will need to copy some additional units from the
 
trunk version of the FPC source repo (in particular, fpexprpars, and fcl-pdf) and the Lazarus trunk repro too
 
trunk version of the FPC source repo (in particular, fpexprpars, and fcl-pdf) and the Lazarus trunk repro too
 +
 +
=== Expression and Variables ===
 +
If you use float variables and stringvalues on a non english configured system you have problems with the comma as decimalseperator (eg. german configured computer). All results will have a dot instead of the the configured value in Formatsetting. This is by design (see Bugreport 0036545 and 0036525) !!
  
 
== Lazarus FPReport ==
 
== Lazarus FPReport ==

Revision as of 13:18, 10 January 2020

English (en)

General

Read the README.txt file

Before you compile the FPReport, have a look at the README.txt

FPReport <> LazReport

FPReport is not LazReport!! These are two different reporting systems.

Papermanager must registered

You never registered the standard page sizes with:

  if PaperManager.PaperCount=0 then
    PaperManager.RegisterStandardSi

Fontmanager

Your report used LiberationSans font. Make sure you added the search paths to the font cache. eg:

  {$IFDEF UNIX}
    gTTFontCache.SearchPath.Add(GetUserDir + '.fonts/');
    gTTFontCache.SearchPath.Add('/data/devel/Wisa/fonts/Liberation/');
    gTTFontCache.BuildFontCache;
  {$ENDIF}

In windows this useable

  gTTFontCache.ReadStandardFonts;
  gTTFontCache.BuildFontCache;

Default Fonts (cDefaultFont and ReportDefaultFont) on

  • Unix LiberationSans
  • Windows Arial
  • Not unix and not windows Helvetica

On some enviroments like Rasbian you have troubles with this defaults !! You see then a message, the font is not found and the report is not generated.

FPC FPReport

I did not find FPReport in my FPC dir

It is located in the FPC\packages\fcl-report dir, but only in FPC trunk (=3.1.1) since rev. 36962 (20.Aug. 2017)

What is the minimum requirement

Info from Mailinglist - FPC 2.6.4 (and Lazarus 1.6.2), but you will need to copy some additional units from the trunk version of the FPC source repo (in particular, fpexprpars, and fcl-pdf) and the Lazarus trunk repro too

Expression and Variables

If you use float variables and stringvalues on a non english configured system you have problems with the comma as decimalseperator (eg. german configured computer). All results will have a dot instead of the the configured value in Formatsetting. This is by design (see Bugreport 0036545 and 0036525) !!

Lazarus FPReport

I did not find FPReport in my Lazarus dir

Only in Lazarus trunk since rev. 55719 (20.Aug. 2017). Look in LAZARUSDIR\components\fpreport there is a runtimepackage lclfpreport.lpk.

I cannot compile the FPReport packages

As of 20th January 2019 FPReport does not compile out of the box in 64 bit Lazarus (Windows version at least). It should compile flawlessly in 32 bit Lazarus, though (see also "I did not find FPReport in my Lazarus dir").

Lazarus does not start anymore

You need to copy freetype-6.dll and zlib1.dll to your LAZARUSDIR (the folder where lazarus.exe resides). Make sure you use 32 bit DLLs with 32 bit Lazarus and 64 bit DLLs with 64 bit Lazarus. These DLLs are not included. Please see the FreeType [1] and Zlib [2] project pages for details on how to get them. Please note that FPReport expects a "freetype-6.dll" whereas the install package from freetype.org includes a "freetype6.dll" (without the dash) or a "freetype.dll", so you have to rename the file to "freetype-6.dll" before starting Lazarus.

There is a breaking change, the library must be "freetype.dll" in newer versions of fpc (actual fixes32 and trunk)

My Report does not run/start in Windows

Start the application from the console, so you can see if some dll's are missing. Normally freetype-6.dll and zlib1.dll are missing. For more information look into the README.txt.

My Font is not found in windows

You have to use the PostScriptName of the font. Eg. under windows you have the font 'Arial' - this is one of the standard font - but you have to write Memo.Font.Name := 'ArialMT' because ArialMT is the correct PostScriptname.

  for i:= 0 to gTTFontCache.Count-1 do begin
    try
      Memo1.Append(TFPFontCacheItem(gTTFontCache.Items[i]).HumanFriendlyName +'...'+ TFPFontCacheItem(gTTFontCache.Items[i]).PostScriptName);
    except
      Memo1.Append('ERROR in...'+ TFPFontCacheItem(gTTFontCache.Items[i]).FileName)
    end;
  end;