#crystal-reports #vb6 #crystal-reports-8.5
Вопрос:
У меня есть отчет Crystal Reports 8.5, в котором в качестве источника данных используется хранимая процедура. Эта хранимая процедура имеет несколько параметров, некоторые из которых являются необязательными и обязательными Null
при выполнении процедуры.
В VB6 я попытался очистить параметр, но затем Crystal Reports предлагает пользователю ввести значение. Затем я попытался установить его в Nothing
значение, но это приводит к ошибке недопустимого типа. Пример этой ParameterField
детали приведен в приведенном ниже коде.
Dim crApp As CRAXDRT.Application
Dim crRep As CRAXDRT.Report
Set crApp = New CRAXDRT.Application
Set crRep = crApp.OpenReport(ReportFile, 1)
'Option 1
crRep.ParameterFields(1).ClearCurrentValueAndRange '<-- This won't set it to Null but it clears the current value. User gets a prompt to enter a value.
'Option 2
crRep.ParameterFields(1).ClearCurrentValueAndRange
crRep.ParameterFields(1).AddCurrentValue Nothing '<-- Setting it to nothing gives an error at runtime
Итак, как задать параметр Null
во время выполнения?
Ответ №1:
Вы должны установить поле параметров равным Empty
.
crRep.ParameterFields(1).ClearCurrentValueAndRange
crRep.ParameterFields(1).AddCurrentValue Empty
Это значение будет установлено Null
при выполнении хранимой процедуры. Иногда вам даже приходится устанавливать его в Empty
то время как текущее значение уже есть Empty
. Потому что, когда вы Print
составляете отчет, он все еще может запрашивать у пользователя ввод.