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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2006, 14:37   #1  
36AC is offline
36AC
Участник
Аватар для 36AC
 
28 / 11 (1) +
Регистрация: 30.06.2005
Адрес: город М
Ошибка в формате числа.
на форме реаловское поле из таблицы, в ds на нем перекрыт Lookup
X++:
void lookup(FormRealControl _formControl, str _filterStr)
{
    Query                   lookupQuery = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;
    SysTableLookup          sysTableLookup;
    TableId                 tableId;
    FieldId                 fieldId;
    ;

    tableId = tableNum(PriceDiscTable);
    fieldId = fieldNum(PriceDiscTable, Amount);

    sysTableLookup = SysTableLookup::newParameters(tableId, _formControl);

    sysTableLookup.addLookupfield(fieldId);
    sysTableLookup.addLookupfield(fieldNum(PriceDiscTable, FromDate));
    sysTableLookup.addLookupfield(fieldNum(PriceDiscTable, ToDate));
    sysTableLookup.addLookupfield(fieldNum(PriceDiscTable, QuantityAmount));

    queryBuildDataSource = lookupQuery.addDataSource(tableId);

    queryBuildDataSource.orderMode(OrderMode::OrderBy);
    queryBuildDataSource.addSortField(fieldId);

    queryBuildDataSource.addRange(fieldNum(PriceDiscTable, AccountRelation)).value(RContractTable.RContractPartnerCode);
    queryBuildDataSource.addRange(fieldNum(PriceDiscTable, ItemRelation)).value(OR_ContractSpecification.ItemId);
//    queryBuildDataSource.addRange(fieldNum(PriceDiscTable, FromDate)).value(strfmt('<%1, %1, ""', RContractTable.ContractDate));
    queryBuildDataSource.addRange(fieldNum(PriceDiscTable, ToDate)).value(strfmt('>%1, %1, ""', RContractTable.ContractDate));
    queryBuildDataSource.addRange(fieldNum(PriceDiscTable, Currency)).value(RContractTable.CurrencyCode);

    sysTableLookup.parmQuery(lookupQuery);
    _formControl.performFormLookup(sysTableLookup.formRun());
}
при выборе из Lookup выпадает ошибка:
ошибка при вводе значения
Ошибка в формате числа.
Ошибка возникает если целая часть числа бльше 4 знаков, те 999.99 нет ошибки 1000.01 ошибка. Если руками вводить значение в поле ошибки нет( Что не так и что делать?
Старый 18.10.2006, 16:10   #2  
36AC is offline
36AC
Участник
Аватар для 36AC
 
28 / 11 (1) +
Регистрация: 30.06.2005
Адрес: город М
может обновление ядра поможет?
посмотрел в системе, везде где lookup реал такая фигня, может стоит задуматься об обновлении ядра?
Старый 18.10.2006, 16:14   #3  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Цитата:
Сообщение от 36AC Посмотреть сообщение
посмотрел в системе, везде где lookup реал такая фигня, может стоит задуматься об обновлении ядра?
А где везде? Можно имя хоть одной формы в студию.
Старый 18.10.2006, 16:27   #4  
KMV is offline
KMV
Участник
 
201 / 25 (1) +++
Регистрация: 11.10.2002
Адрес: Москва
Обратите внимание, что стандартная Аксапта не умеет делать lookup по Real полям:

X++:
void performFormLookup()
{
    FormStringControl   callingStringControl;
    FormIntControl      callingIntControl;
    FormDateControl     callingDateControl;
    ;
    if (!callingControl)
        throw(error(Error::wrongUseOfFunction(funcName())));

    switch (callingControl.handle())
    {
        case classNum(FormStringControl):
            callingStringControl = callingControl;
            callingStringControl.performFormLookup(this.formRun());
            break;
        case classNum(FormIntControl):
            callingIntControl = callingControl;
            callingIntControl.performFormLookup(this.formRun());
            break;
        case classNum(FormDateControl):
            callingDateControl = callingControl;
            callingDateControl.performFormLookup(this.formRun());
            break;
    }
}
Т.е, нужно смотреть уже Ваши изменения в классе SysTableLookup, на первый взгляд в методах: performFormLookup и formRun.
Старый 18.10.2006, 16:56   #5  
36AC is offline
36AC
Участник
Аватар для 36AC
 
28 / 11 (1) +
Регистрация: 30.06.2005
Адрес: город М
в студию...
Задача реал в лукапе мало кому необходима, в нашем доработанном функционале это цена, которая является неотъемлимой характеристикой товара, у нас она вынесена в аналитику и много где встречается. В стандарте... не встречал. про метод performFormLookup и отсутствие в нем кейса с реалом читал сто лет назад, но ... почем на сотни не ругается , а с тысячами трабл( Вот чего понять не могу...
Старый 18.10.2006, 16:58   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
По-моему это происходит из-за разделителя тысяч.
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: 36AC (1).
Старый 19.10.2006, 08:33   #7  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
А если на клиенте настроить отсутствие разделителей разрядов, ошибка повторяется?
За это сообщение автора поблагодарили: Hans (1).
Старый 19.10.2006, 10:04   #8  
36AC is offline
36AC
Участник
Аватар для 36AC
 
28 / 11 (1) +
Регистрация: 30.06.2005
Адрес: город М
Прокатило
Поставил в свойствах экстенда источника ThousandSeparator == None, заработало. Всем спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка (?) при печати приходного ордера в DAX 4.0 SP2 Ivanhoe DAX: Программирование 7 19.01.2021 14:13
Не запускается Axapta. Общая ошибка сети. Lucky13 DAX: Администрирование 3 25.09.2007 13:02
Ошибка при обработке С-Ф Sergo DAX: Программирование 7 20.01.2006 11:56
Ошибка при сохранении поставщика Filip DAX: Функционал 19 24.02.2004 08:32
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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