06.07.2005, 15:02 | #1 |
Участник
|
отслеживание существования записей в подчиненной таблице
Есть форма, на ней 2 грида:
в один выводится главный источник данных, в другой -подчиненный Вопрос: как сделать так, чтобы невозможно было завести запись в главном источнике, но не завести в подчиненном(хотя бы 2 записи в подчиненном должны быть заведены). Напрашивается : отслеживать перемещение в строках "главного" грида и проверять заведены ил записи. У DS есть метод leaverecord, который по идее должен срабатывать именно при переходе к иной записи(Ax 2.5), но почему-то он не срабатывает. Есть идеи почему? Можно конечно обзавестись переменными и на active все отслеживать, но удобней ест-но было бы на leaverecord пока запись является текущей. Можно еще все это по закрытии формы проверять.., но хотелось бы все делать сразу, Если что-то подобное обсуждалось - тыркните носом или скажите где можно в стандартной функциональности что-либо такое глянуть. Спасибо. |
|
06.07.2005, 16:36 | #2 |
Участник
|
а чем метод active() не устраивает?
|
|
06.07.2005, 16:45 | #3 |
Участник
|
AXDVS, active() например срабатывает и при открытии формы с гридом на каждой записи этого грида - и что ты будешь делать с этими проверками в таком режиме?
kitty, т.к. Вы ставите вопрос так: "как сделать так, чтобы невозможно было завести запись", то напрашивается решение повесить проверку на write() основной таблицы. |
|
06.07.2005, 16:57 | #4 |
Участник
|
тк запись после создания/редактирования в основном гриде должна сначала сохраниться, а потом только мы можем перейти к подчиненному Ds и там редактировать /создавать записи, то write к сожалению не прокатывает .
|
|
06.07.2005, 17:05 | #5 |
Модератор
|
А если прописать relation и свойство validate поставить в Yes?
С Уважением, Георгий. |
|
06.07.2005, 17:15 | #6 |
Участник
|
Георгий, обратите внимание на условие: нужно чтобы было МИНИМУМ 2 ПОДЧИНЕННЫХ ЗАПИСИ ! Через validate=yes это не решается.
|
|
06.07.2005, 17:37 | #7 |
Модератор
|
Ах, да! Прошу извинить, вспылил, был неправ!
Странная постановка задачи какая-то. Тогда согласен с Вами - validateWrite - самое оно. Но если сначала создается папа, которго нельзя создать, пока нет как минимум 2х детей, которых невозможно создать без папы, то что-то тут не так, имхо... может не прокатить. А нельзя поменять постановку задачи? С Уважением, Георгий |
|
06.07.2005, 17:43 | #8 |
Moderator
|
При такой постановке можно предложить такой вот кривой способ: для создания записей использовать отдельную форму с временными родительской и дочерней таблицами, а по ОК переносить все это дело в базу...
__________________
Андрей. |
|
06.07.2005, 20:05 | #9 |
Участник
|
... и мой кривой пятачок в эту странную копилку:
- при создании родительской записи создавать сразу же две подчиненных, с обязательными для заполнения полями (чтобы нельзя было уйти не заполнив) - в delete() у подчиненных записей проверять чтобы их не оставалось меньше двух, иначе не давать удалять. Т.е., если же правда нужно удалить кривую запись, пусть юзер создаст сначала третью правильную а только потом удаляет вторую кривую |
|
|
|