在网上找了很长时间的Fastreport,各种版本的都试了。均不理想。Studio3.20 也用过。有些方法不支持,有些方法使用起来非常不方便。经过长时间的摸索后 在studio 4.6.80的版本上试验证明,虽然仍有不理想的地方。但还凑合着使用。
下面是一个通过传递参数建立的查询报表(where子句的两个参数)。希望实现的功能是 select * from tblWeight where DDate>'2009-07-09 00:12:23' and DDate <'2009-10-12 08:12:23'
将上述参数传递给已建好的报表的组件“ADOQuery1”内的两个参数Param1和Param2。
Dim frx As FastReport.TfrxReport
Private Sub Form_Load()
Set frx = CreateObject("FastReport.TfrxReport")
frx.LoadReportFromFile ("Simple group.fr3")
Dim Query As FastReport.TfrxADOQuery
Dim Param1 As FastReport.IfrxParamItem
Dim Param2 As FastReport.IfrxParamItem
Set Query = frx.FindObjectEx("ADOQuery1")
If Query Is Nothing Then Return
Set Param1 = Query.ParamByName("Param1")
If Param1 Is Nothing Then Return
Param1.Expression = "'2009-07-09 00:12:23'"
Set Param1 = Nothing
Set Param2 = Query.ParamByName("Param2")
If Param2 Is Nothing Then Return
Param2.Expression = "'2009-10-12 08:12:23'"
Set Param2 = Nothing
frx.ShowReport
Set Query = Nothing
End Sub
切记,参数引号中的两个 ' '不要漏掉。
还有一个有趣的问题,在ReportDesigner中建立ADOquery1的sql语句时,写完sql语句后,两个参数并不会自动直接出现在参数编辑界面里,如果出现这情况,可以先在sql设计器里生成一个参数的sql语句,然后把代码拷贝到sql语句窗口,然后手工加上 and后面的第二个参数,最后调出参数报表,这样就可以看到Param1 和Param2了。