AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.09.2010, 10:48   #1  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Две таблицы в гриде
Доброго дня всем.

Есть несложная, вроде бы, задача:
Имеются три таблицы:
1. Склады
2. Номенклатура
3. Склад, Номенклатура, ПараметрНоменклатурыДляСклада1..N.

В таблице Склады есть, к примеру, три записи.
Я сделал форму, в которой два грида: в одном отображается номенклатура, а в другом, по-замыслу, должны отображаться записи из третьей таблицы, для каждой номенклатуры, соответственно, должно быть три записи для изменения полей ПараметрНоменклатурыДляСклада1..N.
Во втором гриде ставлю DataSource в значение Склад, выводятся по три записи на каждую номенклатуру. Вопрос такой: можно ли сделать в этом гриде возможность изменения значений полей таблицы 3 (ПараметрНоменклатурыДляСклада1..N) без написания дополнительного кода, или же, идти по сложному пути, и для каждого поля ПараметрНоменклатурыДляСкладаN делать в гриде поле ввода, обрабатывать ввод данных и обновлять значение в таблице 3?

---------------
DAX 4.0
Старый 23.09.2010, 10:58   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
А чем соединения таблиц join или outer join не подходят?
Старый 23.09.2010, 11:00   #3  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А зачем в такой постановке вообще таблица "Склады"??
__________________
Ivanhoe as is..
Старый 23.09.2010, 11:03   #4  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А зачем в такой постановке вообще таблица "Склады"??
Ограничивается список складов, участвующих в задаче (к примеру, мне нужно только три, на данный момент времени).
Старый 23.09.2010, 11:05   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
А зачем в такой постановке вообще таблица "Склады"??
Могу предположить, что для визуального заполнения таблицы с параметрами пустыми значениями

Цитата:
Сообщение от Prophetic Посмотреть сообщение
Ограничивается список складов, участвующих в задаче (к примеру, мне нужно только три, на данный момент времени).
А если только для этого, то фильтр можно наложить и на таблицу параметров, там же есть поле склад
Старый 23.09.2010, 11:05   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Если таблица с параметрами обязательно существует для каждой пары склад-номенклатура, то проблем нет. А вот если может и не существовать, то, как мне кажется, тут без программирования не обойтись
Старый 23.09.2010, 11:10   #7  
titov is offline
titov
Участник
 
73 / 87 (3) ++++
Регистрация: 23.12.2005
Адрес: Казань
ключевой вопрос в задаче -
какая целостность данных в таблице ПараметрОВ_НоменклатурыДляСклада?
то есть для пары номенклатура + склад всегда должна быть запись в этой таблице?

если да - пишите код генерации и удаления при изменениях в таблицах номенклатур и складов... а форма автоматом отобразит в гриде все что нужно на редактирование - вариант очень кривой, но по постановке именно такой - плюс параметр по умолчанию сделать

если нет - просто на втором гриде - датасоурсе таблицы = ПараметрОВ_НоменклатурыДляСклада - добавлять, удалять руками и править без доп кода - вот так корректно

промежуточный вариант - при открытии формы и навигации генерить записи в перекрытых на форме методах вообще не советую - целостность этих трех таблиц будет только в форме - лучше кнопку "Мастер создания записей"

ps не забыть про уникальный индекс нома + склад в таблице и все
За это сообщение автора поблагодарили: S.Kuskov (2), Prophetic (1).
Старый 23.09.2010, 11:10   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Если таблица с параметрами обязательно существует для каждой пары склад-номенклатура, то проблем нет. А вот если может и не существовать, то, как мне кажется, тут без программирования не обойтись
А если сделать OuterJoin параметров к складам + возможно указать свойство InsertIfEmpty?
За это сообщение автора поблагодарили: Prophetic (1).
Старый 23.09.2010, 11:24   #9  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А если сделать OuterJoin параметров к складам + возможно указать свойство InsertIfEmpty?
Не знаю, допускает ли в 4 версии Outer Join править "не существующие" записи подчиненной таблицы или просто автоматом создаст недостающие? Но в последнем случае это означает автоматом сгенерить недостающие записи и фактически сделать inner Join.

Возвращаемся к основному вопросу: запись таблицы параметров обязательно есть для каждой пары склад-номенклатура? Если "Да", то описанная задача возможна, если "Нет", то только программировать.
Старый 23.09.2010, 11:33   #10  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Не знаю, допускает ли в 4 версии Outer Join править "не существующие" записи подчиненной таблицы или просто автоматом создаст недостающие? Но в последнем случае это означает автоматом сгенерить недостающие записи и фактически сделать inner Join.

Возвращаемся к основному вопросу: запись таблицы параметров обязательно есть для каждой пары склад-номенклатура? Если "Да", то описанная задача возможна, если "Нет", то только программировать.
По сути, запись будет обязательно для каждой комбинации -- Склад + номенклатура. Но только после того, как пользователь выберет в первом гриде номенклатуру.
Outer join с InsertIfEmpty от параметров к складам выводит три записи с пустыми значениями, дает возможность сохранить значения только для одной записи.

Последний раз редактировалось Prophetic; 23.09.2010 в 11:39.
Старый 23.09.2010, 11:42   #11  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Данную задачку я представляю следующим образом - рисунок ниже.

Поэтому достаточным, по-моему, будет определить связи на датасоурсах InventLocation и InventTable следующим образом: JoinSource = InventLocationParam, LinkType = Delayed (по умолчанию).
Изображения
 
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 23.09.2010 в 11:45.
Старый 23.09.2010, 11:44   #12  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от samolalex Посмотреть сообщение
Данную задачку я представляю следующим образом:
Почти так.
Старый 23.09.2010, 12:44   #13  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Prophetic Посмотреть сообщение
По сути, запись будет обязательно для каждой комбинации -- Склад + номенклатура. Но только после того, как пользователь выберет в первом гриде номенклатуру.
Все-так уточню. Вы собираетесь хранить записи с не указанными (пустыми) параметрами?

Если "Да", то генерите автоматом недостающие записи по каждому складу при выборе номенклатуры и делайте связку по Inner Join.

Если "Нет", то без программирования все-равно не получится. Ведь даже если Вы реализуете то, что хотите, но в момент сохранения придется проверять запись на пустоту и удалять если пусто.

PS: вообще-то, описана почти стандартная схема Шапка документа - Номенклатура - Складская аналитика. Может, стоит просто скопировать то, что есть в стандартных формах заказов и закупок?
За это сообщение автора поблагодарили: Prophetic (1).
Старый 23.09.2010, 14:07   #14  
Prophetic is offline
Prophetic
Участник
 
113 / 15 (1) ++
Регистрация: 08.12.2009
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Все-так уточню. Вы собираетесь хранить записи с не указанными (пустыми) параметрами?
Нет, не собираюсь.

Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Если "Нет", то без программирования все-равно не получится. Ведь даже если Вы реализуете то, что хотите, но в момент сохранения придется проверять запись на пустоту и удалять если пусто.
Да, осознал, что не получится без программирования.
Всех благодарю за участие в обсуждении.
Старый 23.09.2010, 15:02   #15  
titov is offline
titov
Участник
 
73 / 87 (3) ++++
Регистрация: 23.12.2005
Адрес: Казань
а если отказаться от такой постановки и сделать по аналогии с профилями разноски (жкс еще имеет ту же схему) - скорее всего параметры конечны и имеют группировку

поля на таблице
itmRelation - Все, ГруппаНом, Нома, МояГруппа
InventLocation - Все, Склад
parmField - собственно параметр

прозрачность сопровождения, минимум записей
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помогите показать в одном гриде две таблицы s.alex DAX: Программирование 12 25.09.2009 13:11
Две таблицы в одном datasource Turetskiy DAX: Программирование 10 16.09.2008 16:35
Две таблицы в одном гриде Oloops DAX: Программирование 3 11.08.2006 14:25
Один DataSource на две таблицы Lucky13 DAX: Программирование 14 26.09.2005 14:12
Две таблицы - один grid!? Kengo DAX: Программирование 3 01.11.2004 15:01

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:43.