VB.NET - 部署Crystal Report应用程序

时间:2014-12-03 18:14:18

标签: vb.net crystal-reports

我已经在我的电脑上测试了我的程序,一切正常,但是当我尝试将Windows窗体应用程序部署到客户端计算机时,弹出了要求输入PASSWORD的Crystal Reports窗口,因此使用以下方式设置了这个事实:

Dim cryRpt As New ReportDocument
        Dim crtableLogoninfos As New TableLogOnInfos
        Dim crtableLogoninfo As New TableLogOnInfo
        Dim crConnectionInfo As New ConnectionInfo
        Dim CrTables As Tables
        Dim CrTable As Table

        cryRpt.Load("C:\ActivityReport.rpt")

        cryRpt.SetParameterValue("FromDate", TextBox1.Text)
        cryRpt.SetParameterValue("ToDate", TextBox2.Text)

        With crConnectionInfo
            .ServerName = serverbox.Text
            .DatabaseName = dbbox.Text
            .UserID = userbox.Text
            .Password = passwordbox.Text
        End With

        CrTables = cryRpt.Database.Tables
        For Each CrTable In CrTables
            crtableLogoninfo = CrTable.LogOnInfo
            crtableLogoninfo.ConnectionInfo = crConnectionInfo
            CrTable.ApplyLogOnInfo(crtableLogoninfo)
        Next

        CrystalReportViewer1.ReportSource = cryRpt
        CrystalReportViewer1.Refresh()

我还注意到Crystal Reports Pop Up中的DATABASE字段为空,这可以解释为什么我在手动输入密码时会收到错误:LOGIN FAILED,但无法弄清楚数据库名称未被传递的原因。 / p>

我已经尝试更改我的表单(ON DEV PC)上的DATABASE名称,该名称位于dbbox.text中,这会阻止报表运行,因此它应该将DATABASE作为连接字符串的一部分传递?

我已在客户端计算机上安装了Crystal Report Viewer,因为我可能会这样,但没有运气。 我是否需要安装.NET v4?

现在真的被困住,并且会喜欢一些指导。

由于 罗布

1 个答案:

答案 0 :(得分:0)

我只是使用:

 crDocument.SetDatabaseLogon("name", "password", "server", "database")

我已经避免使用这些问题,而不是使用上述所有代码。我遇到了同样的问题,这让我发疯了。

这里有人可能知道原因,但我上面发布的内容对我有用。