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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.06.2008, 21:12   #1  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Присвоение значения полю активной записи по его имени
Вот столкнулся с задачей, есть несколько, например, 5 однотипных полей, с похожими названиями аля Field1, Field2, Field3 и т.д, то есть отличаются названия только индексами в конце, причём индексы идут подрят, тобишь 1..5. Поля эти должны програмно заполнятся по одной закономерности, таким образом естественно возникает желание организовать цикл, итерирующий индекс от 1..5 и заполняющий поля с именами 'Field'<ind> в соответствии с закономерностью. А теперь собственно вопрос, каким именно образом можно достучатся до значения поля активной записи по его имени. В этой связи только 2 идеи: либо формировать и выполнять запрос из строки, если в аксапте такое возможно, либо каким-то образом использовать fieldname2id.

Зарание благодарен любым ответам, кроме: "не парь мозги, делай всё по простому". Просто таких полей на самом деле 56 и вычисления значения зависит от индекса в конце названия поля.
__________________
Axapta has seduced me deadly!
Старый 04.06.2008, 21:22   #2  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
Сообщение от HorrR Посмотреть сообщение
Просто таких полей на самом деле 56 и вычисления значения зависит от индекса в конце названия поля.
Просто интересно - что же в этих полях хранится?
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 04.06.2008, 21:24   #3  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Не поверишь - псевдографика)
__________________
Axapta has seduced me deadly!
Старый 04.06.2008, 21:34   #4  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
Сообщение от HorrR Посмотреть сообщение
Не поверишь - псевдографика)
А что тогда означает 1 запись в таблице?
Опишите задачу. Интересно.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 04.06.2008, 21:36   #5  
AlexSD is offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Регистрация: 14.10.2003
Ройте в направлении SysDictTable... SysDictField... И их прородителей DictTable и DictField.

А значение поля из записи можно получить таким образом SalesLine.(<fieldnum>);

Ну, а <fieldnum> можно узнать у вышеозначенный классов...
За это сообщение автора поблагодарили: HorrR (1).
Старый 04.06.2008, 21:39   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от HorrR Посмотреть сообщение
Зарание благодарен любым ответам, кроме: "не парь мозги, делай всё по простому". Просто таких полей на самом деле 56 и вычисления значения зависит от индекса в конце названия поля.
Кусок из русской зарплаты
X++:
    RPayTblDayHour calcSumRecord(boolean _dayHour)
    {
        int            i;
        RPayTblDayHour value;
        fieldId        ffieldId;
        for (i = 1; i <= 31 ; i++)
        {
            ffieldId = fieldName2Id(tableNum(RPayTblDayHourTrans),#DayHourTransFieldPrefix + int2str(i));
            value += _dayHour ? this.(ffieldId) : RPayCalendarTable::HoursToDay(this.(ffieldId)) ;
        }
        return value;
    }
Когда нормальный человек видит такую задачу, то сразу думает о подчиненной таблице.
Когда менее нормальный человек - Аксаптовед видит такую задачу, то сразу думает о типе-массиве.
Но автор требует не парить ему мозги.
Что ж, не буем парить.

HorrR, ни в коем случае не смотрите на то как разработчики русской зарплаты извращались в дальнейшем с этой таблицей. Заполнение полей - это только начало. Вы еще полдня за ними бегать будете...
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 479
Размер:	167.6 Кб
ID:	3500  
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: HorrR (1).
Старый 04.06.2008, 21:44   #7  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
За первый совет огромное спасибо! А насчёт второго маленькая поправка - есть условие не менять структуру данных, не менять дизайн форм, так как эту часть функционала делают другие "программисты"(индусы). Вот такая маца. Так что приходится выкручиваться(
__________________
Axapta has seduced me deadly!
Старый 04.06.2008, 21:48   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от HorrR Посмотреть сообщение
...индусы...
Они не поймут fieldname2id. Они не поймут, что где-то есть магическая константа 56.
пишите 56 строк в стиле table.field1 := mySuperValue...
Copy-Paste - это сила.

Опять же: "не парь мозги, делай всё по простому"
__________________
полезное на axForum, github, vk, coub.
Старый 04.06.2008, 21:53   #9  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Ну, индусы уже ничего не будут делать, они свою часть уже "сделали". Так что об этом можно не беспокоиться)
__________________
Axapta has seduced me deadly!
Старый 06.06.2008, 12:13   #10  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
Сообщение от Alex_KD Посмотреть сообщение
А что тогда означает 1 запись в таблице?
Опишите задачу. Интересно.
Да что-то наподобоии скедьюлов в ганте. Наши "умницы" заказчики захотели, что бы всё было как в старой системе, тобишь псевдографикой в таблицах. А нам расхлёбывай.
__________________
Axapta has seduced me deadly!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Открытие формы с деталями активной записи в гриде sweeper DAX: Программирование 4 19.09.2008 15:55
Как получить значения полей (modifiedDate, modifiedTime, modifiedBy и др.) при работе с объектами AOT типа Map? LRA DAX: База знаний и проекты 15 02.04.2007 13:37
ALEG: Доступны записи тренингов по Microsoft Dynamics NAV Blog bot DAX Blogs 0 21.03.2007 15:00
Присвоение значения переменной? Morpheus DAX: Программирование 9 30.08.2005 15:46
Автоматическое увеличение значения поля при создании новой записи. sguryev DAX: Программирование 3 06.02.2003 14:00

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

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

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