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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.02.2012, 15:20   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вообще-то, есть еще один вариант, но он потребует доработки Axapta.

Дело в том, что на самом деле, значение поля, которое возвращает RecordSet - это объект типа ComVariant. Преобразование его значения в значение "понятное" для Axapta выполняется в методе класса CCADOField.value(). Если посмотреть, что там происходит для даты, то

X++:
// Класс CCADOField
anytype value()
{
    COMVariant  value;

    value = field.value();
    switch (value.variantType())
    {
(...) 
       case COMVariantType::VT_DATE:
            return value.date();
            break;
(...) 
    }
}
Чтобы получить фрагмент со временем надо еще добавить value.time(). Ну, т.е. добавить для метода CCADOField.value() какой-нибудь входной параметр по которому добавлять к дате кусок со временем. Формировать символьную строку.

X++:
// Класс CCADOField
anytype value(Boolean _dateWithTime = false)
{
    COMVariant  value;

    value = field.value();
    switch (value.variantType())
    {
(...) 
       case COMVariantType::VT_DATE:
            if (_dateWithTime)
            {
                return strFmt("%1 %2",value.date(),time2str(value.time(),1,1));
            }
            else
            {
                return value.date();
            }
            break;
(...) 
    }
}
Соответственно, вызов из кода данного метода будет выглядеть так

X++:
str   dateWithTime;

command.commandText("select * from EVENTS where ...");
rs = command.execute();
while (!rs.eof())
{
    dateWithTime = rs.fields().itemName("DateTime").value(true);
    info(dateWithTime);
    rs.moveNext();
}
cn.close();
Впрочем, сам я это не пробовал. Предполагаю только теоретически, что подобное должно работать.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 09.02.2012 в 15:28.
За это сообщение автора поблагодарили: Bega (5), IvanS (1).
Теги
ado, ax4.0, date, datetime, time

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не могу спрятать поле! andriy_s DAX: Программирование 4 18.03.2010 15:38
Пересоздание таблицы при синхронизации Serg16 DAX: Администрирование 1 26.08.2009 13:55
Advanced query range value expressions: поле таблицы - имя вcтроенной функции year(). ATimTim DAX: Программирование 12 27.03.2009 18:16
Не могу полчить данные из таблицы velk DAX: Программирование 2 04.04.2006 16:05
Поле-ссылки на разные таблицы Хилари DAX: Программирование 2 19.04.2004 17:17

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

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

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