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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.04.2007, 15:57   #1  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
? Как в форме CustTrans через query отобрать записи у которых AmountCur != 0 ( когда в QueryBuildRange ставишь value(strFmt('!0')); - не работает!)
Добрый день!

Как в форме CustTrans через query отобрать записи у которых AmountCur != 0
В DataSources->CustTrans->init:
X++:
criteriaZeroAmount =  this.query().dataSourceNo(1).addRange(fieldnum(CustTrans,AmountCur));
потом на клик чекбокса:
X++:
 criteriaZeroAmount.value(strFmt('!0'));
CustTrans_ds.executeQuery();
проблема в том, что значения AmountCur - в виде 0,00 или -0,00 ...
и я никак не могу придумать какое же value надо чтобы query сработал. Там видимо в базе какое-то число типа real.

А надо просто спрятать в форме те записи у которых AmoutCur равен 0,00 или -0,00.

Старый 02.04.2007, 16:08   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
sysQuery::ValueNot(..
criteriaZeroAmount.value(sysQuery::ValueNot('0'));
как то так
Старый 02.04.2007, 16:09   #3  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,254 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от rkorchagin Посмотреть сообщение
Как в форме CustTrans через query отобрать записи у которых AmountCur != 0
queryNotValue не пробовал?
__________________
Isn't it nice when things just work?
Старый 02.04.2007, 16:19   #4  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
Ни queryNotValue ни sysQuery::ValueNot('0') не помогло! полная форма CustTrans с -0,00 и 0,00! Там какой-то длинный real видимо...
Старый 02.04.2007, 16:24   #5  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Во-первых, надо все таки
queryNotValue(0); //без кавычек - так правильнее.

во-вторых, если не работает, значит или дальше где-то фильтры очищаются, или еще чего-нить. смотрите код.
Если используете Tabax, воспользуйтесь кнопкой браузера с Ctrl+Shift для просмотра текущего запроса.
Старый 02.04.2007, 16:39   #6  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
queryNotValue(0);
не работает! и когда смотришь какой query используется - то там Amount !0
Старый 02.04.2007, 16:41   #7  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
a sysQuery::ValueNot(0));??
Старый 02.04.2007, 16:53   #8  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,254 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от rkorchagin Посмотреть сообщение
queryNotValue(0);
не работает! и когда смотришь какой query используется - то там Amount !0
та-ак, пойдем от обратного. queryValue(0); правильно отрабатывает?
__________________
Isn't it nice when things just work?
Старый 02.04.2007, 17:02   #9  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
Цитата:
queryValue(0); правильно отрабатывает?
Не совсем! там конечно одни нули но нету записей с -0,00 ! и кстати часть записей которые 0,00 не попали в выборку! потому что они видимо в базе 0.0000000000001 !!!!
а мне надо просто НЕ выводить те, у которых в форме 0,00 или -0,00 !!!
Старый 02.04.2007, 17:07   #10  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Если проблема с числами, у которых значения со значащими цифрами далеко от десятичного разделителя, то предлагаю округлить значение до четых знаков, а потом провести сравнение с нулем
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 02.04.2007, 17:13   #11  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А если так?
X++:
this.query().dataSourceNo(1).addRange(fieldnum(CustTable, AmountCur)).value("((AmountCur<=-0.005) || (AmountCur >= 0.005))");
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: rkorchagin (1).
Старый 02.04.2007, 17:50   #12  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
AndyD
X++:
.value("((AmountCur<=-0.005) || (AmountCur >= 0.005))");
да! так сработало! спасибо!
Старый 02.04.2007, 17:58   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от rkorchagin Посмотреть сообщение
Не совсем! там конечно одни нули но нету записей с -0,00 ! и кстати часть записей которые 0,00 не попали в выборку! потому что они видимо в базе 0.0000000000001 !!!!
А в базе такие цифры потому что какой-то ***бип-бип*** программист у вас записывает в базу неокругленные суммы.

До записи любой суммы в основной валюте нужно использовать метод currency::amount()
До записи любой суммы в валюте нужно использовать метод Currency::AmountCur()
и т.п. Там несколько различных методов на разные случаи жизни.

Кстати, количество тоже до записи надо округлять. Стандартный функционал всегда это делает.

Подобные малые доли чреваты очень труднообнаружимыми ошибками.
Ищите свои модификации.
__________________
полезное на axForum, github, vk, coub.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Позиционирование курсора на конкретной записи в Data Source на форме funnut DAX: Программирование 26 30.01.2013 16:10
JOIN программно на форме не работает rohlenko DAX: Программирование 2 31.03.2005 15:41
Не работает стандартный фильтр на форме Julietta DAX: Прочие вопросы 4 06.12.2004 13:30
Не работает Query Dimitry DAX: Программирование 3 17.07.2003 16:36
Через какой порт работает AOS? Miha DAX: Администрирование 1 09.07.2003 11:57

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

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

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