powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / RS - Как добавить пункт "все" в параметр на основе запроса?
17 сообщений из 17, страница 1 из 1
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744414
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаю датасет и указываю его в качестве источника данных для параметра.

В момент открытия отчета параметр выдает выпадающий лист следующего вида:

< select a value >
item 1
item 2
item 3
item 4


Однако, RS почему-то в обязательном порядке заставляет выбрать один пункт из списка, т.е., не позволяет "выбрать всех" из списка.

Как это обойти?
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744423
Фотография Дэр Пароль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно оставить возможность выбора пустого значения.
Соответственно необходимо правильно сформировать условие "where" в запросе.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744455
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почемуто не работает.
С другими параметрами работает без проблем, а вот с этим, основанном на запросе - нет.

Выставил допустимость пустого значения и NULL'а.
И то и то обработал в запросе.

Результата нет.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744472
Фотография Дэр Пароль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите профайлером что на сервер идет.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744485
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как?

у меня RS2005
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744503
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот, кстати, что стоит в rdl:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    <ReportParameter Name="org">
      <DataType>String</DataType>
      <Nullable>true</Nullable>
      <DefaultValue>
        <Values>
          <Value />
        </Values>
      </DefaultValue>
      <AllowBlank>true</AllowBlank>
      <Prompt>Выбрать по конкретной организации</Prompt>
      <ValidValues>
        <DataSetReference>
          <DataSetName>Organs</DataSetName>
          <ValueField>Organization_Name</ValueField>
          <LabelField>Organization_Name</LabelField>
        </DataSetReference>
      </ValidValues>
    </ReportParameter>
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744701
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе, получился другой вариант - установил для параметра многозначность и обработал его фильтром

Теперь лопух открывается с квадратиками, но столкнулся со следующей проблемой:

- у меня в визуалстудии квадратики по умолчанию отмечены (выставил значения по умолчанию из того же запроса), а а сервере открываются пустыми.
- у меня открывается верхним уровнем "Выделить все", а на сервере - этого пункта нет.

Что можно сделать?
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744739
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам же нашел ответ:

http://technet.microsoft.com/ru-ru/library/aa337292.aspxПараметр «Выбрать все» был отключен в SQL Server 2005 с пакетом обновления 1 (SP1) и восстановлен в SQL Server 2005 с пакетом обновления 2 (SP2).
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744812
micaelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МихаилККак это обойти?
Либо multivalue (и сопутствующий геморрой). Либо заранее определенное значение в запросе для параметра "все".

Allow null не поможет - на query-based запросах он игнорируется. Я так понимаю, что это by design.

--
Можно попробовать написать свой IDbCommand.ExecuteReader (обернуть существующий и подсунуть в возвращаемый им набор данных значение "все"). Но это только идея, я не пробовал. 2LevS - если прочитаете, покритикуйте, плс.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34744918
rus77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По моему вообще плохо реализована панель параметров,из-за этого я сделал свою на старом добром методе IDC

Datasource:***
Username: ***
Password:***
Template:report_air2.htm
SQLStatement:
+select MANUFSUPPLNR,DESCRIPTIONMANUFSUPPL from MANUFACTURERSUPPLIER where scii(manufsupplnr)<97

Datasource прописываем на сервере как ODBC источник
и вот этот мой запрос select MANUFSUPPLNR,DESCRIPTIONMANUFSUPPL from MANUFACTURERSUPPLIER where scii(manufsupplnr)<97
будет являться для отчета входными параметрами
прикладываю файл в котором видно ниспадающее меню
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34746164
LevS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Свой IDbCommand.ExecuteReader - это слишком :)

Allow null для query based параметров не игнорируется, нужно лишь для значения Null иметь нормальную метку (label).

Привожу пример (необходима БД Northwind). Обратите внимание, что label и value берутся из разных полей

---
This posting is provided "AS IS" with no warranties, and confers no rights.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34746342
micaelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LevSAllow null для query based параметров не игнорируется, нужно лишь для значения Null иметь нормальную метку (label).

Привожу пример

У Вас значение null есть в резалтсете (select distinct country as value, country as label from customers union all select null, '** ALL **'). Тут все понятно, я это в своем ответе назвал "заранее определенное значение в запросе для параметра 'все'" (ну может не очень внятно выразился, пардон).

А интересно было (мне интересно, уж не знаю, как топикстартеру) добиться, чтобы query-based параметр принимал значение null для параметра ALL, если его нет в возвращаемом запросом параметра резалтсете. Ну или не null, а другое предопределенное значение. Хотя null наиболее подходит в данном случае.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34749407
LevS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понимаю, в чем проблема, если у вас есть некоторое значение с семантикой "Все"?

---
This posting is provided "AS IS" with no warranties, and confers no rights.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34750612
МихаилК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LevSНе понимаю, в чем проблема, если у вас есть некоторое значение с семантикой "Все"?


В этом случае проблем, естественно, нет.
Однако, иногда так бывает, что добавить значение "Все" в исходную таблицу не представляется возможным. Как в моем случае.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34750871
ASa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МихаилК LevSНе понимаю, в чем проблема, если у вас есть некоторое значение с семантикой "Все"?


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

А добавить
Код: plaintext
union select Null, 'ВСЕ'

По-моему проблемы нет. Сам для 2000-го значение "ВСЕ" под разными значениями делал.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34751095
micaelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ASa[quot МихаилК]А добавить
Код: plaintext
union select Null, 'ВСЕ'
По-моему проблемы нет. Сам для 2000-го значение "ВСЕ" под разными значениями делал.да все так и делают :).
Просто не всегда это возможно - прилепить в самом отчете юнионом select null, 'all'. Источником значений для параметра может быть и хранимка. И необязательно хранимка на MS SQL :)

А даже когда возможно - не всегда удобно. Если один отчеты лабаешь - замечательно, а если командой - значит надо в регламенте описывать этот момент, потом проверять, что люди не забыли это сделать.

Вот и плачемся мы с МихаилК - как бы было здорово, как бы хорошо, если бы флажок allow null позволял для query-based параметра выбрать значение null, даже если его и нет в возвращаемых запросом данных.
...
Рейтинг: 0 / 0
RS - Как добавить пункт "все" в параметр на основе запроса?
    #34751790
ASa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен... не подумавши... Может быть... Т.е. если Null разрешен для Query-based параметра, то он автоматом должен добавляться к полученному списку из квери. А если там значение Null уже есть, то не добавлять... Опять же условности.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / RS - Как добавить пункт "все" в параметр на основе запроса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]