VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 750|回复: 3

关于水晶报表数据不能立即刷新的问题

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-3-2 19:30:02 | 显示全部楼层 |阅读模式
各位前辈大虾,我在做一个报表的时候(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

回复

使用道具 举报

0

主题

3

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-7-12 16:30:01 | 显示全部楼层
是这样的,crystal有一个缓存,我记得好像有一个刷新函数
你分两步测试:(1)检查每次运行的参数值是否相同
              (2)单独输入参数测试水晶报表
反正这个活要细心,两年以前我能马上马上帮你解决,现在全忘光了,就算现查资料也来不及
靠自己吧
回复

使用道具 举报

0

主题

3

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-7-12 17:00:01 | 显示全部楼层
还有这个问题不是存储过程的问题,sql那边只要测试通过就和存储过程没有关系
回复

使用道具 举报

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-7-15 17:30:01 | 显示全部楼层
因为在建报表的时候,在水晶报表的数据库专家里面设置数据源,如果选中了存储过程后,它自动要你输入一个参数值(我的存储过程只有一个参数),所以我选择了空值。是不是因为这个原因而导致每次启动程序后,第一次加载报表的时候,它使用了默认值,也就是空值?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表