【发布时间】:2017-05-23 10:10:23
【问题描述】:
我将标题从: 文件临时错误:链接参数上的操作非法
到: 在水晶报表中传递参数
我想我知道如何将参数从主报表传递到子报表,我做了这样的事情:
我现在可以通过水晶报表预览我的报表的外观,一切正常。
但是,当我需要将报表调用到 VB.Net 时,我会使用此代码。
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Data.SqlClient
Imports System.Data
Public Class rptXbar
Private Sub rptXbar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
LoadXbar(PartNoRep, DimItmRep)
End Sub
Sub LoadXbar(ByVal PartNo As String, ByVal DimItem As String)
Dim sqlcom As New SqlCommand
Dim dt As New DataTable
Dim dta As New SqlDataAdapter
Dim crConnectionInfo As New ConnectionInfo
Dim crtableLogoninfo As New TableLogOnInfo
Dim repX As New XbarRchart
Try
repX.Load(System.AppDomain.CurrentDomain.BaseDirectory() & "XbarRchart.rpt")
With sqlcom
Me.Cursor = Cursors.WaitCursor
conn.Open()
.Connection = conn
.CommandTimeout = 100
.CommandType = CommandType.StoredProcedure
.CommandText = "dbo.XBarRChart"
.Parameters.AddWithValue("@PartNo", PartNo)
.Parameters.AddWithValue("@DimItem", DimItem)
.ExecuteNonQuery()
End With
dt.Clear()
dta = New SqlDataAdapter(sqlcom)
dta.Fill(dt)
repX.SetDatabaseLogon(userid, password, dtsrc, initcat)
repX.SetParameterValue("@PartNo", PartNo)
repX.SetParameterValue("@DimItem", DimItem)
repX.SetParameterValue("@PartNo", PartNo, "MIPIRHeader.rpt")
repX.SetParameterValue("@DimItem", DimItem, "MIPIRHeader.rpt")
repX.SetParameterValue("@PartNo", PartNo, "MIPIRDetails.rpt")
repX.SetParameterValue("@DimItem", DimItem, "MIPIRDetails.rpt")
repX.SetDataSource(dt)
Me.CrystalReportViewer1.ReportSource = repX
Me.CrystalReportViewer1.Refresh()
Catch ex As Exception
MsgBox(ex.Message)
Finally
Me.Cursor = Cursors.Default
End Try
conn.Close()
End Sub
End Class
会弹出一个错误,它会说:
如果我删除链接,参数会要求输入,如果我删除此代码
repX.SetParameterValue("@PartNo", PartNo, "MIPIRHeader.rpt")
repX.SetParameterValue("@DimItem", DimItem, "MIPIRHeader.rpt")
repX.SetParameterValue("@PartNo", PartNo, "MIPIRDetails.rpt")
repX.SetParameterValue("@DimItem", DimItem, "MIPIRDetails.rpt")
它还会询问参数,有什么建议可以解决这个问题吗?
【问题讨论】: