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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.04.2011, 11:16   #1  
farlander is offline
farlander
MCTS
Аватар для farlander
MCBMSS
Ex AND Project
 
282 / 27 (1) +++
Регистрация: 27.10.2006
Адрес: Россия
Как прописать функцию для поля типа Дата... нужно чтобы день и месяц были сегодняшними, а год любой
---- Вырезано по просьбе автора из темы RLS ----

Подскажите как прописать функцию для поля типа Дата... нужно чтобы день и месяц были сегодняшними, а год любой.
__________________
farlander.ru

Последний раз редактировалось Dron AKA andy; 07.04.2011 в 19:09.
Старый 07.04.2011, 13:59   #2  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Цитата:
Сообщение от farlander Посмотреть сообщение
Новую тему не буду создавать...
Подскажите как прописать функцию для поля типа Дата... нужно чтобы день и месяц были сегодняшними, а год любой.
X++:
static void dateWthYear(Args _args)
{
    TransDate   dateNew;
    TransDate   dateCur  = systemDateGet();
    Yr          someYear = 2012;
    ;
    
    dateNew = mkDate(dayOfMth(dateCur), mthOfYr(dateCur), someYear);
}
Старый 07.04.2011, 14:18   #3  
farlander is offline
farlander
MCTS
Аватар для farlander
MCBMSS
Ex AND Project
 
282 / 27 (1) +++
Регистрация: 27.10.2006
Адрес: Россия
Нет тут сложнее задача... в результате должен быть результат:

(dayOfMth(dateCur), mthOfYr(dateCur), 1900), (dayOfMth(dateCur), mthOfYr(dateCur), 1901)...(dayOfMth(dateCur), mthOfYr(dateCur), 2999);
__________________
farlander.ru
Старый 07.04.2011, 14:25   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от farlander Посмотреть сообщение
Новую тему не буду создавать...
Подскажите как прописать функцию для поля типа Дата... нужно чтобы день и месяц были сегодняшними, а год любой.
Средствами аксапты такой запрос построить нельзя
Старый 07.04.2011, 14:25   #5  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А не проще тогда сохранить в отдельном поле дату.месяц и написать функцию именно для них?
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: S.Kuskov (1).
Старый 07.04.2011, 14:28   #6  
farlander is offline
farlander
MCTS
Аватар для farlander
MCBMSS
Ex AND Project
 
282 / 27 (1) +++
Регистрация: 27.10.2006
Адрес: Россия
Хм... на си шарпе для сирээма мне делали такое... использовался запрос в запросе...
__________________
farlander.ru
Старый 07.04.2011, 14:34   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от farlander Посмотреть сообщение
Хм... на си шарпе для сирээма мне делали такое... использовался запрос в запросе...
Нет, подготовить временные данные и отобразить их на форме можно и без шарпа. Но вы же хотели реализовать это одним SQL запросом. Одним запросом нельзя. Уточню на всякий случай. Одним SQL запросом выбрать такое можно, но через аксапту создать такой SQL запрос нельзя

Последний раз редактировалось S.Kuskov; 07.04.2011 в 14:38.
Старый 07.04.2011, 15:07   #8  
farlander is offline
farlander
MCTS
Аватар для farlander
MCBMSS
Ex AND Project
 
282 / 27 (1) +++
Регистрация: 27.10.2006
Адрес: Россия
А можно составить такой SQL запрос, скопировать и вставить в поле фильтра так?
__________________
farlander.ru
Старый 07.04.2011, 15:29   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от farlander Посмотреть сообщение
А можно составить такой SQL запрос, скопировать и вставить в поле фильтра так?
Нет, нельзя. Аксапта не поддерживает запросы такой сложности. В аксапте принято такие запросы разбивать на несколько подзапросов. А для того чтобы отобразить конечный результат на форме можно воспользоваться временной таблицей.
За это сообщение автора поблагодарили: farlander (1).
Старый 07.04.2011, 16:48   #11  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от farlander Посмотреть сообщение
Нет тут сложнее задача... в результате должен быть результат:

(dayOfMth(dateCur), mthOfYr(dateCur), 1900), (dayOfMth(dateCur), mthOfYr(dateCur), 1901)...(dayOfMth(dateCur), mthOfYr(dateCur), 2999);
Раньше в длине Range было ограничение, в AX 2009, похоже, оно намного больше. В тестовом примере ограничение выпадает (ошибка запроса SQL) после примерно 4000 символов или около 470 значений для фильтрации (по OR).

Т.е. формально никто не запрещает сделать функцию, которая вернет строку, содержащую все даты за разумный период лет - получится Range примерно на 2000 символов с около 200 значений, главное чтобы итоговый суммарный запрос не превысил предел.
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: farlander (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обнулились поля типа Memo vasiliy DAX: Администрирование 2 05.08.2008 14:34
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
Дата отгрузки заказа типа Контракт AlexeyBP DAX: Функционал 1 17.10.2006 13:53
Ошибка: фантомное дублирующее поле типа "дата" в гриде belugin DAX: Программирование 8 14.06.2006 00:15
Поля типа Container Андре DAX: Программирование 0 12.04.2002 10:07

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

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

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