|  18.08.2011, 16:41 | #1 | 
| Участник | Множественное значение 
			
			Здраствуйте! Подскажите какой control надо на форму кинуть, чтобы обрабатывать значения типа: 2*, 3* или !2, 3* (чтобы можно запятыми разделять было) - сейчас кинул IntEdit, он не дает этого сделать. Может надо дописать метод какой?И как такие числа в памяти отображаются, я так понимаю 2* значит 2000-2999??? Спасибо!
		 | 
|  | 
|  18.08.2011, 16:47 | #2 | 
| Участник | |
|  | 
|  18.08.2011, 17:06 | #3 | 
| Участник | 
			
			Какой вопрос - такой ответ   Как вы хотите использовать это поле? 
				__________________ Ivanhoe as is.. | 
|  | 
|  18.08.2011, 17:14 | #4 | 
| Участник | 
			
			В это поле будет вводиться статья затрат, затем значение control'a будет использованно в while select. Я кинул StringEdit и из него получаю значение, то что нужно! Спасибо S.Kuskov ))) Мне интересно каким образом оно в памяти представлено? Введя 2* под отладчиком увидел в значении - 2. Спасибо за помошь!
		 | 
|  | 
|  18.08.2011, 17:26 | #5 | 
| Участник | 
			
			Забавно, а селект то правильно работает? Можете привести код селекта?
		 
				__________________ Ivanhoe as is.. | 
|  | 
|  18.08.2011, 19:23 | #6 | 
| Участник | 
			
			Сейчас не на работе)) Поэтому примерно так выглядит vendDim = str2int(StrEdit.valueStr()); X++: while select _vendTrans where _vendTrans.Dimension[2] == vendDim && _vendTrans.TransDate >= toDate && _vendTrans.TransDate <= fromDate { <- . VendTable } Последний раз редактировалось JuniorAx; 18.08.2011 в 19:26. | 
|  | 
|  18.08.2011, 19:48 | #7 | 
| Участник | 
			
			А можно вопрос? Почему вы вообще решили что вам нужно целочисленное, а не строковое значение? Поле _vendTrans.Dimension[2] хранит текстовое, а не числовое значение. Поэтому переменная vendDim из вашего примера тоже должна быть объявлена как строка. Соответственно при инициализации этой переменной не нужно использовать функцию преобразования из строки в число str2int. X++: // Вместо // vendDim = str2int(StrEdit.valueStr()); vendDim = StrEdit.valueStr(); Последний раз редактировалось S.Kuskov; 18.08.2011 в 20:02. | 
|  | 
|  18.08.2011, 20:00 | #8 | 
| Участник | 
			
			Невнимательность и поспешность! :-) Спасибо!
		 | 
|  | 
|  18.08.2011, 20:22 | #9 | 
| Участник | 
			
			Я что-то не понимаю? Вы, похоже, хотите написать в поле "2*" и получить в выборке все значения аналитики, начинающиеся с двойки? Это не будет работать.
		 
				__________________ Ivanhoe as is.. | 
|  | |
| За это сообщение автора поблагодарили: JuniorAx (1). | |
|  18.08.2011, 20:32 | #10 | 
| Участник | 
			
			Да. Именно так и хочу, сделать, причем еще, чтобы была возможность, делать это сразу по нескольким статьям расходов. т.е. можно писать "2*, 3*, 4*". В чем моя ошибка не подскажете???
		 | 
|  | 
|  18.08.2011, 20:38 | #11 | 
| Участник | 
			
			Можно использовать в условии вместо равенства like. Но он работае только для маски, несколько условий через запятую передать нельзя Для этого переделайте на использование Query - в Range можно задавать сложные условия, в том числе и множественные 
				__________________ Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 18.08.2011 в 20:50. | 
|  | 
|  18.08.2011, 21:01 | #12 | 
| Участник | 
			
			qbds.addRange(value(vendDim)) - я так понимаю??? Сейчас Axapt'ы под рукой нет, не могу поэксперементировать.
		 | 
|  | 
|  19.08.2011, 08:00 | #13 | 
| Участник | |
|  | 
|  19.08.2011, 08:01 | #14 | 
| Участник | 
			
			Если имелось в виду SysQuery::Value(), то нет. Этот метод экранирует переданные метасимволы. Можно передавать условие так SysQuery::FindOrCreateRange(qbds, fieldId2Ext( fieldNum(VendTrans, Dimension), 2)).value(vendDim), либо так qbds.addRange(fieldId2Ext(fieldNum(VendTrans, Dimension), 2)).value(vendDim). Во втором случае, при каждом вызове addRange() будет добавляться новое условие. 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | |
| За это сообщение автора поблагодарили: JuniorAx (1). | |
|  19.08.2011, 08:10 | #15 | 
| Участник | |
|  | |
| За это сообщение автора поблагодарили: JuniorAx (1). | |
|  19.08.2011, 09:02 | #16 | 
| Участник | 
			
			Спасибо большое!!!
		 | 
|  | 
|  19.08.2011, 09:32 | #17 | 
| северный Будда | 
			
			Использовать в селектах ограничение по значению финаналитики ИМХО - очень нездоровое решение. Сегодня вам нужно отобрать 2*, а завтра понадобится 2*, 31??, !4040. Я бы сделал по-другому 1) добавил в custTrans новое поле NewCheckBox 2) Заполнял его в момент разноски накладной, если она удовлетворяет нужным критериям (например, по значению финаналитики) 3) В селектах по custTrans отбирал бы строки со значением NewCheckBox == true. 
				__________________ С уважением, Вячеслав | 
|  | 
|  19.08.2011, 09:52 | #18 | 
| Участник | Цитата: 
		
			Сообщение от pitersky
			   Использовать в селектах ограничение по значению финаналитики ИМХО - очень нездоровое решение. Сегодня вам нужно отобрать 2*, а завтра понадобится 2*, 31??, !4040. Я бы сделал по-другому 1) добавил в custTrans новое поле NewCheckBox 2) Заполнял его в момент разноски накладной, если она удовлетворяет нужным критериям (например, по значению финаналитики) 3) В селектах по custTrans отбирал бы строки со значением NewCheckBox == true. | 
|  | 
|  19.08.2011, 10:09 | #19 | 
| Участник | 
			
			Моя задача написать отчет по статьям затрат, поэтому и плясать от неё я и хочу. Нужно выводить статью затрат и все проводки поставщиков по ней с указанием кода, имени поставщика, суммы, даты и тексьта проводки! Все это, за исключением имени есть в VendTrans! И мне уже сейчас надо, реализовать  Цитата: 
		
			Сегодня вам нужно отобрать 2*, а завтра понадобится 2*, 31??, !4040.
		
	 | 
|  | 
|  19.08.2011, 10:50 | #20 | 
| северный Будда | Цитата: Ну и вообще финаналитика в моём понимании - это не источник данных для обработки, а инструмент управленческого анализа 
				__________________ С уважением, Вячеслав | 
|  |