Я создал список типов параметров, в котором я разрешил выбирать несколько значений. Я хочу использовать этот параметр в наборе данных. Я использовал значения в другом наборе данных с StoredProcdureName (?,?) В качестве параметра для SP. Проблема с этим фильтром заключается в том, что он показывает Selection, если я выбираю одно или несколько значений, но при передаче в sp он отправляет только одно значение. Как мне с этим справиться?

1
user3860775 18 Авг 2014 в 14:24
Опубликуйте код, пожалуйста
 – 
Robert
18 Авг 2014 в 14:39

1 ответ

Лучший ответ

Вы должны хотя бы опубликовать свою хранимую процедуру, чтобы мы могли видеть, как используется этот параметр. Параметры с несколькими значениями обрабатываются BIRT как массивы Java, которые не являются типом данных, распознаваемым хранимыми подпрограммами. Вот почему вы получаете только первый предмет.

Поэтому, предполагая, что этот параметр является фильтром SQL в предложении «IN», нам нужно передать его хранимой процедуре в виде строки, разделенной запятыми.

Объявите свой параметр набора данных как String и не связывайте его с параметром report , а вместо этого установите выражение значения по умолчанию, основанное на параметре отчета. В этом примере myMultivalueParam представляет числовое поле в вашей базе данных:

params["myMultivalueParam"].value.join(",");

Если myMultivalueParam представляет строку, нам нужно добавить кавычки:

params["myMultivalueParam"].value.join("','");

Затем используйте эту строку, разделенную запятыми, в своей хранимой процедуре.

3
Dominique 18 Авг 2014 в 15:15
Я вызвал хранимую процедуру, например {call usp_rpt_PartnerLoginReport (?)} И Used ListBox с опцией множественного выбора. Он принимает несколько значений, но при переходе к sp он передает только первое значение, и я обработал sp, чтобы выбрать многозначное значение.
 – 
user3860775
21 Авг 2014 в 10:12