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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.03.2004, 12:43   #1  
Omeo is offline
Omeo
Участник
 
129 / 50 (2) ++++
Регистрация: 18.03.2004
Адрес: Moscow
? перебрать все поля Day1.... Day31
Есть запись с набором полей Day1,Day2, .... , Day31
как программно перебрать их все ?

st = strfmt("if ((tmpTime1.Day%1==0) && (tmpTime8.Day%1==0) && (tmpTime10.Day%1==0)) countDayHolyday++;",int2str(i));


compiler.compile(st);
st = compiler.execute(st);

якобы считает ( но неверно - прибавляет 3 ) а потом выдает в логе 31 запись что тело для метода %3 не найдено

runbuf(st);

вообще прекращает выполнение безо всяких ошибок
Старый 22.03.2004, 13:29   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Для таких задач существует тип поля Массив. Пример - EDT Dimension.
__________________
Андрей.
Старый 22.03.2004, 14:20   #3  
Andrew Besedin is offline
Andrew Besedin
Участник
 
121 / 15 (1) ++
Регистрация: 25.01.2002
Привет!

Если поля названы однопитно, то можно использовать макрос (см. например, класс InventOnHand.findSumJoin()
__________________
С уважением,
Андрей Беседин
Старый 22.03.2004, 14:54   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
не, макросы устаревший инструмент.
луше ими не пользоваться.

best practice рекомендует использовать их только в качестве констант и для pack/unpack.

Не хотел вмешиваться. Но по-моему, надо править в постановке задачи или изменять проектирование баз данных. Это бардак, а не структура база данных. Сугубое ИМХО.
Старый 22.03.2004, 15:17   #5  
Andrew Besedin is offline
Andrew Besedin
Участник
 
121 / 15 (1) ++
Регистрация: 25.01.2002
Полностью солидарен с Mazzy.
Полностью согласен с Best Practice

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

И Dron AKA Andy тоже верную идею говорит!
__________________
С уважением,
Андрей Беседин
Старый 22.03.2004, 15:21   #6  
ea is offline
ea
Участник
 
25 / 10 (1) +
Регистрация: 07.03.2003
for (i = 1; i <= dayofMth(endMth(_payPeriod)) ; i++)
{
fieldId = fieldName2Id(tableNum("Таблица"),"day" + int2str(i));

Таблица.(fieldId) - значение поля

}
со структурой базы все нормально, например так сделан ежедневный табель учета рабочего времени
Старый 22.03.2004, 18:05   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
для ежедневного табеля именно структура и выглядит странно.
почему 31 день? почему не квартал или неделя в строчке?
как будете делать запрос, чтобы узнать отработанное внемя понедельно?
как будете делать запрос, чтобы сравнить отработанное в первой половине месяца время со временем, отработанным во второй половине?
а первую половину одного месяца с первой половиной другого?


В поставноке задачи что-нибудь про месяц было? Кто-нибудь это слово произносил? Или это выдумки программиста, чтобы потом героически преодолевать программистские трудности и динамически строить никому не нужные запросы?
Старый 22.03.2004, 19:29   #8  
ea is offline
ea
Участник
 
25 / 10 (1) +
Регистрация: 07.03.2003
период попал случайно при копировании стандартного кода. Смысл не в этом вовсе, поставьте вместо периода цифру 31.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Скрытие поля York DAX: Администрирование 2 26.08.2008 11:19
Очистить все контролы Андрей К. DAX: Программирование 7 27.06.2008 16:17
Права доступа на поля формы. AlexeyBP DAX: Функционал 6 12.12.2006 12:02
Поля недоступны для редактирования DreamCreator DAX: Программирование 5 27.10.2005 09:36
Автоматическое увеличение значения поля при создании новой записи. sguryev DAX: Программирование 3 06.02.2003 14:00

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

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

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