Selection Formula

Xalet

Well-Known Member
08.08.2008
410
0
#1
Есть формула, которая создается из параметров и подается для DB.Search.

Field TE:=@texttotime("~DateE~");Field TS:=@texttotime("~DateS~");Field District:="~Location~";
SELECT(((TE)>=(ActDate))&((TS)=<(ActDate))&(UserLocation=District)

В общем все работает. Вопрос такой. Какое значение присвоить для District, чтобы нашло со всеми значениями UserLocation?

Пробовал туда * подсовывать, не срабатывает.
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
а почему
Field TE:=@texttotime("~DateE~"), а не
TE:=@texttotime("~DateE~")


по вопросу убрать из селекшн формулы упоминание о UserLocation, и получиться
SELECT(((TE)>=(ActDate))&((TS)=<(ActDate))
 

Xalet

Well-Known Member
08.08.2008
410
0
#3
а почему
Field TE:=@texttotime("~DateE~"), а не
TE:=@texttotime("~DateE~")
Вот чего не знаю, того не знаю. Не я их писал.


по вопросу убрать из селекшн формулы упоминание о UserLocation, и получиться
Про убрать я знаю, но это в данном случае сложнее будет.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#4
Что значит со всеми значениями? С любым? Тогда проверь поле на пустоту.
 

morpheus

скриптописец
07.08.2006
3 915
1
#6
TE:=@texttotime("~DateE~"); TS:=@texttotime("~DateS~"); District:="~Location~";
SELECT(((TE)>=(ActDate))&((TS)=<(ActDate))&@IsAvalivable( UserLocation )
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#7
xalet
Так убери условие. Зачем оно в таком случае?
 

Xalet

Well-Known Member
08.08.2008
410
0
#8
В общем чтобы понятнее было. Есть форма в которой вводятся даты и местоположение. Из этой формы берутся значения и присваиваются для соответственных в формуле. Ну вот если вписать там "Все локации", надо соответственно найти доки с любыми значениями для локэйшн. То что вы предлагали это реализуемо, но это модификация исходной формулы (а они берутся из шаблонов в зависимости от типов отчета). Т.е. реально канешн написать все это чтобы работало... Но самый простой вариант подсунуть значение для локэйшн с которым бы нашло все. Хотя по вашим ответам складывается впечатление, что так просто сделать не получится.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#9
Да, нужно формулу менять.
Есть еще собака @Matches. Не знаю, поможет ли она тебе. :lol:
 

Xalet

Well-Known Member
08.08.2008
410
0
#10
Решил. Вот таким вот способом, если кому-то понадобится нечто похожее:

Field TE:=@texttotime("~DateE~");Field TS:=@texttotime("~DateS~");Field District:="~Location~";
SELECT(((TE)>=(ActDate))&((TS)=<(ActDate))&(@IF(District="*";@true;UserLocation= District)))

Но все равно всем спасибо за советы.
 

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 333
4
#11
Field TE:=@texttotime("~DateE~");Field TS:=@texttotime("~DateS~");Field District:="~Location~";
SELECT(((TE)>=(ActDate))&((TS)=<(ActDate))&(@IF(District="*";@true;UserLocation= District)))
Код:
TE:=@texttotime("~DateE~");
TS:=@texttotime("~DateS~");
District:="~Location~";
SELECT(((TE)>=(ActDate))&((TS)=<(ActDate)) & @Matches(UserLocation;District)
Ы?