lazarus在银河麒麟国产操作系统linux下,使用fastreport注意事项

参考 秋. 风 https://www.cnblogs.com/qiufeng2014

1、修正编译出错的 bug。打开 frxDsgnIntf.pas,第 1243 行:
with GetTypeData(GetTypeData(PropertyList[i].PropType).CompType)^ do
改为:

      {$IFDEF linux}
        with GetTypeData(GetTypeData(PropertyList[i]^.PropType)^.CompType)^ do
      {$else}
      with GetTypeData(GetTypeData(PropertyList[i].PropType^).CompType^)^ do
      {$endif}

2、修正打开报表设计器时出现:

murrine_style_draw_box_gap: assertion 'height >=-1' failed
In file 'gtk2/gtk2widgetset.inc' at line 1440:
raise Ex.Create(Flag + Domain + AMessag);

修复步骤:

打开 /fpcupdeluxe/lazarus/lcl/interfaces/gtk2/gtk2widgetset.inc

将 1386--1392 行注释掉
复制代码
{
else
if ALogLevel and G_LOG_LEVEL_CRITICAL <> 0
then begin
Level := 'CRITICAL';
Ex := EInterfaceCritical;
end
}

3.frxReport1.IniFile 默认值的在 linux 下代码不太完善,可以参考秋风方法
https://www.cnblogs.com/qiufeng2014/p/17732340.html
也可以不修改代码程序指定文件
procedure Tfrm_Z_A_main.FormCreate(Sender: TObject);
begin
inherited;
// 指定
frxReport1.IniFile := gsAppPath + '/report.ini';
end;