Доброго дня. такой вопрос. появилась необходимость в Create view добавить пару фильтров, но проблема с их оформлением) например нужно получить номера накладных за 10-е число. пишу:
.Create view filtr
from Katsopr
where
((
10/03/2015 == katsopr.dsopr(noindex)
));
но чёта не хочет работать. я подозреваю, что не правильно оформлено, что-то... пробовал разные варианты.... но никак не получается. подскажите плиз кто знает как нужно правильно.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Den писал(а):Наберите в поиске date и увидите как народ пишет это дело
Спасибо. Нашел) с датой получилось? а что писать если в место даты если мне нужно использовать другие поля для фильтрации, например Вид накладной. чтобы katsopr.vidsopr = "201"???
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Здравствуйте.
Условие Word(201) == KatSopr.VidSopr
И обращайте внимание на тип поля таблицы при написании условий. Т.е. например нельзя сравнивать поле целочисленного типа со значением символьного типа, как написали Вы в последнем сообщении.
Irina_ писал(а):Здравствуйте.
Условие Word(201) == KatSopr.VidSopr
И обращайте внимание на тип поля таблицы при написании условий. Т.е. например нельзя сравнивать поле целочисленного типа со значением символьного типа, как написали Вы в последнем сообщении.
аааа.... всё спасибо) понял принцип )
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Тогда вот какой ещё вопрос: в списке накладных ставим фильтр по дате, потом плюсиком все выделяем. вопрос: можно-ли в 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. но чтобы эти "грани" изменялись в зависимости от выбранного диапазона.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Алексей писал(а):
.begin
filtr.dbeg := date(...);
filtr.dend := date(...);
end.
такой способ не подойдёт) если я правильно понимаю) dbeg и date мы сами не можем задать в коде, они динамические, т.е. каждый раз меняются. отчёт может формироваться за 1 день. за неделю, за месяц и тд... нужно чтобы оно как-то подставляло те даты, которые мы поставили в фильтре в списке накладных.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Вообще многое зависит от цели, которую Вы хотите достичь.
Если Вы хотите обрабатывать все накладные за заданный период, то подойдет вариант, предложенный RAJAH . Но, если Вам надо обработать только часть накладных, учитывая дополнительные условия (например, по контрагенту или др.), дать пользователю самому сделать пометку нужных накладных, то лучше использовать другой вариант. Можно дать пользователю в интерфейсе ввести 2 даты (с проверкой на корректность), а потом использовать стандартный интерфейс выбора накладных L_SoprDoc::GetSomeKatSopr. И там делать выбор нужных накладных. Выбор сохраняется в таблице PICK. И остается пройти по ней и обработать сделанный выбор.
Irina_ писал(а):Вообще многое зависит от цели, которую Вы хотите достичь.
Если Вы хотите обрабатывать все накладные за заданный период, то подойдет вариант, предложенный RAJAH .
да, мне нужно просто обработать данный за заданный период. сейчас пробую этот вариант.
.Create view filtr
from Katsopr
where
((
word(201) == katsopr.vidsopr(noindex)and
dbeg <<= katsopr.dsopr and
dend >>= katsopr.dsopr
));
такой получается, но выкидывает ошибку, при компиляции : Ошибка: в баунде на таблицу не может быть более одного ограничения, отличного от ==.
может подскажете в чём проблема?
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!