Страница 1 из 1

Борьба с размножением строк.

Добавлено: 12 Май 2006, 7:33
SSTA
Здравствуйте.
CW 6.1 9032 ABC TPS

Имеем 2 таблицы:

ААА File1 ...
KeyCod1 Key(Cod1)...
record
Cod1 long
Cod2 long
...
end
end

BBB File2 ...
KeyCod1 Key(Cod1)...
record
Cod1 long
Name1 string
....
end
end

Связь в Table Scheme по Relaitionship Custom AAA:Cod1 = BBB:Cod1 (хотя пробовал и как Related по dct)

Обработка:
Browse таблицы ААА по KeyCod1 + Additional Sort Field по BBB:Name. Так вот: с доп. сортировкой записи в browse плодятся при скролинге вверх и вниз, пр PgDown, PgUp, CtrlPgDn и CtrlPgUp все восстанавливается. Естественно, при отсутствии Add Sort Field все нормально.
Чего ей надобно?
Спасибо
Александр Т.

Добавлено: 12 Май 2006, 9:56
Игорь Столяров
Ей надобно наличие Primary Key в таблицах ... ;)

Добавлено: 15 Май 2006, 5:15
SSTA
Безобразия в browse закончились, но сортировка по Add Sort Field не работает (ради чего, собственно, все и затевалось) как я понимаю, в силу уникальности primary ключа. То есть по primary key таблицы ААА записи располагаются в жестком порядке и Add Sort Fielld'у нечего сортировать. Так получается?
А.Т.

Добавлено: 15 Май 2006, 7:26
Игорь Столяров
Нет. Никто не говорил о том, что нужно обязательно сортировать записи в Browse по Primary Key. Он должен быть в таблицах (для того, что бы при построении Browsу шаблон мог однозначно идентифицировать записи и избежать дублирования строк в списке) - а сортировать записи в Browse Вы можете по любому своему ключу, в т.ч. и с Add Key ...

Добавлено: 15 Май 2006, 7:51
SSTA
Раз по любому, то и по никакому тоже, стало быть...
Усложняю задачу... На самом деле в browse 3 закладки (ну, там, разные фильтровые условия и пр.). Первая закладка прекрасно правил слушается, сортируется как надо (без какого бы то ни было ключа, только по Add Sort Field), а следующие (2 и 3) закладки начинают чудить, то есть двоить записи при условиях, одинаково описанных в Conditional Behaviour для з. 1, 2 и 3. Если в Init указано Select(?Tab2), то хорошо себя ведет соответственно, Tab2 и тд.

Добавлено: 15 Май 2006, 8:19
Игорь Столяров
Никогда не сталкивался ... :)
Проверь и установи опцию Global -> Classes -> Browse -> Configure -> Active Invisible
(т.е. установи заполнение списков при инициализации на нивидимых закладках).

Добавлено: 15 Май 2006, 8:46
Andrew™
Игорь Столяров писал(а):Ей надобно наличие Primary Key в таблицах ... ;)

либо я отстал от жизни, ОБЯЗАТЕЛЬНАЯ уникальность в ключе для Browse нужна была только при работе с SQL, для TPS можно и без этого было работать.

Добавлено: 15 Май 2006, 20:23
lsgsoftware
Попробуй так
В точке ?CurrentTab(от Coditional Behavior)
добавить код
clear(xxx:record)
brw1.resetfrombuffer()

Добавлено: 16 Май 2006, 3:05
SSTA
lsgsoftware писал(а):Попробуй так
В точке ?CurrentTab(от Coditional Behavior)
добавить код
clear(xxx:record)
brw1.resetfrombuffer()
Спасибо, помогло.