应用程序传递参数到水晶报表说明
来源:互联网 发布:js鼠标跟随效果的制作 编辑:程序博客网 时间:2024/05/20 11:36
在应用程序窗体中建立一个DateTimePicker控件。实现从DateTimePicker中去时间值传到存储过程里,然后把存储过程的数据集传到data.xsd数据集里。再由水晶报表调用数据。
1. 建立存储过程—CReport1
CREATE PROCEDURE [dbo].[CReport1]
@time datetime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT msbmc,hwm,ssts,time1
--,convert (varchar(20),time1,112) as time1
from dtb join jsb on dtb.jid = jsb.jid
join hwzl on dtb.hid=hwzl.hid
join msbzl on dtb.mid=msbzl.mid
where convert(varchar(20),time1,112)=convert (varchar(20),@time,112)
2. 打开解决方案—右键项目—添加新建项—数据集。命名为dataset1.xsd
打开dataset1.xsd,右键点击添加—TableAdapter,选择数据库连接,选择“使用现有存储过程”,选择刚才新建的存储过程“CReport1”。点击完成。
这时在dataset1.xsd中出现新的数据集。右键点击“CReport1TableAdapter”下的“Fill,GetData()”属性,打开Paramters(SQL语句和存储过程的参数)的选项按钮打开 参数集合编辑器,添加存储过程中要输入的time参数。点击添加,在右边的DbType中选择datatime类型,把Size设置为8,ParamtersName选项改为@time。
完成设置后可以在dataset1.xsd中点击右键—预览数据,检查是否能从存储过程中取到数据。
3. 打开解决方案—右键项目—添加新建项—Crystal报表,建立一个“CrystalReport1.rpt”,
打开CrystalReport1.rpt,在字段资源管理器中,右键数据库字段—数据库专家,创建新连接—ADO.NET,弹出连接对话框,在文件路径中选择刚才建立的dataset1.xsd,点击完成。再把dataset1—Creport1加入,点击确定完成。
这时完成在水晶报表中加入数据源。
4. 新建一个form,在form中添加一个CrystalReportViewer控件,一个DateTimePicker控件,一个button控件。打开form代码编辑器。添加以下代码:
Imports System.Data.SqlClient
Imports CrystalDecisions.CrystalReports.Engine
Public Class Form1
Private strAppTitle As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim customerReport As ReportDocument = New ReportDocument
Try
Dim strConn As SqlConnection = New SqlConnection("Data Source=localhost;Initial Catalog=cjs;Integrated Security=true")
Dim ds As DataSet1 = New DataSet1
Dim adp As SqlDataAdapter = New SqlDataAdapter
strConn.Open()
adp.SelectCommand = New SqlCommand
adp.SelectCommand.Connection = strConn
adp.SelectCommand.CommandText = "CReport1"
'执行存储过程
adp.SelectCommand.CommandType = CommandType.StoredProcedure
'把DateTimePicker的值附给@time
adp.SelectCommand.Parameters.Add("@time", SqlDbType.DateTime).Value = DateTimePicker1.Value
adp.SelectCommand.ExecuteNonQuery()
adp.Fill(ds, "s")
'Application.StartupPath 表示获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
Dim reportPath As String = Application.StartupPath & "/" & "CrystalReport2.rpt"
customerReport.Load(reportPath)
customerReport.SetDataSource(ds.Tables("s"))
CrystalReportViewer1.ReportSource = customerReport
Catch ExceptionErr As Exception
MessageBox.Show(ExceptionErr.Message, strAppTitle)
End Try
End Sub
End Class
- 应用程序传递参数到水晶报表说明
- 水晶报表传递参数
- 水晶报表传递参数
- 向水晶报表传递参数
- 向水晶报表传递参数
- 向水晶报表传递参数
- 水晶报表向参数字段传递参数
- 水晶报表向参数字段传递参数
- 2004.12.8 水晶报表传递参数
- 完成了对水晶报表中的参数传递的学习
- 水晶报表自定义参数传递个人示例代码
- 水晶报表参数传递代码 同时 可以翻页
- CrystalReport水晶报表传递多个参数方法
- 水晶报表参数问题
- 水晶报表常用参数
- 最新官方水晶报表实例 - 报表,应用程序
- 最新官方水晶报表实例 - 报表,应用程序
- 最新官方水晶报表实例 - 报表,应用程序
- 存储过程输入参数的值
- TMS320F2812 flash运行时的启动过程
- 想成为编程高手,从基础做起
- TEA加密算法的C/C++实现
- Win32 Service的简单封装
- 应用程序传递参数到水晶报表说明
- 教训:vector的size()是无符号型
- 为什么不要特化函数模版
- The way of Winning.
- ch05:高级文件操作
- 从Win32 API封装Thread类[1]
- 从Win32 API封装Thread类[2]
- 应用图在地图方面的应用
- 用WinPcap写抓包软件(二)