if条件中的对象声明 - vb.net中的逻辑断点

时间:2012-03-28 18:24:28

标签: vb.net object conditional-statements

条件中的对象声明 - 逻辑中断:

If mycondition = True Then
   Dim objrpt As New CrystalReport1
 Else
   Dim objrpt As New CrystalReport2
End If

objrpt.SetDataSource(ds.tables( “XXX”))

我在上面的行中收到错误说: 由于其保护级别

,未声明objrpt可能无法访问

我同意如果条件不满足可能无法进入 - 但在这里 如果没有达到,那么CrystalReport2会知道吗?

2 个答案:

答案 0 :(得分:1)

问题是您的变量必须在If语句之外声明。无法从外部访问在If语句中声明的变量。

Dim objrpt As ReportDocument
If mycondition = True Then
   objrpt = New CrystalReport1
 Else
   objrpt = New CrystalReport2
End If
objrpt.SetDataSource(ds.tables("xxx"))

答案 1 :(得分:0)

下面的代码工作正常 - 但它的逻辑很有趣: - )

If GLB_SelectedRPT = "3B" Then
   Dim objrpt As New CommissionRpt3B
   objrpt.SetDataSource(StrongDS.Tables("mytempcomm"))
   CrystalReportViewer1.ReportSource = objrpt
Else
   Dim objrpt As New CommissionRpt3BPlus
   objrpt.SetDataSource(StrongDS.Tables("mytempcomm"))
   CrystalReportViewer1.ReportSource = objrpt
End If

此致 森萨