Фильтр данных связанных таблиц по записи из основной.
#1
Отправлено 11 Май 2011 - 22:59
у нее две подчиненных - "реквизиты" и "адреса доставки".
в таблице "счета" поле связи с таблицей "контрагенты" + поля связи с таблицами "реквизиты" и "адреса доставки".
при добавлении записи в таблицу "счета" выбираем контрагента.
как ограничить выпадающий список в полях связи с таблицами "реквизиты" и "адреса доставки" по выбранному значению из таблицы "контрагенты"?
#2
Отправлено 12 Май 2011 - 09:11
#3
Отправлено 12 Май 2011 - 09:21
Разработчик (12.5.2011, 9:11) писал:
#4
Отправлено 12 Май 2011 - 11:16
Разработчик (12.5.2011, 9:11) писал:
объясните пожалуйста в общих чертах идею...
сейчас не понимаю, как могут помочь вычисления, если для применения фильтра таблица должна быть сохранена, т.е. доступен ID?
в планах есть реализация данной возможности?
думаю, она актуальна для большинства клиентов, т.к. дает возможность составлять сложные справочники простыми действиями.
#5
Отправлено 12 Май 2011 - 11:22
costas (12.5.2011, 10:21) писал:
Вкратце данный способ можно описать так:
1. В программе есть возможность фильтра по полям связи из одной таблицы, например выбор рубрики-подрубрики. Описывалось неоднократно на форуме, в документации возможно тоже есть.
2. По вышеозначенному фильтру можно добавить в счет поля контрагента из подчиненных таблиц "реквизиты" и "адреса доставки", соответсвенно сами реквизиты и адреса будут фильтроваться по контрагенту. Но если просто их добавить - придется выбирать контрагента 3 раза для разных таблиц, что естественно глупо, поэтому эти поля должны быть вычисляемые на основе выбранного контрагента из таблицы "контрагенты". И скрытые естественно.
3. Чтобы сработали вычисления, необходимо пересохранить запись, соответственно нужно добавить яваскрипт на событие "изменение" поля "контрагент", команду на submit формы.
Сами видите что способ довольно трудоемкий и требует соответствующей квалификации и опыта разработчика.
#6
Отправлено 12 Май 2011 - 11:26
сейчас не понимаю, как могут помочь вычисления, если для применения фильтра таблица должна быть сохранена, т.е. доступен ID?
думаю, она актуальна для большинства клиентов, т.к. дает возможность составлять сложные справочники простыми действиями.
#7
Отправлено 12 Май 2011 - 11:55
Разработчик (12.5.2011, 11:26) писал:
В конкретных планах нет, т.к. не пока не совсем ясно как реализовать универсальный механизм, по крайней мере не обдумывали еще серьезно.
не вижу сложностей в универсальности. фильтр в рамках одной таблицы уже есть.
здесь та же ситуация, только фильтровать надо по полю связи, а значение брать из связи таблиц.
#8
Отправлено 13 Май 2011 - 06:21
Разработчик (12.5.2011, 11:26) писал:
В конкретных планах нет, т.к. не пока не совсем ясно как реализовать универсальный механизм, по крайней мере не обдумывали еще серьезно.
Но то, что отстаёте по интерфейсу от многих WEB-ориентированных CRM/Groupware и им подобных, это факт, скажем так - серьёзный минус, который портит картинку.
Вот только изменение кода с переползанием на другой инструментарий слишком затратно, но если смотреть в будущее, где предполагается развитие и дальше, то всё равно рано или поздно придётся что то менять.
#9
Отправлено 13 Май 2011 - 07:00
Разработчик (12.5.2011, 11:22) писал:
Вкратце данный способ можно описать так:
1. В программе есть возможность фильтра по полям связи из одной таблицы, например выбор рубрики-подрубрики. Описывалось неоднократно на форуме, в документации возможно тоже есть.
2. По вышеозначенному фильтру можно добавить в счет поля контрагента из подчиненных таблиц "реквизиты" и "адреса доставки", соответсвенно сами реквизиты и адреса будут фильтроваться по контрагенту. Но если просто их добавить - придется выбирать контрагента 3 раза для разных таблиц, что естественно глупо, поэтому эти поля должны быть вычисляемые на основе выбранного контрагента из таблицы "контрагенты". И скрытые естественно.
3. Чтобы сработали вычисления, необходимо пересохранить запись, соответственно нужно добавить яваскрипт на событие "изменение" поля "контрагент", команду на submit формы.
Сами видите что способ довольно трудоемкий и требует соответствующей квалификации и опыта разработчика.
Второй и третий пункт был выявлен опытным путём, но не совсем понятны были критерии фильтрации, не всегда срабатывало почему то, решили что не предназначено для использования, но раз вопрос всплыл то и спросили соответственно.
С сохранением было сразу понятно, но с java script вариант не всегда работает, поле "контрагент" не всегда меняется, нужны более глобальные события, типа добавление связанной записи уже к существующему контрагенту, то есть запись (видимо в контексте таблицы) помимо полей и их свойств, должна обладать рядом событий "до", "после" и тд (тоже самое при удалении, архивации и тд), наличие такой "обёртки" не повредит.
Как вариант возможность сформировать своё поле (вернее содержание для полей/поля формы) преред открытием формы добавления/редактирования записи...
#10
Отправлено 13 Май 2011 - 07:09
costas (13.5.2011, 7:00) писал:
Второй и третий пункт был выявлен опытным путём, но не совсем понятны были критерии фильтрации, не всегда срабатывало почему то, решили что не предназначено для использования, но раз вопрос всплыл то и спросили соответственно.
С сохранением было сразу понятно, но с java script вариант не всегда работает, поле "контрагент" не всегда меняется, нужны более глобальные события, типа добавление связанной записи уже к существующему контрагенту, то есть запись (видимо в контексте таблицы) помимо полей и их свойств, должна обладать рядом событий "до", "после" и тд (тоже самое при удалении, архивации и тд), наличие такой "обёртки" не повредит.
Как вариант возможность сформировать своё поле (вернее содержание для полей/поля формы) преред открытием формы добавления/редактирования записи...
#11
Отправлено 13 Май 2011 - 10:27
costas (13.5.2011, 8:00) писал:
Затем много раз в ответах на другие темы
В документацию добавим.
#12
Отправлено 13 Май 2011 - 10:35
costas (13.5.2011, 8:09) писал:
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных