|
各位前辈大虾,我在做一个报表的时候(VB + sql server + 水晶报表),遇到一个问题。
报表数据源我直接使用水晶报表中的“数据库专家”连接了我的sql server中的一个存储过程,该存储过程有一个参数。然后我在VB里面通过如下代码为该存储过程参数赋值并打开报表:
CRViewer91.ReportSource = Report
Report.DiscardSavedData
Report.ParameterFields.GetItemByName("@qinggouID").ClearCurrentValueAndRange
Report.ParameterFields.GetItemByName("@qinggouID").AddCurrentValue (frm_qinggou.Rep_qgid)
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
经过以上代码后,打开报表预览,就存在一个问题:当我第一次启动VB窗体,点击“打印”按钮,预览报表时,报表里面没有任何数据。但如果我关闭报表,重新再点击“打印”按钮时,数据就能够按照存储过程所得到的结果正常显示。在不关闭VB窗体的前提下,一切正常。但如果我关闭了该VB窗体,再次运行的时候,又会出现第一次不能显示数据,第二次以及以后都正常的情况,请问是什么问题呢?在线等,急了我一天一夜了。
以下是我的存储过程:
ALTER proc report_qinggoudan
@qinggouID varchar(30)
as
select A.qg_id,A.qg_date,A.qg_bumen,A.qg_gys,A.qg_enddate,A.qg_gdh,A.qg_bianhao,
A.qg_cpname,A.qg_user,A.qg_master,A.qg_shenhe,B.qg_wl_id,B.qg_wl_name,B.qg_wl_guige,B.qg_wl_qty,B.qg_beizhu
from (select * from sys_qinggou where qg_id=@qinggouID) as A,
(select * from sys_qinggoumingxi where qg_id=@qinggouID) as B
where A.qg_id=B.qg_id
|
|