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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2018, 16:16   #1  
opsvlad is offline
opsvlad
Участник
 
118 / 13 (1) ++
Регистрация: 05.07.2018
Фокус на текущий месяц
Здравствуйте, решил сделать календарь месяцев года и тут сложилась одна проблема. Фокус у меня не попадает на текущий месяц, попадает сразу на 1 месяц январь, при переключении месяца не смещаются.
Делал календарь по аналогии SysDateLookUp, если попросите то могу проект кинуть
Вот фото + форма:
Миниатюры
Нажмите на изображение для увеличения
Название: monthcalendar.png
Просмотров: 18
Размер:	12.3 Кб
ID:	12001  
Вложения
Тип файла: xpo Form_SysDateLookUp_MonthsYear_OD.xpo (29.8 Кб, 12 просмотров)

Последний раз редактировалось opsvlad; 08.08.2018 в 16:56.
Старый 09.08.2018, 08:59   #2  
opsvlad is offline
opsvlad
Участник
 
118 / 13 (1) ++
Регистрация: 05.07.2018
Получилось добиться выделения именно текущего месяца в таблице, но фокус не попадает на этот месяц, и плюс я не могу понять почему текущий месяц меняется в других годах.
Старый 09.08.2018, 09:03   #3  
opsvlad is offline
opsvlad
Участник
 
118 / 13 (1) ++
Регистрация: 05.07.2018
исправил выделение текущего месяца в других годах, забыл сравнить год даты с годом текущей даты
X++:
public FormControl editControl(int _column, int _row)
{
    date            drawingDate;
    ;
    drawingDate = this.data(_column, _row);

    if (dateCellMonth_OD)
    {
        dateCellMonth_OD.backgroundColor(WindowsPalette::WindowBackground);
        // do something special for the cell with todays date
        if ( mthofyr(drawingDate) == mthofyr(systemdateget()) && year(drawingDate) == year(systemdateget()))
        {
            dateCellMonth_OD.backgroundColor(WindowsPalette::TooltipBackground);
        }

        dateCellMonth_OD.foregroundColor(WindowsPalette::WindowText);
    }

    return dateCellMonth_OD;
}
Старый 09.08.2018, 09:04   #4  
opsvlad is offline
opsvlad
Участник
 
118 / 13 (1) ++
Регистрация: 05.07.2018
и подскажите тут все правильно написано?
X++:
void drawMonth()
{
 date selectedDateBeforeDrawing;
    date drawingDate = startYear;
   // date curMonth   = startMonth;
    int d,w, id,iw;


    selectedDateBeforeDrawing = selectedDate.dateValue();

    element.lock();
    monthsyearTable.visible(false);

    for (w = 1; w <= 3+1; w++)
    {
        for (d = 1; d <= 4-1; d++)
        {

            if((year(drawingDate) >= year(dateNull())) && (year(drawingDate) <= year(maxDate())))
          {
               monthsyearTable.cell(d, w).data(drawingDate);
                //drawingDate = curMonth;
               drawingDate = nextMth(drawingDate);

          }

            if (drawingDate == selectedDateBeforeDrawing)
            {
                id = d;
                iw = w;
            }
      // startYear++;
        }
    }

    endYear = drawingDate;


    element.unLock();

    YearCaption.text(strFmt("%1", year(startYear)));

    monthsyearTable.visible(true);

    if (id && iw)
    {
        monthsyearTable.column(id);
        monthsyearTable.row(iw);
        monthsyearTable.setFocus();
    }
    else
    {
        monthsyearTable.setFocus();
    }
    selectedValue = selectedDateBeforeDrawing;
    element.enableNextButton();
    element.enablePrevButton();
}
Старый 09.08.2018, 09:23   #5  
БАХ43 is offline
БАХ43
Участник
 
44 / 33 (2) +++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
- Товарищ прапорщик, мы хотим на рынок попасть. Мы правильно идем?
- Да где же правильно? Голеностоп вихляет, шаг не печатаете, да и вообще не в ногу идете.
Не обижайся, но в чужом дерьме ковыряться вообще неохота. Своего по самые..., ну кому-то по пояс будет.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Старый 09.08.2018, 09:24   #6  
БАХ43 is offline
БАХ43
Участник
 
44 / 33 (2) +++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Самое главное забыл написать. Если работает так как задумано, то значит написано правильно .
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!
Старый 09.08.2018, 09:25   #7  
opsvlad is offline
opsvlad
Участник
 
118 / 13 (1) ++
Регистрация: 05.07.2018
Ладно, попробую сам разобраться, просто я новичок в Axapta, 2 месяц как учусь в этой программе
Старый 09.08.2018, 13:56   #8  
Pustik is offline
Pustik
Участник
 
786 / 337 (13) ++++++
Регистрация: 04.06.2004
как вариант :
X++:
void run()
{
    TransDate tmpdate;
    ;
    this.drawMonth();
    
    super();
    
    for (tmpdate = datestartyr(systemdateget()); tmpdate != datestartmth(systemdateget()); tmpdate = nextmth(tmpdate))
    {
        element.task(#taskTab);
    }

}
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
За это сообщение автора поблагодарили: opsvlad (1).
Старый 09.08.2018, 14:10   #9  
opsvlad is offline
opsvlad
Участник
 
118 / 13 (1) ++
Регистрация: 05.07.2018
Можете объяснить как макросы работают, я посмотрел на них там просто числовое значение, а как они работают вообще
Старый 09.08.2018, 14:52   #10  
Pandasama is offline
Pandasama
Участник
 
130 / 18 (1) ++
Регистрация: 11.08.2014
Адрес: Барнаул
Макросы работают просто: в процессе компиляции макрос заменяется на свое значение.
Есть, конечно, всякие извраты с условными макросами, макросами с параметрами и т.д. - но это ересь и использовать это нельзя.
Вообще использовать макросы для чего-либо кроме констант - строго не рекомендуется.
Старый 09.08.2018, 15:16   #11  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
480 / 482 (17) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Вообще не рекомендуется их использовать в текущей версии, зачем учиться чтобы потом переучиваться?
Старый 09.08.2018, 15:19   #12  
Pustik is offline
Pustik
Участник
 
786 / 337 (13) ++++++
Регистрация: 04.06.2004
Сами по себе макросы не работают. И макросы это не всегда просто цифры. Это некие конструкции, как подсказка компилятору подставить текст макроса (с параметрами) вместо его каждого вызова.
Например :
X++:
select forupdate inventTrans
        index hint TransIdIdx
        order by StatusIssue,InventDimId
            where inventTrans.InventTransId   == movement.transId()             &&
                  inventTrans.StatusReceipt   == StatusReceipt::None            &&
                  inventTrans.StatusIssue     >= caseStatusIssueFrom            &&
                  inventTrans.StatusIssue     <= caseStatusIssueTo              &&
                  inventTrans.TransChildType  == movement.transChildType()      &&
                  inventTrans.TransChildRefId == movement.transChildRefId()
        #InventDimExistsJoin(InventTrans.inventDimId,inventDimJoin,inventDimCriteria,inventDimParmCriteria);
Лучше конечно почитать вот здесь :
https://docs.microsoft.com/en-us/dyn...er/macros-in-x
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 10.08.2018, 15:26   #13  
opsvlad is offline
opsvlad
Участник
 
118 / 13 (1) ++
Регистрация: 05.07.2018
Фокус на текущий месяц
Вот реализовал проект месяца, может кому-нибудь надо
Вложения
Тип файла: xpo Form_SysDateLookUp_MonthsYear_OD.xpo (28.4 Кб, 8 просмотров)
За это сообщение автора поблагодарили: ax_mct (3).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фокус на разворачиваемой группе полей Eldar9x DAX: Программирование 2 10.06.2013 16:06
Как вернуть фокус на форму после вызова infolog? rkorchagin DAX: Программирование 2 07.04.2009 12:59
Расчет табеля с исправляющей строкой за предыдущий месяц nicko DAX: Функционал 10 30.03.2008 20:12
Фокус Grid (определить под фокусом ли грид) Андрей К. DAX: Программирование 4 26.09.2007 13:34
Фокус контрола в визарде exceptor DAX: Программирование 5 24.12.2004 08:40
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:25.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.