Stored procedures 在crystal report 8.5中使用存储过程?

Stored procedures 在crystal report 8.5中使用存储过程?,stored-procedures,vb6,crystal-reports,parameters,Stored Procedures,Vb6,Crystal Reports,Parameters,我使用Crystal Reports 8.5(report1)制作了一个新报告,它使用存储过程作为数据源。存储过程有两个输入参数(@p1和@p2),当我在crystal report IDE中为@p1和@p2输入一些测试数据时,一切都正常。然后,我在VisualBasic6.0IDE中添加了report1,并在form1上添加了一个新表单(form1)和CrystalReportViewer控件。现在请帮帮我:我想展示一下报告。我应该编写哪些代码来显示它?send data user是如何通过应

我使用Crystal Reports 8.5(report1)制作了一个新报告,它使用存储过程作为数据源。存储过程有两个输入参数(@p1和@p2),当我在crystal report IDE中为@p1和@p2输入一些测试数据时,一切都正常。然后,我在VisualBasic6.0IDE中添加了report1,并在form1上添加了一个新表单(form1)和CrystalReportViewer控件。现在请帮帮我:我想展示一下报告。我应该编写哪些代码来显示它?send data user是如何通过应用程序输入存储过程参数的? 我还收到以下错误消息:“服务器尚未打开”

怎么了?

假设SampleReport已添加到.Net项目中:

Dim parameter1 As CrystalDecisions.Shared.ParameterField
Dim parameter2 As CrystalDecisions.Shared.ParameterField

With SampleReport
    .SetDatabaseLogon("user", "password", "server", "database")
    'locate first parameter in report
    parameter1 = .ParameterFields.Find("@p1", "")
    'locate second parameter in report
    parameter2 = .ParameterFields.Find("@p2", "")
End With

'create a new discrete-parameter value
Dim stringValue As New CrystalDecisions.Shared.ParameterDiscreteValue()
stringValue.Value = "USA"

'assign it to the parameter's current values collection
parameter1.CurrentValues.Add(stringValue)

'create a new discrete-parameter value
Dim numberValue As New CrystalDecisions.Shared.ParameterDiscreteValue()
numberValue.Value = 100

'assign it to the parameter's current values collection
parameter2.CurrentValues.Add(numberValue)

With Me.CrystalReportViewer1
    .ReportSource = SampleReport
End With

我认为悬赏会吸引更多的人紧急回答…你不能对一个在过去48小时内没有被问过的问题进行悬赏…克雷格,正如我所说,我已经将报告添加到VB6项目中,并按照你所说的做了(上面3行)但我仍然无法显示它。现在我有3个问题:1-我是否需要在运行时填充一个记录集作为报表的数据源?2-我如何向存储过程发送参数以显示报表?3-消息如何:“服务器尚未打开?”" ?1. 如果将存储过程作为“表”添加到报表中,则CR将完成所有工作。您可以在代码中动态分配记录集,但这比在设计器中将其添加到报表中要复杂得多。2.我会将存储过程作为其唯一的“表”添加到报表中。您可以在Crystal Reports | Database | Database Expert中执行此操作。。报告将识别SP的参数。当您运行报告时,您可以在代码中设置参数值,或者只允许报告提示用户。哦,终于找到了…)1-正如您善意地说,在设计时向报告添加SP后,不需要填充记录集。2-如果为每个循环指定一个参数,则使用select语句选择每个参数并指定其值。3-我们需要使用SetLogOnInfo方法Craig,非常感谢3-