|
Можно ли составить вопрос типа Для Каждого ИЗ | ☑ | ||
---|---|---|---|---|
0
belka4_4
02.03.16
✎
18:53
|
Есть Список дат и список пар (студенческие пары) (оба передаются в запрос как список значений). Надо чтобы для каждого набора Дата+Пара Выполнялось условие. Этот запрос - запрос для динамического списка на форме, который выводит аудитории, в которых нет мероприятия.
Делала так: ВЫБРАТЬ РАЗЛИЧНЫЕ ЗанятостьПомещений.Помещение КАК Помещение, ИЗ РегистрСведений.ЗанятостьПомещений КАК ЗанятостьПомещений ГДЕ ЗанятостьПомещений.Дата В(&СписокДат) И ЗанятостьПомещений.Пара В(&СписокПар) И ЗанятостьПомещений.Мероприятие.Ссылка ЕСТЬ NULL И ЗанятостьПомещений.Помещение.КоличествоПосадочныхМест >= &КоличествоПосадочныхМест В регистре 3 измерения:дата,пара,помещение и ресурс Мероприятие. Если ресурс заполнен - помещение занято. Например ауд. 210 занята 04.03, 11.03, 18.03 в 11.30-13.00 (это пара - перечисление) Если в список дат добавить например 05.03, когда ауд. 210 свободна, то она попадёт в динамический список. Аналогично с парой. А надо чтобы аудитория была свободна для всех наборов дата-пара. Пробовала вложенным запросом- ерунда какая-то получилась, видимо не так пробовала. Сильно не пинать. Только учусь. |
|||
1
sash-ml
02.03.16
✎
18:58
|
Выбор когда ЗанятостьПомещений.Мероприятие.Ссылка ЕСТЬ NULL тогда "Свободно" иначе "Занято" конец как СтатусПомещения
|
|||
2
HardBall
02.03.16
✎
19:07
|
(0) Периодический регистр сведений с периодичностью день
Измерения: Помещение, Пара По моему этого достаточно. |
|||
3
Garykom
гуру
02.03.16
✎
19:26
|
(0) А дату то выводить забыла? Кроме помещения.
Пусть запрос возвращает список (дата, помещение) свободные И этот результат уже обрабатываешь повторно как хочется отбрасывая "лишние даты". |
|||
4
belka4_4
02.03.16
✎
19:32
|
(2) нет необходимости хранить прошлые данные поэтому регистр не периодический. вопрос не в этом
(3) так у меня если помещение хотя бы одну из дата-пара занято, то его надо отбросить. а что мне даст отбрасывание дат? |
|||
5
belka4_4
02.03.16
✎
19:35
|
http://pixs.ru/showimage/Bezimyanni_4870700_20930921.jpg
надо отсюда удалить 210 |
|||
6
Garykom
гуру
02.03.16
✎
19:40
|
(4) т.е. передаешь дни и номера пар и нужно вернуть свободные в эти дни и в эти именно пары кабинеты?
запрос двойной делай, сначала находишь все свободные (дни, пары, помещения) по дням нужным а затем среди результатов выбираешь свободные с нужными парами и возвращаешь только помещения |
|||
7
belka4_4
02.03.16
✎
19:56
|
Заработало так:
ВЫБРАТЬ РАЗЛИЧНЫЕ ЗанятостьПомещений.Помещение.Ссылка КАК Помещение, ЗанятостьПомещений.Помещение.Кафедра.Ссылка КАК Кафедра ИЗ РегистрСведений.ЗанятостьПомещений КАК ЗанятостьПомещений ГДЕ ЗанятостьПомещений.Дата В(&СписокДат) И ЗанятостьПомещений.Пара В(&СписокПар) И ЗанятостьПомещений.Помещение.КоличествоПосадочныхМест >= &КоличествоПосадочныхМест И НЕ ЗанятостьПомещений.Помещение.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ЗанятостьПомещений.Помещение.Ссылка КАК Помещение ИЗ РегистрСведений.ЗанятостьПомещений КАК ЗанятостьПомещений ГДЕ ЗанятостьПомещений.Дата В (&СписокДат) И ЗанятостьПомещений.Пара В (&СписокПар) И ЗанятостьПомещений.Помещение.КоличествоПосадочныхМест >= &КоличествоПосадочныхМест И НЕ ЗанятостьПомещений.Мероприятие.Ссылка ЕСТЬ NULL ) Но может есть что-то более оптимальное? |
|||
8
belka4_4
02.03.16
✎
20:17
|
Вот только с динамическим списком не работает((
Устанавливаю параметры. Списки значений такие же как при тесте в консоли запросов, а всё равно 210 появляется. ПомещенияНаВыбор.Параметры.УстановитьЗначениеПараметра("КоличествоПосадочныхМест",КоличествоПосадочныхМест); ПомещенияНаВыбор.Параметры.УстановитьЗначениеПараметра("СписокДат",ДатыСписок); ПомещенияНаВыбор.Параметры.УстановитьЗначениеПараметра("СписокПар",ПарыСписок); |
|||
9
belka4_4
02.03.16
✎
21:00
|
Для разного порядка значений в списке значений динамический список обрабатывается по-разному. В консоли запросов всё ок=(
|
|||
10
HardBall
03.03.16
✎
10:04
|
Вам следует задаться вопросом зачем в регистре "Занятость помещений" хранить записи о незанятых. И все станет на свои места.
|
|||
11
belka4_4
03.03.16
✎
13:22
|
(10)
Затем, что некоторые помещения служебные или ремонтируются и не могут быть использованы для проведения мероприятий. В регистре только те, которые заняты или могут быть заняты. Искать все подходящие из справочника, записей о которых на определённую дату и пару нет в регистре не очень хорошо. Проблема с динамическим списком решилась. Оказалось динамический список по-особому воспринимает передаваемый параметр, а точнее не воспринимает список значений как список, а берёт только первое значение. Нужно было выгрузить в массив. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |