|  22.11.2018, 15:09 | #1 | 
| Сенбернар | Вывести на форму количество выбранных записей грида 
			
			Собственно, вопрос у́же: за какой именно метод "зацепить" подсчет этих самых записей.  Лично мне понравился selectionChanged() на датасорсе, но в 2009-й его, по несчастью, нет. А у меня таки 2009-я. Any idea? 
				__________________ Best Regards, Roman | 
|  | 
|  22.11.2018, 15:25 | #2 | 
| Участник | 
			
			В AX2012 и в D365 X++: private Array recordsMarkedArray; int cntMarkedLines; recordsMarkedArray = datasource.recordsMarked(); cntMarkedLines = recordsMarkedArray.lastIndex(); Посмотрите класс MultiSelectionHelper, может пригодится | 
|  | 
|  22.11.2018, 15:37 | #3 | 
| Сенбернар | 
			
			Повторяю - у меня 2009-я. Про красивости в 2012 в курсе, не у меня их нет.
		 
				__________________ Best Regards, Roman | 
|  | 
|  22.11.2018, 15:50 | #4 | 
| Участник | 
			
			А если повесить подсчет на метод mark грида? Должно заработать.
		 
				__________________ Существует 10 типов людей: одни понимают двоичную систему, другие - нет. | 
|  | 
|  22.11.2018, 15:58 | #5 | 
| Сенбернар | 
			
			Нет в 2009-й метода mark() на гриде.
		 
				__________________ Best Regards, Roman | 
|  | 
|  22.11.2018, 16:05 | #6 | 
| Участник | 
			
			Упс, перепутал, на enter, попробовал воспроизвести - работает.
		 
				__________________ Существует 10 типов людей: одни понимают двоичную систему, другие - нет. | 
|  | |
| За это сообщение автора поблагодарили: RVS (3). | |
|  22.11.2018, 16:51 | #7 | 
| Сенбернар | 
			
			Спасибо.
		 
				__________________ Best Regards, Roman | 
|  | 
|  22.11.2018, 16:52 | #8 | 
| северный Будда | 
			
			Я бы просто повесил кнопку, по нажатию на которую рассчитывал это самое количество А потом убедил бы пользователей что это есть пример Майкрософт бест практис 
				__________________ С уважением, Вячеслав | 
|  | 
|  23.11.2018, 07:34 | #9 | 
| Мрачный тип | 
			
			Есть мнение, что сюда у датасорса пихать можно вызов подсчета - markChanged, active, executeQuery.  Но будьте готовы к тому, что какая-нибудь Йаркая и Свободная Личность™ сделает выделение всех записей на гриде по "жирной" таблице с парой сотен тыщ записей и будет Вам мозг выносить из-за того, что у нее все зависнет, пока идет перебор пометки и подсчет.. 
				__________________ Мы летаем, кружимся, нагоняем ужасы ... | 
|  | |
| За это сообщение автора поблагодарили: RVS (3), Stitch_MS (2). | |
|  23.11.2018, 12:02 | #10 | 
| Administrator | 
			
			А почему бы не проэмулировать галочку в AX2012 в AX2009? Она будет edit-методом, которая запихивает в Set RecId выделенной записи (Да - RecId есть в Set-е и Нет - нет в Set-е). Общее количество выделенных записей - это количество элементов в Set-е (считается быстро). Делаем дисплей-метод (не в гриде само собой  ))), в котором возвращаем количество элементов в Set-е. Плох такой вариант? Пользователей обучить пользоваться галкой вместо Ctrl. По опыту - привыкают быстро и хотят повторения на других формах  )) 
				__________________ Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 23.11.2018 в 12:05. | 
|  | 
|  23.11.2018, 12:49 | #11 | 
| Сенбернар | 
			
			Зачем все это понадобилось: есть форма, на которой отображаются данные о файлах, прилетевших в результате некой "интеграции с". В динамике иногда интересно количество необработанных, обработанных за период, ошибочных и т.п.  Отсюда и желание "посчитать выделенные". А пользователи - пока что я и еще пара человек, которым эта форма интересна. Цитата: Цитата: Замечательно... выходит (с) Иа-Иа. 
				__________________ Best Regards, Roman | 
|  | 
|  23.11.2018, 12:59 | #12 | 
| Мрачный тип | 
			
			active() - наверное, да, лишним будет... А вот executeQuery() - надо проверить, срабатывает ли markChanged() при наличии пометки и последующей фильтрации датасорса, когда помеченные записи после фильтрации частично или полностью оказыаются скрытыми. Если нет, то без вызова подсчета после отработки super() в executeQuery() можно увидеть пустой грид и ненулевое кол-во помеченных - не совсем адекватная картина получается 
				__________________ Мы летаем, кружимся, нагоняем ужасы ... | 
|  | 
|  23.11.2018, 13:19 | #13 | 
| Administrator | 
			
			А как записи будут выделяться? Через Ctrl? Еще более неудобно. Через Ctrl+A после того, как будет наложен фильтр? Можно сделать кнопку типа "Пометить все записи" и / или "Пометить выделенные" (а выделенные перебирать штатным способом обхода выделенных строк)
		 
				__________________ Возможно сделать все. Вопрос времени | 
|  | 
|  23.11.2018, 13:57 | #14 | 
| Участник | 
			
			Еще в методе  task() формы лучше обрабатывать событие 778 (когда пользователь нажимает CTRL+A), туда тоже добавить пересчет.
		 
				__________________ Существует 10 типов людей: одни понимают двоичную систему, другие - нет. | 
|  |