Страница 1 из 1
Ограничение в запросах по условию.
Добавлено: 18 май 2006, 18:19
spark
Суть вопроса вот в чем:
Есть логическая таблица в отчете, есть интерфейс с Чекбоксами для запуска этого отчета.
Можно ли как-нибудь сделать чтобы в зависимости от выбранного чекбокса в интерфейсе, включалось то или иное ограничение на логическую таблицу.
надеюсь изложил ясно... =)
Добавлено: 18 май 2006, 20:41
Max_Fin
Почитайте про Bounds
PushBounds, PopBounds, ResetBounds, AddBounds, SubBouns
Код: Выделить всё
interface MY;
...
create view
as select *
from PlPor
where
((
Word(1) == PlPor.TiDk
))
Bounds byDesCr CurDesCr == PlPor.DesCr;
....
HandleEvent
cmCheckField:
{
case CurField of
#wPar:
{
if (wPar and coFltDesCr) = coFltDesCr
{
AddBounds(tibyDesCr);
}
else
{
SubBounds(tibyDesCr);
}
}
end;
}
end;
end.
Добавлено: 19 май 2006, 05:55
Алексей
Если помечать можно только один чек бокс - тогда баундсы в самый раз. (Radio Button)
Если же необходимо различное сочетание чекбоксов, например первый плюс третий, то думаю в данном случае лучше всего Condition.
По выбранному чекбоксу либо накладываем PushCondition() либо нет.
Добавлено: 19 май 2006, 12:19
spark
Max_Fin
Читал про них, но что-то как-то не получилось у меня...
Они в ард-отчетах работают?
Добавлено: 19 май 2006, 12:34
spark
Алексей
Наверное это самое то... =)
спасибо
Добавлено: 19 май 2006, 15:28
spark
Алексей
Не работает у меня PushCondition() в отчете...
Пишет при компиляции, что нет такой функции tcNaznachenie(это у меня так кондиция называется)... =\
То есть саму логическую таблицу съедает без ошибок, а PushCondition() делать не хочет... =(
Добавлено: 19 май 2006, 17:04
dp
spark
tcNaznachenie
кондишин должен называться Naznachenie, а при его вызове использовать tcNaznachenie
Добавлено: 19 май 2006, 18:16
edward_K
.create view vpers
as select persons.fio,persons.tabnmb
where (( 'æ' == Persons.ISEMPLOYEE ))
bounds byFio = 'æ' == Persons.ISEMPLOYEE
ordered by Persons.ISEMPLOYEE,persons.fio
bounds bytabn = 'æ' == Persons.ISEMPLOYEE
ordered by Persons.ISEMPLOYEE,persons.tabnmb
;
wtyp:=1 ;
case wtyp of
0: vpers.PushBounds(vpers.tbbyfio) ;
else vpers.PushBounds(vpers.tbbytabn) ;
end ;
Добавлено: 20 май 2006, 16:16
spark
dp
Так и есть...
Добавлено: 20 май 2006, 16:17
spark
edward_K
О!!! Заработало... ссылку на таблицу не ставил дурень... =))
Спасибо огромное ВСЕМ!