Bounds не отрабатывает

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

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

Ответить
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Bounds не отрабатывает

Сообщение BlazeBio »

При выборе фильтра из выпадающего списка по формату или линии(b1,b3,b6) фильтрация происходит нормально. А если выбрать группу, то работает только отдельный фильтр на группу(b2), и то коряво вследствие жёсткой подцепки. Привы выборе других комбинаций ничего не происходит - весит фильтр только на группу. Для баундсов использую PopBounds и PushBounds. Возможно ли как-то обыграть ситуацию, чтобы фильтр с группой всё-таки работал? Ниже приведено view.

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

create view
var status,linia_filter,grup_filter,format_filter: word;
	x:integer;
	linia,gruppa,etalon,format,titlenrec:comp;
(Vsego,meash)
 as select (Fdec+Sdec+Tdec),kated.abbr,katpodr.name,pptitle.npp,*
from PPKATSTANMC,PPKATSTAN,PPSTATUS,PPLINE,PPTITLE(PPTITLE02),PPSPECIF,//PPSPECIF(PPSPECIF13),
kated,katpodr,groupmc,PPGRFORMAT,ppstatus ps,katmc,ppkatstanmc,katpodr kpodr,x$users,katotped,
ppline pl,groupmc gr(groupmc03),ppgrformat fr
where((	pptitle.atl_nrec==ppspecif.cpptitle
		and pptitle.cpodr==katpodr.nrec
		and ppspecif.ckated==kated.nrec
		and pptitle.cppstatus==ppstatus.atl_nrec
   		and ppspecif.cppline==ppline.atl_nrec //and (linia=ppspecif.cppline)
		and ppspecif.cppkatstan==ppkatstan.atl_nrec
		and ppkatstan.cgroupmc==groupmc.nrec
  		and ppspecif.CPPGRFORMAT==PPGRFORMAT.atl_nrec
   		and ppkatstan.atl_nrec==ppkatstanmc.cppkatstan
   		and ppkatstanmc.cmc==katmc.nrec
   		and ppspecif.cpodr==kpodr.nrec
   		and pptitle.atl_owner==x$users.atl_nrec
		and katmc.nrec==katotped.cmcusl
		and 1==katotped.prmc
		and 1==katotped.akt))//;
order by ppspecif.npp
bounds b1 = linia ==ppspecif.cppline
		    and titlenrec==ppspecif.cpptitle
            ordered by ppspecif.npp //;//,ppspecif.cpptitle
bounds b2 = gruppa==ppkatstan.cgroupmc
	        and ppspecif.cppkatstan/==ppkatstan.atl_nrec
 		    and	titlenrec==ppspecif.cpptitle
    	    ordered by ppspecif.npp
bounds b3 = format==ppspecif.cppgrformat
		    and titlenrec==ppspecif.cpptitle
            ordered by ppspecif.npp
bounds b4 = gruppa==ppkatstan.cgroupmc
	        and ppspecif.cppkatstan==ppkatstan.atl_nrec
   			and linia==ppspecif.cppline//(noIndex)
 		    and	titlenrec==ppspecif.cpptitle
    	    ordered by ppspecif.npp
bounds b5 = gruppa==ppkatstan.cgroupmc
	        and ppspecif.cppkatstan/==ppkatstan.atl_nrec
   			and format==ppspecif.cppgrformat(noIndex)
 		    and	titlenrec==ppspecif.cpptitle
    	    ordered by ppspecif.npp
bounds b6 = linia ==ppspecif.cppline
			and format==ppspecif.cppgrformat(noIndex)
		    and titlenrec==ppspecif.cpptitle
            ordered by ppspecif.npp
bounds b7 = gruppa==ppkatstan.cgroupmc
			and linia ==ppspecif.cppline(noIndex)
   			and format==ppspecif.cppgrformat(noIndex)
	        and ppspecif.cppkatstan/==ppkatstan.atl_nrec
 		    and	titlenrec==ppspecif.cpptitle
    	    ordered by ppspecif.npp
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Bounds не отрабатывает

Сообщение Den »

"
...
bounds b2 = gruppa==ppkatstan.cgroupmc
and ppspecif.cppkatstan/==ppkatstan.atl_nrec
and titlenrec==ppspecif.cpptitle
..
"

В баундсе можно указывать реляционные связи только на один узел.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Bounds не отрабатывает

Сообщение BlazeBio »

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

Re: Bounds не отрабатывает

Сообщение Den »

Ну вообщем то так и делают с помощью addbounds такие вещи. Не забудьте только после наложение n - addbounds проверять попадает ли на условия наложенные текущуя запись.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Bounds не отрабатывает

Сообщение BlazeBio »

IsValidNew? Вы думаете сработает? У меня в браузе должны отражаться позиция (спецификация(ppspecif)) в каждой спецификации есть мц(ppkatstan) и группа(groupmc). Так вот у меня спецификация ссылается на мц, а мц на группу. Если я наложу на группу, то у меня просто не будет видно названия группы в спецификации, а на МЦ не знаю как, у меня их может быть несколько с такой группой. Как можно обойти этот недостаток МЦ?
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Bounds не отрабатывает

Сообщение Den »

Вы хотите что ли pptitle ограничивать по условию определенному ? (в данном случае pptitle со спецификацией только по определенной группе МЦ.. )

Тогда что то вроде :

bounds b1 = pptitle.atl_nrec/==ppspecif.cpptitle
bounds b2 = ppspecif.cppkatstan/==ppkatstan.atl_nrec
and gruppa==ppkatstan.cgroupmc
...
PushBounds(tbb1) ;
addBounds(tbb2) ;
ReReadRecord;
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Bounds не отрабатывает

Сообщение BlazeBio »

отображается нужная группа, но один раз при первом выборе группы, и то только при первом открытии окна. А другие позиции остаются, только в них пустые поля МЦ и группы. Чтобы группа отобразилась нужно закрыть интерфейс и открыть окно заново. Тогда опять отображется нужная группа с МЦ, а другие позиции остаются с пустыми МЦ и группами. :?:
Ответить