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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.04.2014, 10:59   #1  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
AX 2012 R2: как сменить первый день в календаре?
AX 2012 R2, Cumulative update 7.

Как в AX 2012 сменить первый день в календаре? В региональных настройках на клиенте и АОСе настройки даты-времени совпадают и в то время как в календаре windows первый день - это "Понедельник", лукап по дате в AX 2012 упорно показывает "Воскресенье".

P. S. Наткнулся в интернете на хотфикс, но нет времени проверять его, поэтому хотел узнать сталкивался ли кто и как решал такую задачу.
За это сообщение автора поблагодарили: gl00mie (2).
Старый 07.04.2014, 13:10   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
После небольшой проверки видно, что дело действительно в указанной функции Global::firstDayOfWeek(). Я лично в 2012-й не стал бы применять исправление с использованием класса WinAPI, потому что хотя сейчас этот метод используется в основном в lookup'е, но если вдруг его дернуть на сервере (тем более, в пакетном задании), то получится ерунда. Вот вариант исправления с использованием .NET, сделанный по аналогии с Global::firstWeekOfYear()
X++:
static int firstDayOfWeek()
{
    System.Globalization.DateTimeFormatInfo fi;
    // gl00mie, 07.04.2014 -->
    System.Globalization.CultureInfo        ci;
    str                                     lng;
    // gl00mie, 07.04.2014 <--
    int dow;

    SysGlobalCache  cache   = classfactory.globalCache();
    int             clientFirstDayOfWeek;

    if (cache.isSet(classStr(Global), funcName()))
    {
        clientFirstDayOfWeek = cache.get(classStr(Global), funcName());
    }
    else
    {
        // gl00mie, 07.04.2014 -->
        lng = currentUserLanguage();
        ci = new System.Globalization.CultureInfo(lng);
        fi = ci.get_DateTimeFormat();
        /*
        fi = new System.Globalization.DateTimeFormatInfo();
        */
        // gl00mie, 07.04.2014 <--        
        dow = fi.get_FirstDayOfWeek();

        // The .NET API returns 0 for sunday, but we expect sunday to
        // be represented as 6, (monday is 0).
        clientFirstDayOfWeek = (dow + 6) mod 7;

        cache.set(classStr(Global), funcName(),clientFirstDayOfWeek);
    }

    return clientFirstDayOfWeek;
}
За это сообщение автора поблагодарили: Logger (3), leva (2), AvrDen (1), MikeR (6), S.Kuskov (5), Kabardian (6).
Теги
ax2012, ax2012r2, bug, календарь, ошибка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: AX Content: Document management for Microsoft Dynamics AX 2012 R2 Blog bot DAX Blogs 0 31.03.2014 20:14
mfp: AX 2012 R2 CU7 has been released! Blog bot DAX Blogs 14 26.11.2013 12:12
Dynamics AX Sustained Engineering: Announcing Compatibility Certification of App-V 5.0 and TFS 2012 with Dynamics AX 2012 CU5 and Dynamics AX 2012 R2 CU1 Blog bot DAX Blogs 0 01.06.2013 04:38
dynamicscpm: Announcing compatibility with Dynamics AX 2012 R2 and Dynamics GP 2013 Blog bot DAX Blogs 0 20.12.2012 01:11
emeadaxsupport: AX for Retail 2012 R2: Installing the Real-time Service Blog bot DAX Blogs 0 19.12.2012 11:11

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

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

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