Delphi->Crystal Report 传递参数,不要弹出输入参数值的窗口
有如下代码:
Crpe.ReportTitle:='销售订单';
Crpe.ReportName:=GlobalVar.AppPath+'\Reports\crp_SalesOrder.rpt';
Crpe.ParamByName('@sOrder#','').ShowDialog:=False;
Crpe.ParamByName('@sOrder#','').PromptValue:=Self.sOrderID;
Crpe.ParamByName('@sOrder#','').CurrentValue:=Self.sOrderID;
Crpe.Refresh;
Crpe.Execute;
每次执行,都要弹出对话框要求输入参数值,虽然输入框默认的参数值已经是传过去的参数值了, 可是它非得让确认一次, 烦死了. 请问有谁能有办法解决?
问题主要出在Crpe.Refresh语句上, 可是如果不要这条语句, 报表根本就不能正确显示.
问题点数:40、回复次数:4Top
1 楼zhangtianhong(蓝冰)回复于 2005-08-03 11:05:15 得分 0
怎么没人理的?Top
2 楼fenglaile(风清飘)回复于 2005-08-03 11:50:08 得分 40
self.Crpe1.ParamFields.AllowDialog:=false;Top
3 楼zhangtianhong(蓝冰)回复于 2005-08-05 15:36:02 得分 0
谢谢(风清飘).我按你的方法去做的时候,的确不再弹出要求输入参数的提示窗口了, 可是不论是哪张订单, 显示报表时都是按我在设计报表时输入的订单号的内容, 也就是说,无论在哪一条记录下预览数据, 显示的都是同一内容. 请问这怎么解决? 我的代码如下:
Crpe.ReportName:=GlobalVar.AppPath+'\Reports\crp_SalesOrder.rpt';
Crpe.ParamFields.AllowDialog:=False; //这句是按你所说的加上去的
//Crpe.ParamByName('@sOrder#','').ShowDialog:=False; //这句是我原来用的
Crpe.ParamByName('@sOrder#','').PromptValue:=Self.sOrderID;
Crpe.ParamByName('@sOrder#','').CurrentValue:=Self.sOrderID;
Crpe.Refresh;
Crpe.Execute;Top
4 楼zhangtianhong(蓝冰)回复于 2005-08-05 17:38:55 得分 0
问题已经解决, 总结一下:
Crpe.ReportName:=GlobalVar.AppPath+'\Reports\crp_SalesOrder.rpt';
Crpe.ParamFields.AllowDialog:=False; //这句是按你所说的加上去的
//Crpe.ParamByName('@sOrder#','').ShowDialog:=False; //这句是我原来用的
Crpe.ParamByName('@sOrder#','').PromptValue:=Self.sOrderID;
Crpe.ParamByName('@sOrder#','').CurrentValue:=Self.sOrderID;
//Crpe.Refresh; //去掉这条语句就行了, 否则, 预览报表时,永远都是显示设计时的数据!!! 原因未明
Crpe.Execute;Top




