|
v7: УстановитьФильтр() в ИТЗ |
☑ |
0
botman4
01.06.17
✎
17:22
|
Есть вот такая ИТЗ
Пусть выбГод = 1999
Тут года выпуста Авто, вношу год авто и мне покажут модели которые выпускались в этом интервале лет.
хочу получить строки в которых сработает условие:
выбГод >= ГодНач и выбГод <= ГодКон
БД.НоваяКолонка("ГодНач");
БД.НоваяКолонка("ГодКон");
БД.ДобавитьИндекс("Год", "ГодНач, ГодКон");
спГодМин = СоздатьОбъект("СписокЗначений");
спГодМин.ДобавитьЗначение(0); // ГодНач
спГодМин.ДобавитьЗначение(выбГод); // ГодКон
спГодМакс = СоздатьОбъект("СписокЗначений");
спГодМакс.ДобавитьЗначение(выбГод); // ГодНач
спГодМакс.ДобавитьЗначение(ДатаГод(ТекущаяДата())); /// ГодКон
БД.УстановитьФильтр(спГодМин, спГодМакс, "Год");
БД.Выгрузить(ТзМодели, "Год");
По ГодНач срабатывает, а по ГодКон нет, подскажите пож в чем может быть затык ?
|
|
1
Ёпрст
гуру
01.06.17
✎
17:33
|
ДатаГод ?
Ясен пень, что не срабатывает
|
|
2
Ёпрст
гуру
01.06.17
✎
17:33
|
там же число будет, типа 17.
|
|
3
Ёпрст
гуру
01.06.17
✎
17:33
|
ну и 0 пихать заместо пустой даты, тоже, сомнительно
|
|
4
botman4
01.06.17
✎
18:34
|
Если делаю Индекс по одной колонке, по ГодКон БД.ДобавитьИндекс("Год", "ГодКон"); БД.УстановитьФильтр(выбГод, ДатаГод(ТекущаяДата()), "Год");
все отрабатывает нормально, а по двум колонкам не получается пока 8(
пробовал писать не 0, а 1000 и не ДатаГод(ТекущаяДата()), а 2017, все равно.
|
|
5
Ёпрст
гуру
02.06.17
✎
09:26
|
(4) У тебя в значениях индекса - дата, а ты её числом года пытаешься фильтровать. Не находишь ли противоречия ?
|
|
6
botman4
06.06.17
✎
12:12
|
Типы данных я как только не менял, и приводил оба столбца к дате. Пробовал приводил оба к числу. Проверял в каждой строке типы. нифига не получилось... буксанул где-то и все 8( обошел костылем - сделал через два фильтра, поочередно делал - все отрабатывает как положено, а сразу оба - нифига. Вопрос закрыл, возвращаться пока не хочу. Спасибо за помощь.
|
|