Здравствуйте,
не получается сделать так, чтобы при изменении поля№1 (типа связь) менялось поле №2 (тоже типа связь). Поле №2 подтягивается вычислением, для того чтобы отфильтровать Поле№3 (тоже тип связь). Фильтрация работает только после сохранения изменений в поле№2.
Подскажите, как правильно реализовать?
Спасибо.


Моментальное вычисление при изменении поля связь
Автор dev77rus, 04 дек. 2014 00:39
Сообщений в теме: 3
#1
Отправлено 04 Декабрь 2014 - 00:39
#2
Отправлено 04 Декабрь 2014 - 10:02
А каким образом то делали?
#3
Отправлено 04 Декабрь 2014 - 15:03
Постараюсь объяснить....
Есть трехуровневый справочник расценок: Главы справочника (табл.) ---> Плановые расценки (табл.) ---> Фактические расценки (табл.).
Плановые расценки в теории более общие и включают в себя фактические расценки (один ко многим).
Есть таблица "План" - калькуляция (план затрат) по объекту с полями : 1. Плановая расценка (связь) 2. Кол-во и т.д. - Эта таблица набирается Плановыми расценками.
Есть таблица "Факт" - фактические затраты по объекту с полем связи: 1. Фактическая расценка.
Задача отфильтровать выпадающий список фактических расценок в таблице "Факт" таким образом, чтобы в нем были только те фактические расценки, которые в подчинении у тех плановых, которые соответственно запланированы в таблице "План". Для этого в таблице "Факт" первым делом нужно выбрать ту плановую расценку, которая забита в таблице "План", т.е. поле связи. Но по этому полю не происходит фильтрация Фактических расценок, т.к. в поле хранятся ID не плановых расценок, а тех записей, которые созданы в таблице план.
Для того, чтобы фильтр работал, я создал служебное поле с вычислением, которое подтягивает в именно ID плановой расценки. После этого поле Фактическая расценка прекрасно фильтруется, но! после сохранения записи. Т.е. нужно в процессе редактирования сохранить запись, а потом ее опять редактировать.
Мне бы хотелось, чтобы вычисление с подтягиванием ID работало сразу после изменения поля "Плановая расценка" и соответственно (я так думаю) сразу должен срабатывать фильтр в поле "Фактическая расценка"
Вот как то так. Надеюсь, что поймете.
Есть трехуровневый справочник расценок: Главы справочника (табл.) ---> Плановые расценки (табл.) ---> Фактические расценки (табл.).
Плановые расценки в теории более общие и включают в себя фактические расценки (один ко многим).
Есть таблица "План" - калькуляция (план затрат) по объекту с полями : 1. Плановая расценка (связь) 2. Кол-во и т.д. - Эта таблица набирается Плановыми расценками.
Есть таблица "Факт" - фактические затраты по объекту с полем связи: 1. Фактическая расценка.
Задача отфильтровать выпадающий список фактических расценок в таблице "Факт" таким образом, чтобы в нем были только те фактические расценки, которые в подчинении у тех плановых, которые соответственно запланированы в таблице "План". Для этого в таблице "Факт" первым делом нужно выбрать ту плановую расценку, которая забита в таблице "План", т.е. поле связи. Но по этому полю не происходит фильтрация Фактических расценок, т.к. в поле хранятся ID не плановых расценок, а тех записей, которые созданы в таблице план.
Для того, чтобы фильтр работал, я создал служебное поле с вычислением, которое подтягивает в именно ID плановой расценки. После этого поле Фактическая расценка прекрасно фильтруется, но! после сохранения записи. Т.е. нужно в процессе редактирования сохранить запись, а потом ее опять редактировать.
Мне бы хотелось, чтобы вычисление с подтягиванием ID работало сразу после изменения поля "Плановая расценка" и соответственно (я так думаю) сразу должен срабатывать фильтр в поле "Фактическая расценка"
Вот как то так. Надеюсь, что поймете.
#4
Отправлено 04 Декабрь 2014 - 18:23
Такого в программе просто нет на данный момент, чтобы вычисление срабатывало сразу, без предварительного сохранения. Точнее, данный механизм реализован, но только в подтаблицах. В основных таблицах пока только планируется подобное. Возможно, существует альтернативные решения от умельцев, через JS и AJAX, но я не берусь их комментировать, только если кто-то из авторов их здесь опишет.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных