2017-04-23 94 views
0

我的Crystal Report未加载。Crystal Report未加载

这是我的代码:

Imports CrystalDecisions.CrystalReports.Engine 
Imports CrystalDecisions.Shared 

Public Class bincard 
    Private Sub bincard_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    End Sub 

    Private Sub Button1_Click(sender As Object, e As EventArgs) 
     Dim cryRpt As New ReportDocument 

     cryRpt.Load(Application.StartupPath + "bincard1.rpt") 

     Dim crParameterFieldDefinitions As ParameterFieldDefinitions 
     Dim crParameterFieldDefinition As ParameterFieldDefinition 
     Dim crParameterValues As New ParameterValues 
     Dim crParameterDiscreteValue As New ParameterDiscreteValue 

     crParameterDiscreteValue.Value = TextBox1.Text 
     crParameterFieldDefinitions = 
      cryRpt.DataDefinition.ParameterFields 
     crParameterFieldDefinition = 
      crParameterFieldDefinitions.Item("itemid") 
     crParameterValues = crParameterFieldDefinition.CurrentValues 

     crParameterValues.Clear() 
     crParameterValues.Add(crParameterDiscreteValue) 
     crParameterFieldDefinition.ApplyCurrentValues(crParameterValues) 

     CrystalReportViewer1.ReportSource = cryRpt 
     CrystalReportViewer1.Refresh() 
    End Sub 
End Class 

回答

0

我改变了:

cryRpt.Load(Application.StartupPath + "bincard1.rpt") 

要:

cryRpt.Load(Application.StartupPath & "bincard1.rpt") 

然后报告设计设置复制输出目录=是否有更新的复制和汇编内容。

0

来源:

cryRpt.Load(Application.StartupPath + "bincard1.rpt") 

要:

cryRpt.Load(Application.StartupPath + "\\bincard1.rpt") 
-1

你在cryRpt.Load()路径是错误的。因为它代表它会是这个样子:

C:\ Program Files文件\应用Namebincard1.rpt

注意如何有"Application Name""bincard1.rpt"之间没有backslash。这会使路径无效。这是因为您使用+来连接会导致一些问题的路径。

而是考虑使用Path.Combine加入Application.StartupPath"bincard1.rpt"在一起:

cryRpt.Load(Path.Combine(Application.StartupPath, "bincard1.rpt")) 

这会给你类似的路径:

C:\ Program Files文件\应用程序名称\ bincard1.rpt