怎么实现在报表没数据的时候,便不打开报表?

zxzy1981 2003-10-15 11:54:57
rt
...全文
67 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenhongL 2003-10-17
  • 打赏
  • 举报
回复
用水晶报表有一个nodata事件
private sub report_nodata(pcancel as boolean)
dim response as integer
response=msgbox("no data!" & vbnewline & "do you still want to display the_ report",vbyesno,"no data")
if response=vbyes then
pcancel=false
else
pcancel=true
endif
end sub
jxiner210 2003-10-16
  • 打赏
  • 举报
回复
同上先判断,后调用
samuelpan 2003-10-16
  • 打赏
  • 举报
回复
增加警告提示。

或者转向调用报表,先判断有没有数据,然后调用报表
tianjh 2003-10-16
  • 打赏
  • 举报
回复
这是一段源代码自己看下就明白了:
Private Sub Cmd_Jiansuo_Click()
SqlStr = "tab_client"
SqlStr = "select * from " + SqlStr '+ "where rq between" + Text1.Text + " and " + Text2.Text
Set rst = ExecuteSQL(SqlStr, Message) 'ExecuteSQL()是我写的一个处理查询语句的一个函数。

If rst.RecordCount <> 0 Then ‘在此设定将来是否显示报表
CanShow = True
Else
CanShow = False
End If
End Sub

Private Sub Cmd_Rp_Click()
Set Reports = Nothing
Set Reports = CrystalReport0 '在此作第一项的限制,以下雷同

If CanShow Then ’根据设定决定是否显示报表
Reports.Database.SetDataSource rst
Form_Rv.CRV.ReportSource = Reports
Form_Rv.Show
Form_Rv.Refresh
Else
Sta.Panels(1).Text = "目前还没有可显示的数据源."
End If
End Sub

tianjh 2003-10-16
  • 打赏
  • 举报
回复
很简单!
如果你用ADO连接的话请在打开报表前检测一下数据源,如果有记录则打开报表否则就不打开了。
我这几天就是这么干的,并且还可以动态生成报表的数据源,要什么样的就做什么样的非常方便。
最好啊你用水晶报表生成器生成你想要的报表然后在代码中设置数据源这样就使做的程序可移植性大大提高并且也不要配什么GSD ODBC等了。



想要源码请来信:china.son@126.com
zxzy1981 2003-10-16
  • 打赏
  • 举报
回复
怎么判断有无数据?
zxzy1981 2003-10-15
  • 打赏
  • 举报
回复
access
wenhongL 2003-10-15
  • 打赏
  • 举报
回复
看用什么报表了?

6,108

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧