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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.04.2011, 18:46   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от konopello Посмотреть сообщение
не совсем понял что значит гемороится с ключами, ядро само контролирует ключ.
?!

а! у вас структура хранится два раза: и в ключе, и в значении (value)
Цитата:
Сообщение от konopello Посмотреть сообщение
key TYPE myStruct,
value TYPE myStruct,
хорошо, что есть аналог set.

давайте все-таки вернемся к теме.
итак - аксапта.
контейнеры - статично, просто, без контроля, очень затратно по памяти.
класс-классов - полный контроль, но писать блин много. хотя, гуру утверждают, что окупается.
(временная) таблица - писать тоже много. но зато хоть какой-то контроль типов.
__________________
полезное на axForum, github, vk, coub.
Старый 10.04.2011, 19:45   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
давайте все-таки вернемся к теме.
А можно уточнить? Что все-таки нужно? Хранить некие константные значения в коде (аналогично моему посту выше) и впоследствии на основе их заполнять некие данные или вести работу с набором переменных данных (например, разноска в ГК и классы LedgerVoucherList, LedgerVoucherTransList).
А то создание всяких коллекций, классов-оберток и т.д. актуально больше не для столько для начальных константных данных, сколько для переменных данных (разноска ГК)
__________________
Возможно сделать все. Вопрос времени
Старый 10.04.2011, 19:57   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
А можно уточнить? Что все-таки нужно? Хранить некие константные значения в коде (аналогично моему посту выше) и впоследствии на основе их заполнять некие данные или вести работу с набором переменных данных (например, разноска в ГК и классы LedgerVoucherList, LedgerVoucherTransList).
изначальная тема "хранить статичный набор начальных данных в классах"

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

причем, заполнение набора может проводится как в одном методе, так и в нескольких. например, часть добавляется (или убирается) в методах-потомках.
__________________
полезное на axForum, github, vk, coub.
Старый 10.04.2011, 21:48   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
я не очень понимаю в чем выбор между твоими вариантами.
Поясню.
1. Задача создания закладки "Номерные серии" в параметрах модуля. Пользователь ничего не вводит, однако ему выводится некая таблица (грид) значений, которые на самом деле хранятся в коде (контейнер контейнеров, классы, временная таблица - неважно). Важно, что при изменении соответствующего куска кода - данные в этой таблице должны меняться.

В этом случае мне нравится (в порядке убывания):
- вариант таблицы (лучше постоянной - как с номерными сериями)
- вариант XML (в памяти)
- вариант контейнера контейнеров
не нравится вариант класса классов или Set (Types::Class) - т.к. слишком много кода

2. Задача создания разноски в ГК. Тут нет начальных константных данных, однако по входящим данным генерируется некоторый набор записей. Генерируемый набор может быть представлен как набор экземпляров классов (Set Types::Class). Важно - что нам не нужно хранить в классах параметры, т.е. многие параметры входящие

В этом случае мне нравится (в порядке убывания):
- вариант класса классов (на худой конец Set Types::Class)
- вариант таблицы (лучше временной, как промежуточной, хотя может даже лучше и постоянной - т.к. все равно откат произойдет, если не закроется транзакция)
не нравится вариант XML (сложность реализации) и контейнера контейнеров / Map / Set / List (нечитабельный код)

PS. Упс... ответ уже получен - пункт 1. Но все равно - мнение свое выскажу
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 10.04.2011 в 21:52.
Старый 10.04.2011, 20:08   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
аналогично моему посту выше)
ага, спасибо.

вот суть:
вариант "хранения в коде" сводится к варианту fed - создать таблицу и инициализировать ее в коде.
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 532
Размер:	32.7 Кб
ID:	6737

вариант хранения в ресурсах не рассматривался. спасибо.
Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 533
Размер:	68.7 Кб
ID:	6738

итак - аксапта. есть следующие способы хранения статичного набора начальных данных.
  • контейнеры - статично, просто, без контроля, очень затратно по памяти.
  • класс-классов - полный контроль, но писать блин много. хотя, гуру утверждают, что окупается.
  • (временная) таблица - писать тоже много. но зато хоть какой-то контроль типов. пример инициализации
  • хранить файл с наперед заданной структурой (например, xml) в ресурсах
__________________
полезное на axForum, github, vk, coub.
Старый 10.04.2011, 22:22   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Не... это плохой пример инициализации. Создается ощущение, что нужно писать много кода в куче в одном месте.

Вот хороший пример:
Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 502
Размер:	34.9 Кб
ID:	6739
Нажмите на изображение для увеличения
Название: Снимок2.PNG
Просмотров: 444
Размер:	42.0 Кб
ID:	6740

Каждый наследник заполняет только "свою" часть настроек.

Пример из жизни. Мы оказываем складские услуги сторонним организациям. Мы используем АХ. Каждый клиент присылает документ об отгрузке / приемке в электронном виде и каждый в своем формате. Задача хранить параметры импорта в разрезе форматов данных (на самом деле еще и в разрезе клиента). При этом параметры у каждого формата могут быть разные (типы разные) и количество их также может быть разным.

Создаем механизм, аналогичный номерным сериям. Создаем наследника на каждый тип формата данных. Т.о. в коде у нас создаются записи, каждая из которой отвечает за свой параметр. Какие-то параметры (к примеру, каталог импорта / экспорта) у нас будут общие для нескольких форматов данных => соответствующие строки из метода loadModule можно перенести в родительский класс.

Данное решение не учитывает AIF или какие- еще технологии и я не собираюсь обсуждать в этой ветке плюсы и минусы решения поставленной задачи именно такой реализацией. Однако, я хотел привести пример использования на практике идеи закладки "Номерные серии" как пример заполнения таблицы данными из кода.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 10.04.2011 в 22:26.
Теги
как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Загрузка начальных данных MIVura DAX: Прочие вопросы 1 31.03.2009 14:52
Набор данных на лету HorrR DAX: Программирование 15 26.09.2008 15:21
Прогноз роста базы данных и выбор топологии системы, Как правильно расчитать возможный рост sergeypp DAX: Администрирование 0 05.12.2006 16:55
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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