Что может привести к тому, что раскрывающийся список (выберите) будет игнорировать его поле Значение? - PullRequest
1 голос
/ 09 августа 2011

У меня есть отчет с несколькими параметрами, среди которых CompanyID.Доступные значения поступают из набора данных с полем «Значение», для которого установлено «Значение», а для поля «Метка» - «Метка».Не совсем ракетостроение.Запрос выглядит так:

select null as Value, ' Any' as Label
union all
select CompanyID as Value, CompanyName as Label from core.Companies
order by Label

Хорошо, никаких сюрпризов.Когда я запускаю этот запрос, я получаю такие вещи, как

1506 Amalgamated Steel 
2341 Beson Industries
245  Carver Holdings 
etc....

Выглядит хорошо.Однако при просмотре HTML-кода, созданного в средстве просмотра отчетов, сгенерированный элемент select имеет упорядоченные целые числа для значений: 1,2,3,4 и т. Д., Поэтому фильтрация результатов по идентификатору компании не работает.

Что может вызвать это?Запрос возвращает правильные значения, значения заполняются в раскрывающемся списке, поле Значение для параметра устанавливается равным полю Значение из запроса. Они просто не имеют правильного значения в поле выбора / опции.

1 Ответ

0 голосов
/ 09 августа 2011

Я не могу воспроизвести это в службах отчетности, у меня это работает нормально.Мой запрос похож, хотя я всегда хочу, чтобы значение «Все» или «Любое», как вы упомянули, было в верхней части моего списка, чтобы пользователям не приходилось искать его.Я также не включаю ноль в качестве значения, я переводю ноль в значение 0:

SELECT
       1 As SortOrder,
       CompanyID as Value,
       Company as Label
FROM
       Core.Companies
UNION ALL
SELECT
       0 as SortOrder,
       0 as Value,
       "All" as Label
ORDER BY 
        'bring all / any to the top
        'then order the rest by company name
        SortOrder, 
        Label        

Это гарантирует, что ноль не будет включен в список результатов ... тогда в моем основном запросе запрос, который тянетданные, когда я хочу отфильтровать по идентификатору компании или все, что я делаю это:

SELECT
      ...
FROM
      Mytable
WHERE
      CompanyID = @CompanyID OR @CompanyID = 0    'handle one customer or all customers

Отчет работает нормально, и мой выбор имеет правильные значения ...

...