|  02.04.2007, 15:57 | #1 | 
| Участник |  Как в форме 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();и я никак не могу придумать какое же value надо чтобы query сработал. Там видимо в базе какое-то число типа real. А надо просто спрятать в форме те записи у которых AmoutCur равен 0,00 или -0,00.   | 
|  | 
|  02.04.2007, 16:08 | #2 | 
| Программатор | 
			
			sysQuery::ValueNot(.. criteriaZeroAmount.value(sysQuery::ValueNot('0')); как то так   | 
|  | 
|  02.04.2007, 16:09 | #3 | 
| NavAx | 
			
			queryNotValue не пробовал?
		 
				__________________ Isn't it nice when things just work? | 
|  | 
|  02.04.2007, 16:19 | #4 | 
| Участник | 
			
			Ни queryNotValue ни sysQuery::ValueNot('0') не помогло! полная форма CustTrans с -0,00 и 0,00! Там какой-то длинный  real видимо...
		 | 
|  | 
|  02.04.2007, 16:24 | #5 | 
| Участник | 
			
			Во-первых, надо все таки queryNotValue(0); //без кавычек - так правильнее. во-вторых, если не работает, значит или дальше где-то фильтры очищаются, или еще чего-нить. смотрите код. Если используете Tabax, воспользуйтесь кнопкой браузера с Ctrl+Shift для просмотра текущего запроса. | 
|  | 
|  02.04.2007, 16:39 | #6 | 
| Участник | 
			
			queryNotValue(0);  не работает! и когда смотришь какой query используется - то там Amount !0 | 
|  | 
|  02.04.2007, 16:41 | #7 | 
| Программатор | 
			
			a sysQuery::ValueNot(0));??
		 | 
|  | 
|  02.04.2007, 16:53 | #8 | 
| NavAx | 
			
			та-ак, пойдем от обратного. queryValue(0); правильно отрабатывает?
		 
				__________________ Isn't it nice when things just work? | 
|  | 
|  02.04.2007, 17:02 | #9 | 
| Участник | Цитата: 
		
			queryValue(0); правильно отрабатывает?
		
	 а мне надо просто НЕ выводить те, у которых в форме 0,00 или -0,00 !!! | 
|  | 
|  02.04.2007, 17:07 | #10 | 
| Злыдни | 
			
			Если проблема с числами, у которых значения со значащими цифрами далеко от десятичного разделителя, то предлагаю округлить значение до четых знаков, а потом провести сравнение с нулем
		 
				__________________ люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. | 
|  | 
|  02.04.2007, 17:13 | #11 | 
| Участник | 
			
			А если так? 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 | 
| Участник | 
			
			AndyD  X++: .value("((AmountCur<=-0.005) || (AmountCur >= 0.005))"); | 
|  | 
|  02.04.2007, 17:58 | #13 | 
| Участник | Цитата: До записи любой суммы в основной валюте нужно использовать метод currency::amount() До записи любой суммы в валюте нужно использовать метод Currency::AmountCur() и т.п. Там несколько различных методов на разные случаи жизни. Кстати, количество тоже до записи надо округлять. Стандартный функционал всегда это делает. Подобные малые доли чреваты очень труднообнаружимыми ошибками. Ищите свои модификации. | 
|  |