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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.06.2008, 13:57   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Зря Вы это сделали... С полями типа Array проблем больше, чем достоинств.

Физически, каждый отдельный элемент типа Array - это отдельное поле. Значит, обращаться необходимо к каждому такому полю персонально. Посмотрите, например, форму заказов на закладке "Аналитика". Там идет обращение к каждому элементу по имени.

Если Вы только начали разрабатывать структуру, то я бы посоветовал Вам отказаться от Array и использовать обычные типы данных.
Старый 16.06.2008, 14:16   #2  
KingPeas is offline
KingPeas
Участник
Аватар для KingPeas
 
163 / 35 (2) +++
Регистрация: 09.01.2007
Адрес: Россия, Новосибирск
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Зря Вы это сделали... С полями типа Array проблем больше, чем достоинств.

Физически, каждый отдельный элемент типа Array - это отдельное поле. Значит, обращаться необходимо к каждому такому полю персонально. Посмотрите, например, форму заказов на закладке "Аналитика". Там идет обращение к каждому элементу по имени.

Если Вы только начали разрабатывать структуру, то я бы посоветовал Вам отказаться от Array и использовать обычные типы данных.
Да уж это точно. Была таблица с 16 однотипными полями, решил превратить их в одно... Все бы хорошо да поле типа строка размер Memo. На базе такого типа массив не формируется.Так что скорей всего придется переделывать назад. Всего то хотел чтобы таблица не разбухала при увеличении списка параметров.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ.
Старый 16.06.2008, 20:17   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от KingPeas Посмотреть сообщение
Всего то хотел чтобы таблица не разбухала при увеличении списка параметров.
Не понимаю, каким образом использование Array позволит решить эту задачу? Физически ведь это по прежнему будет несколько отдельных полей.

Использование определенных типов данных лишь косвенно влияет на размер таблицы. Да и то, в очень специфических ситуациях.

Как правило, таблица настроек, "по определению" содержит очень небольшое количество записей (обычно вообще одну). Поэтому количество добавляемых полей практически никак не влияет на ее размер.
Старый 17.06.2008, 06:40   #4  
KingPeas is offline
KingPeas
Участник
Аватар для KingPeas
 
163 / 35 (2) +++
Регистрация: 09.01.2007
Адрес: Россия, Новосибирск
Red face
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Как правило, таблица настроек, "по определению" содержит очень небольшое количество записей (обычно вообще одну). Поэтому количество добавляемых полей практически никак не влияет на ее размер.
Попытаюсь объяснить зачем все затевалось. Работаю с ReportingServices в аксапте. Представьте есть отчет содержащий 15 параметров. Каждый месяц формируется около 100 видов этого отчета с разными вариантами параметров. На стороне аксапты формирование отчета организовывалось на базе пакетной обработки. На RS скорость исполнения возросла на 20%, но запускать пакеты на формирование отчетов в RS из аксапты большого смысла нет.
У RS есть служба управляемых подписок - на основании запроса формировать отчеты. То что надо для таких случаев. Получается надо таблицу которая будет содержать нужные параметры и использоваться в запросе RS. Но согласитесь если для каждого отчета на RS делать свою таблицу это будет несколько расточительно. Поэтому сделал общую таблицу содержащую значения для формирования подписок.Состав полей очень простой: код класса формирующий подписку, путь к отчету, список параметров(Parameter1, Parameter2 и т.д.) и признак активности подписки чтобы ее можно было выключать временно. Сначало параметры забил отдельными полями, сейчас превратил их в массив так табличка симпотичнее выглядит). Вот собственно и все... Механизм отладил уже работает
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ.
Старый 17.06.2008, 06:47   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от KingPeas Посмотреть сообщение
Но согласитесь если для каждого отчета на RS делать свою таблицу это будет несколько расточительно.
Категорически не соглашусь.
__________________
полезное на axForum, github, vk, coub.
Старый 17.06.2008, 06:55   #6  
KingPeas is offline
KingPeas
Участник
Аватар для KingPeas
 
163 / 35 (2) +++
Регистрация: 09.01.2007
Адрес: Россия, Новосибирск
Цитата:
Сообщение от mazzy Посмотреть сообщение
Категорически не соглашусь.
Поясните пожалуйста свою позицию?В чем прелесть если аот вырастет на 100 новых таблиц?
Я исходил из того, что используя одну таблицу буду не только экономить узлы AOT, но и упрощу настройку подписок на RS. А каковы ваши мотивы для такого утверждения?
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ.
Старый 17.06.2008, 07:04   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от KingPeas Посмотреть сообщение
Поясните пожалуйста свою позицию?В чем прелесть если аот вырастет на 100 новых таблиц?
Вопрос поставлен некорректно.
От простого добавления 100 таблиц ни холодно, ни жарко.

Прелесть состоит в том, что эти 100 таблиц будут иметь свои типизированные поля, свои валидейты, свои индексы, свои relation'ы, свои права. Каждую таблицу можно будет отнести к определенному проекту и функционалу.

В общем, вы получите проверку на уровне компилятора, а не во время runtime.

Цитата:
Сообщение от KingPeas Посмотреть сообщение
Я исходил из того, что используя одну таблицу буду не только экономить узлы AOT, но и упрощу настройку подписок на RS. А каковы ваши мотивы для такого утверждения?
А зачем "экономить узлы AOT"?
Но зато ваша экономия приведет к огромному динамическому программированию, к "универсальным" валидейтам, к неподъемному программированию прав
Подробнее см. Значение display метода по его названию

Насчет упрощения подписок - отчасти вы правы, но как вы права собираетесь раздавать? Или у вас все пользователи могут менять любые параметры?
__________________
полезное на axForum, github, vk, coub.
Теги
шаблон

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Создание наследника EDT через Х++ vesna DAX: Программирование 12 02.05.2012 08:13
Значение по умолчанию параметра типа EDT c array elements либо просто массива HorrR DAX: Программирование 16 20.02.2008 19:18
axaptapedia: Array (Foundation class) Blog bot DAX Blogs 0 13.12.2007 22:30
Синхронизация таблиц при изменении EDT z_av DAX: Программирование 1 16.12.2004 11:55
Список полей таблиц на базе конкретного EDT Владимир Максимов DAX: Программирование 10 06.10.2004 14:45

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

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

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