2013-09-27 2 views
0

Так что я делаю создание отчета из нескольких источников данных (хранимых процедур) в vb.net. Я делаю это, помещая их в Dataset и передавая их в отчет.Telerik Report Error Обработка

Итак, когда я добираюсь до отчета, я получаю инструкцию iif для обработки нескольких полей, которые неизменно называются хранимыми процедурами (я не могу изменить имена), но вам нужно перейти в одно и то же текстовое поле. Вот пример:

=IIF(Fields.TableName <> '', Fields.TableName, IIF(Fields.usuTableName <> '', Fields.usuTableName, NULL))

Как вы можете видеть, они оба одинаковы, но называются по-разному, таким образом, там напугать корректирующую другой. Только один будет заселен. Однако проблема заключается в том, что одно из этих значений полей не существует ... I.E.

Скажем, например, мы фильтруем по дате и, следовательно, ничего не возвращается из хранимой процедуры, которая имеет соглашение об именах Fields.usuTableName для этого диапазона дат и, таким образом, не создает набор данных, а остальные возвращают значения. Когда отчет отправляется, мы получаем ошибку, потому что Fields.usuTableName не существует, но Fields.TableName делает.

enter image description here

Как я могу убедиться, что имя поля действует до выполнения оператора IF для него?

ответ

0

Вот функция, я использовал, чтобы оценить его перед использованием:

Public Shared Function GetValue(ByVal reportItem As Processing.ReportItem, ByVal field As String) As String 
    Try 
     Dim testdString As String 
     Try 
      testdString = reportItem.DataObject(field).ToString 
     Catch ex As Exception 
      'must not be date 
     End Try 

     Return reportItem.DataObject(field).ToString 

    Catch ex As Exception 
     Return "" 
    End Try 
End Function 

Я назвал это для каждого имени поля в отчете

Смежные вопросы