关于fastreport3的问题,在线等待(100分)

  • 主题发起人 主题发起人 Lessy
  • 开始时间 开始时间
L

Lessy

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾不知道有没有遇到过这样的问题,就是当form1的的formstyle属性为fsStayOnTop时,执行frxReport1.DesignReport;时,报表设计界面会被form1遮挡,但在fastreport2.5中就没有这个问题,由于程序的关系,form1的的formstyle属性只能设为fsStayOnTop,而且不但form1,还有form2、form3等等的窗体的formstyle属性只能设为fsStayOnTop,我试过把form1先最小化再执行frxReport1.DesignReport,但同样会被form2等其它窗体遮挡。 有什么办法解决啊?难道又要我改用fastreport2.5吗?
 
Anylib,创意、自由、灵活的体现,超强的报表功能,独特的双数据源连接,全功能的表格组件,它带给你的是轻松,美妙!
http://www.anylib.com
 
楼上的,我不想改用其它报表工具,工作量太大了,而且现在我都改为fastreport3.03了
 
都等一天了,还没有人回答!
失望中。。。。。。。。。。。。。。
 
没有研究过!
1.修改fastreport的源,将其窗口也改成fsStayOnTop
2.在执行frxReport1.DesignReport前,将Form1的属性改为非fsStayOnTop
没有实验过,自己 试一下 ,不行的话就当我没有 说!
 
不行啊,楼上的,你的这种方法我早就试过了
 
呵呵,实在不行就找句柄,把它SHOW到前面来。
 
2.5比3好。回吧
 
fastreport3的问题还不少哩,其中最让中国人难以接受的就是{不能完全显示字段的汉字},如某字段的值是“中华人民共和国”,它仅显示“中华”[:(],这个问题最近几个版本都存在,只要是3.18以上就会,新的3.23.7也存在[:(],不过你不用中文字体集就没这个问题,但中国人不用中文字体集那用什么??
[:(][:(][:(][:(][:(][:(]
 
大家都在讨论这个工具,但却没有人能处理这个问题!难道都用E文?
 
Lessy,我不能帮助你什么了,我用这个东东也有不问题,不好意思,借地一用!
 
fastreport3在中文处理方面的确有好大问题,最近我又发现了一个,不知道大家知道不知道?
双击frxDBDataset1可以编辑字段名,变成中文名后在设计报表所有字段都变成中文了,在MasterData1显示是没有问题的,但用sum统计时,虽然没有出错,但统计出来的都是0,那个晕啊........
还有一个问题就是在程序传递一个变量到报表中,我不知道为什么只能传递int和float型的变量,而字符串等传递过去以后在预览时总会提示出错:
发生一下错误,memo2:公式错误'2006-07-31 到 2006-08-04';';'expected
不知道为什么?难道不能传递字符串吗?
 
如果问题真象搂主说的,看样子只能用weiliu的方法了,我有好多都是用这个方法,
 
所以我不喜欢三方控件
 
axaxax 能不能说清楚一点啊?
 
不要fsStayOnTop,
干吗非要这样,
要不就改报表,
二选一。。。。
 
楼上的,说得容易啊,要知道我们程序员也象身在江湖一样,身不由己啊!
 
在frxclass那个单元里找到procedure TfrxReport.DesignReport;
修改如下:
//主要把show改成showmodal
procedure TfrxReport.DesignReport;
var
p: TfrxPage;
f: TForm;
begin
{$IFNDEF FR_VER_BASIC}
if FDesigner <> nil then
Exit;
if frxDesignerClass <> nil then
begin
if PagesCount = 0 then
begin
if FDotMatrixReport then
p := TfrxDMPPage.Create(Self) else
p := TfrxReportPage.Create(Self);
TfrxReportPage(p).SetDefaults;
p.Name := 'Page1';
end;

try
f := Screen.ActiveForm;
if f <> nil then
f.Enabled := False;
FDesigner := TfrxCustomDesigner(frxDesignerClass.NewInstance);
FDesigner.CreateDesigner(nil, Self);
//FDesigner.FormStyle:=fsStayOnTop;
FDesigner.ShowModal;
//FDesigner.Show;
while not FDesigner.FModalFinisheddo
Application.HandleMessage;
finally
FDesigner.Free;
FDesigner := nil;
end;

if f <> nil then
begin
f.Enabled := True;
if not (csDesigning in ComponentState) then
f.SetFocus;
end;
end;
{$ENDIF}
end;
 
谢谢了。。。。终于通过了。。。。。
 
后退
顶部