![]() |
#4 |
Участник
|
Цитата:
Сообщение от Corsar
![]() Собственно вопрос не по коду, а по Relation. Там есть две таблички : "master" tutorial_Form_Dynalink1 и "slave" tutorial_Form_Dynalink2. В обеих таблицах есть поля VendAccount (EDT-> VendAccount), ItemId (EDT-> ItemId)
на tutorial_Form_Dynalink2 создан Relation tutorial_Form_Dynalink1 (validate=YES) tutorial_Form_Dynalink2.VendAccount==tutorial_Form_Dynalink1.VendAccount tutorial_Form_Dynalink2.ItemId == tutorial_Form_Dynalink1.ItemId Просто не понимаю , почему не происходит "validation" (данные во второй таблице не зависят от данных в основной таблице не смотря на существующий Relation) ? В вашем примере вы просто не можете физически ввести в поля VendAccount и ItemId в таблице tutorial_Form_Dynalink2 значения, которые бы удовлетворяли значениям полей в записях из tutorial_Form_Dynalink1: после ввода значения поля ItemId вы получаете пару ['', 'Стол'], которая не встречается в tutorial_Form_Dynalink1; если начать вводить с поля VendAccount, то вы получите пару ['3000', ''], которая тоже не встречается в master-таблице. Именно поэтому ядро не проверяет такие relation'ы, когда прописано более одной связи типа "нормально"; проверяются лишь relation'ы с одной связью типа "нормально" и (опционально) связями типа "поле фиксировано" и/или "поле ссылки фиксировано". Реализовать нужную вам проверку можно лишь программно - где-нить в validateWrite(). |
|
|
За это сообщение автора поблагодарили: Corsar (1). |