crystal report的参数传递问题

rememberME 2002-04-24 03:09:58
我想通过传进参数来达到动态生成报表的功能
比如说:我先有个对话框让用户选择查询那个时间段的纪录来生成报表,这个时间是来限制数据库里的一个日期字段,然后生成的报表就是这个日期范围里的了。
这个参数象是SQL里的where子句的参数,但是我不知道怎么传给报表里。

...全文
83 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rememberME 2002-04-27
  • 打赏
  • 举报
回复
谢谢专家。
后来我发现,crystal report里的公式可以通过设计时的selectionfomula属性来更改可视化生成的报表的“ 选定内容公式 ”,对于一般的选择条件也是很好用的,而且比用dataset方便一些。

我觉得dataset好像总是很繁琐,需要fill,还要建许多的adapter,感觉需要把数据库的表全都重新抓过来一遍,这一步对于原来的一些数据库的应用,比如说不涉及xml传输的程序,总是觉得麻烦了许多。我现在写的程序都是在用Sqlcommand直接到数据库里查询,感觉和recordset差不多。但是datareader好像只能向前,又比recordset功能少了一些,为什么不在它和dataset之间做一种折衷的解决方案呢。
acptvb 2002-04-25
  • 打赏
  • 举报
回复
感谢您使用微软产品。

在VB.NET中,使用Crystal Report制作报表时,您可以动态指定数据源和及时更新报表内容。
您可以通过DataSet的方式来访问后台数据库,这样您需要手动编码来提取数据,填充DataSet,并传递到报表文件中。在这里,您可以动态指定报表数据源。下面提供一些基本的步骤,关于更详细的信息,请参考下面的链接:
1.Solution Explorer/Add/Add New Item…/DataSet,按照提示建立DataSet;
2.Solution Explorer/Add/Add New Item…/Crystal Report,在建立数据库链接时(Database Expert窗口),请选择<Project Data>,利用上一步建立的DataSet。
如下提供一段示例代码供您参考(用来建立数据库链接,填充DataSet,并绑定到报表文件中):
Private Sub BindReport()
Dim myConnection As New SqlClient.SqlConnection()
myConnection.ConnectionString = "Server=localhost;database=pubs;uid=sa;pwd=sa"

Dim myCommand As New SqlClient.SqlCommand()
myCommand.Connection = myConnection
‘您可以在如下的SQL语句中动态添加条件,包括Where子句
myCommand.CommandText = "Select * from Stores Where ……"
myCommand.CommandType = CommandType.Text

Dim myDA As New SqlClient.SqlDataAdapter()
myDA.SelectCommand = myCommand

Dim myDS As New Dataset1()
myDA.Fill(myDS, "Stores")
Dim oRpt As New CrystalReport1()
oRpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = oRpt
End Sub
请根据您系统的实际情况,将提供的代码进行修改。希望以上答复给您带来帮助。
另外,Visual Studio.NET也提供了一些Crystal Report的简单例子[ C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Samples ],可供您参考。

关于Crystal Report的更详细信息,请参考如下网站:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q100368
http://community.crystaldecisions.net/


— 微软全球技术中心 VB支持中心

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
acptvb 2002-04-25
  • 打赏
  • 举报
回复
感谢您使用微软产品。

应该采用可视化的报表编辑器来设计报表。
下面提供一些基本的步骤,关于更详细的信息,请参考下面的链接:
1.Solution Explorer/Add/Add New Item…/DataSet,按照提示建立DataSet;
实际上是通过Server Explorer,将数据源上的表拖放到DataSet的设计界面上。此时,DataSet中没有实际的数据,只含有表结构信息;
2.Solution Explorer/Add/Add New Item…/Crystal Report,在建立数据库链接时(Database Expert窗口),请选择<Project Data>,利用上一步建立的DataSet。
此时,应该采用可视化的报表编辑器,按照向导提示,设计报表。但是,实际上报表中是没有数据的,只有一个格式。
3.报表中的实际数据,是通过上述提供的一段示例代码,来提供的。请参考上一个帖子。
关于建立报表的详细步骤,请参考如下连接提供的信息。
如有问题,欢迎继续讨论。


关于Crystal Report的更详细信息,请参考如下网站:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q100368
http://community.crystaldecisions.net/


— 微软全球技术中心 VB支持中心

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
rememberME 2002-04-25
  • 打赏
  • 举报
回复
可是如果这样是不是就不能进行可视化的报表格式编辑了?也就是说不能用那个报表编辑器了?全要手工写?

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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