Фильтры в Create view

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Фильтры в Create view

Сообщение Espada »

Доброго дня. такой вопрос. появилась необходимость в Create view добавить пару фильтров, но проблема с их оформлением) например нужно получить номера накладных за 10-е число. пишу:

Код: Выделить всё

.Create view filtr
from Katsopr
where
((
10/03/2015 == katsopr.dsopr(noindex)
));
но чёта не хочет работать. я подозреваю, что не правильно оформлено, что-то... пробовал разные варианты.... но никак не получается. подскажите плиз кто знает как нужно правильно.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Фильтры в Create view

Сообщение Den »

Наберите в поиске date и увидите как народ пишет это дело
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Фильтры в Create view

Сообщение Espada »

Den писал(а):Наберите в поиске date и увидите как народ пишет это дело
Спасибо. Нашел) с датой получилось? а что писать если в место даты если мне нужно использовать другие поля для фильтрации, например Вид накладной. чтобы katsopr.vidsopr = "201"???
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Фильтры в Create view

Сообщение Irina_ »

Здравствуйте.
Условие Word(201) == KatSopr.VidSopr
И обращайте внимание на тип поля таблицы при написании условий. Т.е. например нельзя сравнивать поле целочисленного типа со значением символьного типа, как написали Вы в последнем сообщении.
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Фильтры в Create view

Сообщение Espada »

Irina_ писал(а):Здравствуйте.
Условие Word(201) == KatSopr.VidSopr
И обращайте внимание на тип поля таблицы при написании условий. Т.е. например нельзя сравнивать поле целочисленного типа со значением символьного типа, как написали Вы в последнем сообщении.
аааа.... всё спасибо) понял принцип )
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Фильтры в Create view

Сообщение Espada »

Тогда вот какой ещё вопрос: в списке накладных ставим фильтр по дате, потом плюсиком все выделяем. вопрос: можно-ли в Create view записать этот период?

Код: Выделить всё

.Create view filtr
from Katsopr
where
((
  date(10,03,2015) == katsopr.dsopr(noindex) and
  word(201) == katsopr.vidsopr(noindex)
));
в этом create view фильтр идёт за 10 число, а нам нужно чтобы фильтр становился за выбранный период: например с 1.03.2015 по 11.03.2015. но чтобы эти "грани" изменялись в зависимости от выбранного диапазона.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Фильтры в Create view

Сообщение Алексей »

как то так
.Create view filtr var dbeg,dend: date
from Katsopr
where
((
word(201) == katsopr.vidsopr
and dbeg <<= katsopr.dsopr
and dend >>= katsopr.dsopr
));

.begin
filtr.dbeg := date(...);
filtr.dend := date(...);
end.
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Фильтры в Create view

Сообщение Espada »

Алексей писал(а): .begin
filtr.dbeg := date(...);
filtr.dend := date(...);
end.
такой способ не подойдёт) если я правильно понимаю) dbeg и date мы сами не можем задать в коде, они динамические, т.е. каждый раз меняются. отчёт может формироваться за 1 день. за неделю, за месяц и тд... нужно чтобы оно как-то подставляло те даты, которые мы поставили в фильтре в списке накладных.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Фильтры в Create view

Сообщение RAJAH »

Espada писал(а):dbeg и date мы сами не можем задать в коде
Можем. RunDialog('C_COMMON::GetIntervalDates', dbeg, dend)
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Фильтры в Create view

Сообщение Irina_ »

Вообще многое зависит от цели, которую Вы хотите достичь.
Если Вы хотите обрабатывать все накладные за заданный период, то подойдет вариант, предложенный RAJAH . Но, если Вам надо обработать только часть накладных, учитывая дополнительные условия (например, по контрагенту или др.), дать пользователю самому сделать пометку нужных накладных, то лучше использовать другой вариант. Можно дать пользователю в интерфейсе ввести 2 даты (с проверкой на корректность), а потом использовать стандартный интерфейс выбора накладных L_SoprDoc::GetSomeKatSopr. И там делать выбор нужных накладных. Выбор сохраняется в таблице PICK. И остается пройти по ней и обработать сделанный выбор.
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Фильтры в Create view

Сообщение Espada »

Irina_ писал(а):Вообще многое зависит от цели, которую Вы хотите достичь.
Если Вы хотите обрабатывать все накладные за заданный период, то подойдет вариант, предложенный RAJAH .
да, мне нужно просто обработать данный за заданный период. сейчас пробую этот вариант.

Код: Выделить всё

.Create view filtr
from Katsopr
where
((
    word(201) == katsopr.vidsopr(noindex)and
    dbeg <<= katsopr.dsopr and
    dend >>= katsopr.dsopr
));
такой получается, но выкидывает ошибку, при компиляции : Ошибка: в баунде на таблицу не может быть более одного ограничения, отличного от ==.
может подскажете в чём проблема?
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Фильтры в Create view

Сообщение Irina_ »

Вынесите оба условия по датам за пределы двойной скобки.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Фильтры в Create view

Сообщение Den »

Вы нам наверное какую то часть вью показываете. потому как vidsopr+dsopr индекс подходящий есть , и не нужно там писать (noindex)
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Фильтры в Create view

Сообщение Алексей »

Именно. Я в примере убрал эти noindex, но автор почему то вернул их назад...
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Фильтры в Create view

Сообщение Espada »

Разобрался, как работает) теперь смогу много где использовать) спасибо)
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Ответить