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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.02.2007, 16:41   #41  
moid is offline
moid
Участник
 
84 / 10 (1) +
Регистрация: 05.02.2007
Спасибо все работает.
А что такое "Одобрить сообщение"?
Старый 21.02.2007, 16:43   #42  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от moid Посмотреть сообщение
Gustav, а как подобным образом вывести даты не последних, а первых дней месяца?
Помните, как в Comedy Club'е диалог по телефону что-то типа:
Цитата:
- А у вас можно заказать столик на двоих?
- Можно.
- А у вас можно заказать столик на троих?
- Можно.
- А у вас можно заказать столик на четверых?
- Вы знаете, у нас можно заказать столик на 4-х, 5-х, 6-х, 7-х, а также на 8-х, 9-х, 10-х и даже на 11-х и 12-х.
- ...А у вас можно заказать столик на 13-х?
moid, держите функцию для N-го вхождения заданного дня недели внутри месяца от начала:
X++:
static void Job56(Args _args)
{
    date DateOfNthWeekdayInMonth (int _nthWeekday, int _numOfEntry = 1, date _date = today () )
    {
        date    bomDate     = dateStartMth( _date );
        int     bomWeekday  = dayOfWk( bomDate );
        return  bomDate + (_nthWeekday - bomWeekday) 
                        + ( bomWeekday > _nthWeekday ? 7 : 0)
                        + (_numOfEntry - 1) * 7;
    }
    ;

    info( strFmt('%1', DateOfNthWeekdayInMonth( 1, 2 )) );
    info( strFmt('%1', DateOfNthWeekdayInMonth( 2, 2 )) );
    info( strFmt('%1', DateOfNthWeekdayInMonth( 3, 2 )) );
    info( strFmt('%1', DateOfNthWeekdayInMonth( 4, 2 )) );
    info( strFmt('%1', DateOfNthWeekdayInMonth( 5, 2 )) );
    info( strFmt('%1', DateOfNthWeekdayInMonth( 6, 2 )) );
    info( strFmt('%1', DateOfNthWeekdayInMonth( 7, 2 )) );
}
Результаты 2-го вхождения:
12.02.2007
13.02.2007
14.02.2007
08.02.2007
09.02.2007
10.02.2007
11.02.2007
За это сообщение автора поблагодарили: Himan (1), moid (1).
Старый 21.02.2007, 16:44   #43  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
Цитата:
Сообщение от moid Посмотреть сообщение
Спасибо все работает.
А что такое "Одобрить сообщение"?
Зеленый квадратик рядом с ником, вот когда одобряеш второе число повышается это типа рейтенга
__________________
Рабочий день сокращает жизнь на 8 часов
Старый 22.02.2007, 13:47   #44  
moid is offline
moid
Участник
 
84 / 10 (1) +
Регистрация: 05.02.2007
Продолжаем...

мне нужно к заданной дате прибавить несколько месяцев и число изменить на другое...

Пример:
Есть дата 22.02.2007, нужно число установить в 12 и прибавить 3 месяца. Причем если бы месяц был 11(22.11.2007), то год увеличивается и месяц = 2 (12.02.2008)
Старый 22.02.2007, 13:50   #45  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от moid Посмотреть сообщение
Продолжаем...

мне нужно к заданной дате прибавить несколько месяцев и число изменить на другое...

Пример:
Есть дата 22.02.2007, нужно число установить в 12 и прибавить 3 месяца. Причем если бы месяц был 11(22.11.2007), то год увеличивается и месяц = 2 (12.02.2008)
Может вы разберетесь как работают Интервалы дат в Аксапте?
http://axapta.mazzy.ru/lib/ledgerperiodcode/
__________________
полезное на axForum, github, vk, coub.
Старый 22.02.2007, 14:12   #46  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
что ж вы там такое с этими датами делаете??

X++:
    print mkDate(12, mthOfYr(nextQtr(SystemDateGet())), year(nextQtr(SystemDateGet())));
    pause;
Старый 22.02.2007, 14:24   #47  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от moid Посмотреть сообщение
Outlook на аксапте переписываю.
Да, фраза не для слабонервных.

А зачем?
тот, что в Офисе от Microsoft плохо работает?

Инетересно было бы посмотреть, что получится.
Или это строго коммерческая разработка?
Старый 22.02.2007, 14:29   #48  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от moid Посмотреть сообщение
Outlook на аксапте переписываю. И самое загонное это повторения...Вот и бьюсь с датами
О-о-о-о!!! Боже-ж мой...

Посмотрите как сделаны повторы в обработке пакетных заданий.

Ну почему?! Почему?! Почему не используется стандартный функционал?!
Ну ПОЧЕМУ же "переписываю"???????!!!!!

Я надеюсь когда-нибудь понять эту величайшую загадку программистов...
__________________
полезное на axForum, github, vk, coub.
Старый 22.02.2007, 14:32   #49  
moid is offline
moid
Участник
 
84 / 10 (1) +
Регистрация: 05.02.2007
Цитата:
print mkDate(12, mthOfYr(nextQtr(SystemDateGet())), year(nextQtr(SystemDateGet())));
Что такое nextQtr ?
И как в этой конструкции добавить несколько месяцев и лет?
Старый 22.02.2007, 14:34   #50  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
KERNDOC://Functions/nextQtr

См. nextYr, prevYr, nextMth, prevMth, ...
Kernel Functions, одним словом. (Shift + F4)
Старый 22.02.2007, 14:35   #51  
Косых Артём is offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Регистрация: 03.09.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
О-о-о-о!!! Боже-ж мой...

Посмотрите как сделаны повторы в обработке пакетных заданий.

Ну почему?! Почему?! Почему не используется стандартный функционал?!
Не ПОЧЕМУ же "переписываю"???????!!!!!

Я надеюсь когда-нибудь понять эту величайшую загадку программистов...
написать свою мегамодификацию - это уже, по-моему, классический дебют для Аксапта-программиста. Но пройдет время, мегамодификацию почему-то никто использовать не будет (с большой вероятностью в большинстве случаев), прийдет понимание, что не обязательно делать много, чтобы сделать хорошо...
Старый 22.02.2007, 14:48   #52  
moid is offline
moid
Участник
 
84 / 10 (1) +
Регистрация: 05.02.2007
Цитата:
KERNDOC://Functions/nextQtr

См. nextYr, prevYr, nextMth, prevMth, ...
Kernel Functions, одним словом. (Shift + F4)
Т.е. чтобы прибавить 10 месяцев нужно 10 раз вызвать nextMth.
А другого способа нет?
Старый 22.02.2007, 14:51   #53  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Есть!

Можно 1 раз вызвать nextYr и два раза prevMth()

А вообще, если уж пишите, попробуйте просто с использованием этих функций сделать универсальную свою.

А про интервалы вам не понравился совет?
Старый 22.02.2007, 18:01   #54  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от moid Посмотреть сообщение
Если использовать аутлук и аксапту платить нужно и за то и за другое, а если на аксапте сделать, замену аутлуку, то платить приходиться только за 1 продукт.
Но при этом вы будете платить за разработку своего "Аутлука" и за его поддержку. И за обучение пользователей, которые со стандартным Аутлуком знакомы, а с вашим - нет. Т.е. я бы не предсказал, что дешевле обойдется. Вернее предсказал бы. Мне почему-то кажется, что платить за отдельный продукт - будет дешевле. Для компании. В любом случае - удачи.

Чудес не бывает! (c) Совокупная стоимость владения виндоусом, например, далеко не всегда больше, чем владение "бесплатным" линуксом.
Старый 22.02.2007, 23:09   #55  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Talking
Цитата:
Сообщение от Косых Артём Посмотреть сообщение
написать свою мегамодификацию - это уже, по-моему, классический дебют для Аксапта-программиста.
Мое отношение к этому зависит от того, по чьему решению и за чей счет делается мегамодификация.

В свободное время, для освоения платформы может быть полезно. К тому же и интерес поддерживает.

Правда довод "за аутлук не надо платить" очень смешной.

Во-первых, человек явно не ценит свое время (интересно, сколько он вообще собирается жить - сколько человеколет вложено в разработку и тестирование аутлука)

Во-вторых, можно найти что-то бесплатное (Thunderbird + Sunbird, например) что будет как минимум не хуже того, что он напишет.

PS. А вот, например, Space Invaders на Аксапте
Старый 23.02.2007, 11:21   #56  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Ну что все так набросились на человека...
А то что встроенный в аксапту аутлук позволит реализовать workflow, любые одобрения, обмен сообщениями, посылать ссылки на документы, котрые будут открывать эти документы и прочее, конечно если все это в нем допилить.
Старый 23.02.2007, 11:54   #57  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от raz Посмотреть сообщение
Ну что все так набросились на человека...
А то что встроенный в аксапту аутлук позволит реализовать workflow, любые одобрения, обмен сообщениями, посылать ссылки на документы, котрые будут открывать эти документы и прочее, конечно если все это в нем допилить.
аутлук не реализовывает workflow.
одобрения см в управлении платежами
ссылки на документы см в документооброте.

разве что обмен сообщениями...
__________________
полезное на axForum, github, vk, coub.
Старый 23.02.2007, 13:04   #58  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от mazzy Посмотреть сообщение
аутлук не реализовывает workflow.
я же не про стандартный аутлук говорю, а про самописный, и при его помощи можно реализовать подобие workflow, что бы некий документ прошел несколько человек, котрые сделав с ним что то, могли породить другие докуметы и т.д.
документ - это не файл *.doc, а аксаптовый журнал (sales, purch, ledger, invent...).

Цитата:
Сообщение от mazzy Посмотреть сообщение
одобрения см в управлении платежами
ну это жалкое подобие того что нужно
Старый 28.02.2007, 16:30   #59  
moid is offline
moid
Участник
 
84 / 10 (1) +
Регистрация: 05.02.2007
Есть строка (1100001), которая определяет день недели. Единицы означают, что день выбран (понедельник,вторник, воскресенье). Нули соответственно не выбранные дни.

Нужна функция, в параметрах которой передаются: дата начала, кол-во недель.

X++:
date WeekNt(date _date, int Coun)
{
//нужно, чтобы эта функция возвращала дату следующего выбранного дня недели 
//относительно _date + Coun
//К примеру: к 28.02.2007 прибавляем 3 недели и ф-я должна вернуть выбранный
// день. 
}
Дальше если взять дату от полученного дня, то должна вернуться дата
следующего выбранного дня, если больше выбранных дней нет в этой неделе, то к
дате прибавляем Coun и смотрим новую неделю

Последний раз редактировалось moid; 28.02.2007 в 16:38.
Старый 28.02.2007, 17:03   #60  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от moid Посмотреть сообщение
Дальше если взять дату от полученного дня, то должна вернуться дата
следующего выбранного дня, если больше выбранных дней нет в этой неделе, то к
дате прибавляем Coun и смотрим новую неделю
(ой, маманя... )
А можно от руки расписать несколько последовательных вызовов функции и значений, которые будут возвращаться?
Может, чисто визуально глядя на последовательность что-нить и родится... Распишите здесь, вместе поглядим

P.S. ИМХО Coun бы только куда-нибудь довели до "общепринятого": либо до Count, либо до cnt, а то прямо на стуле ерзаю от такого идентификатора
Теги
дата

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Подробный отчет по датам к оплате ax_f DAX: Функционал 3 15.11.2004 17:10

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

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

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