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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.10.2013, 18:28   #1  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Нечего тут голову ломать
1. Если ключи не пересекаются - так и сохраняйте сразу в одном. Например, передавайте ссылку на мап через параметр в метод, добавляющий в них элементы вместо складывания результирующих мапов. Вот час назад писал как раз такое
X++:
private Map calcJournalLines(mInventRejectJournalTable _journalTable,
                             InventTable               _inventTable,
                             mProgressBarNoTotals      _bar)
{
    Map     journalLines = new Map(Types::String, Types::Container);
    ;
    this.calcInventTrans(_journalTable, _inventTable, _bar, journalLines);
    this.calcInventSettlements(_journalTable, _inventTable, _bar, journalLines);

    return journalLines;
}
Или в двух - один как сейчас, второй общий - там где вставляем в частный мап дублируем вставку еще и в общий.

2. Очевидный и правильный путь - обойти один мап и вставить во второй
3. Трюк с перепаковкой и сложение контейнеров то-же возможен, но это именно трюк. Сложного, как мне помнится, там ничего нет - кроме самих данных там будет еще заголовок из, боюсь соврать, трех элементов. На форуме была тема со структурой упакованных мапов, сетов и т.д.
4. А может вам и не мап нужен?

У всех способов очевидные достоинства и недостатки, но если вы по любым причинам склоняетесь к п.3, то скорее всего с алгоритмом что то не то и стоит об этом серьезно подумать

Последний раз редактировалось db; 23.10.2013 в 18:39. Причина: Добавил пример
Старый 23.10.2013, 18:39   #2  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
У map-ов есть есть keyset() и valueset(), а они умеют так:
- set intersection (set1, set2) - возвращает пересечение двух указанных множеств, то есть множество, содержащее элементы, найденные в обоих множествах.
- set union (set1, set2) - возвращает объединение двух указанных множеств, то есть множество содержит значения из обоих множеств.
- set difference (set1, set2) - возвращает множество, содержащее значения множества set1, не найденные в множестве set2.
© Шашков Р., Еременко А.
Старый 23.10.2013, 18:41   #3  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от Player1 Посмотреть сообщение
У map-ов есть есть keyset() и valueset(), .
Только если надо сложить ключи и значения отдельно. Это не поможет получить общий мап
Старый 24.10.2013, 09:27   #4  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
601 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от db Посмотреть сообщение
4. А может вам и не мап нужен?

У всех способов очевидные достоинства и недостатки, но если вы по любым причинам склоняетесь к п.3, то скорее всего с алгоритмом что то не то и стоит об этом серьезно подумать
Может и не нужен. Сейчас подумаю, как алгоритм поменять. Использовал мапы так как нужен уникальный идентификатор, вернее связка 2-х полей для идентификации данных в результирующем наборе данных. А если есть такой же ключ - производить сумму количеств из полей...другого, более изящного решения не придумал.

Последний раз редактировалось user_ax; 24.10.2013 в 09:47.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помещение временной таблицы в Map Lemming DAX: Программирование 20 19.10.2017 14:16
Dynamics AX: Map Object Sorting - a real issue Blog bot DAX Blogs 7 15.10.2008 12:02
MAP vs Class. В чем идейная необходимость в MAP-ах? А что если использовать Class вместо MAP? Hub DAX: Программирование 16 11.08.2008 16:58
Открытие контейнера из Map tolstjak DAX: Программирование 12 12.11.2006 18:01
Пропадение связи в Map 6apcyk DAX: Программирование 1 08.06.2006 08:05

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

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

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