22.08.2022, 16:43 | #1 |
Участник
|
Множественные связи между таблицами на форме. Как реализовать?
Хочу связать одну табличку с двумя другими на форме
то есть есть нечто вроде InventSum |_InventDim И хочу сделать условную tableZ которая будет увязана с InventSum по ItemId и каким то полям с InventDim (что в свою очередь завязана тоже на InventSum) Возможно ли? Где посмотреть примеры? |
|
22.08.2022, 17:01 | #2 |
Участник
|
У одного источника данных может быть только один родитель.
Для реализации второй связи можно использовать фильтры. Обновлять значение фильтра при изменении активной записи родительской таблицы В вашем конкретном случае когда "родительские" таблицы не независимы, а тоже связаны друг с другом можно предварительно создать View, в котором будет выполнена связь двух родительских таблиц. И уже к этому View привязать вашу подчинённую таблицу Последний раз редактировалось S.Kuskov; 22.08.2022 в 17:05. |
|
22.08.2022, 18:02 | #3 |
Administrator
|
Технически через метод init() датасорса связать можно кого угодно с кем угодно (метод addLink на QueryBuildDatasource)
Но сразу возникает вопрос - а как хочется, чтобы работал результат? Пример 1. Таблица 2 подчинена таблице 1; таблица 3 - также подчинена таблице 1. При перемещении записи на таблице 1 - система автоматом обновляет позиционирование на таблицах 2 и 3 по событию active() на датасорсе таблицы 1 Пример 2. Таблица 2 подчинена таблице 1; таблица 3 - подчинена таблице 2. При перемещении записи на таблице 1 - система автоматом обновляет позиционирование на таблице 2, а от позиционирования на таблице 2 - обновляется позиционирование на таблице 3. Теперь вопрос - если таблица 3 подчинена таблице 1 и таблице 2 - в какой момент должно выполняться позиционирование на таблице 3? При перемещении записи на таблице 1 или таблицы 2? И если таблицы 2 - то: а) как об этом догадается система (для нее все линки равны и подчинение по сути лежит только у нас в головах, а в системе есть только линки)? б) с учетом условий таблицы 1 или нет? Т.е. здесь нужно ситуацию свести либо к примеру 1, либо к примеру 2. Также нельзя забывать, что БД - это не чёрный ящик, а тоже система. И упрощение запросов к ней напрямую влияет на скорость работы системы.
__________________
Возможно сделать все. Вопрос времени |
|
22.08.2022, 18:15 | #4 |
Участник
|
Хотим как обычно: есть остатки, есть желание вводить количества по разбивке остатков и в дополнение к этому сортировать по введенному (собственно поэтому и появляется табличка Z).
|
|
22.08.2022, 18:37 | #5 |
Administrator
|
"Реальные пацаны" (Шутка) в этом случае используют журнал инвентаризации. Создают строки на основе запасов в наличии в разрезе тех аналитик, которые надо и вводят в соответствующей колонке остатки. По этой колонке и сортировка работает.
Ну т.е. форма запасов в наличии хороша для просмотра, но не годится для редактирования. А какой смысл вводить остатки на форме, где источником данных является InventSum? (Допустим мы сделали такую суперформу).
__________________
Возможно сделать все. Вопрос времени |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Связи между таблицами | 19 | |||
Отображение связи n:n на форме | 22 | |||
Связь между таблицами в форме | 8 | |||
Тип связи | 9 | |||
Имитация связи между таблицами из кода программы | 3 |
|