Ограничение в запросах по условию.

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

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

Ответить
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Ограничение в запросах по условию.

Сообщение spark »

Суть вопроса вот в чем:
Есть логическая таблица в отчете, есть интерфейс с Чекбоксами для запуска этого отчета.
Можно ли как-нибудь сделать чтобы в зависимости от выбранного чекбокса в интерфейсе, включалось то или иное ограничение на логическую таблицу.
надеюсь изложил ясно... =)
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Сообщение 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.
Жду выхода Вселенная 2.12!
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

Если помечать можно только один чек бокс - тогда баундсы в самый раз. (Radio Button)

Если же необходимо различное сочетание чекбоксов, например первый плюс третий, то думаю в данном случае лучше всего Condition.
По выбранному чекбоксу либо накладываем PushCondition() либо нет.
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Сообщение spark »

Max_Fin
Читал про них, но что-то как-то не получилось у меня...
Они в ард-отчетах работают?
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Сообщение spark »

Алексей
Наверное это самое то... =)
спасибо
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Сообщение spark »

Алексей
Не работает у меня PushCondition() в отчете...
Пишет при компиляции, что нет такой функции tcNaznachenie(это у меня так кондиция называется)... =\

То есть саму логическую таблицу съедает без ошибок, а PushCondition() делать не хочет... =(
dp
Местный житель
Сообщения: 216
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Беларусь, Минск
Контактная информация:

Сообщение dp »

spark
tcNaznachenie
кондишин должен называться Naznachenie, а при его вызове использовать tcNaznachenie
dP
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение 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 ;
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Сообщение spark »

dp
Так и есть...
spark
Местный житель
Сообщения: 476
Зарегистрирован: 19 окт 2005, 13:38
Контактная информация:

Сообщение spark »

edward_K
О!!! Заработало... ссылку на таблицу не ставил дурень... =))
Спасибо огромное ВСЕМ!
Ответить