Объявление объекта в условии if - логическая точка останова в vb.net - PullRequest
0 голосов
/ 28 марта 2012

Объявление объекта в условии if - логический разрыв:

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

objrpt.SetDataSource (ds.tables ( "ххх"))

Я получаю сообщение об ошибке в строке выше: objrpt не объявлен, он может быть недоступен из-за уровня защиты

Я согласен, что он может быть недоступен, если условие не выполнено - но здесь если он не встречается, то потребуется CrystalReport2, знаете?

Ответы [ 2 ]

1 голос
/ 28 марта 2012

Проблема в том, что ваша переменная должна быть объявлена ​​вне оператора If.Переменные, объявленные внутри оператора If, недоступны извне.

Dim objrpt As ReportDocument
If mycondition = True Then
   objrpt = New CrystalReport1
 Else
   objrpt = New CrystalReport2
End If
objrpt.SetDataSource(ds.tables("xxx"))
0 голосов
/ 29 марта 2012

Ниже код работает нормально - но забавно по логике: -)

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

С уважением, Sensa

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...