|  16.03.2012, 12:58 | #1 | 
| Участник | событие выделения строк в grid 
			
			Здравствуйте, господа. Не подскажет ли кто, есть ли возможность отследить в коде событие маркирования пользователем строк. Имеется ввиду кнопки слева и выделение - всё. С уважением, Дмитрий. | 
|  | 
|  16.03.2012, 13:05 | #2 | 
| Участник | 
			
			Попробуйте перекрыть метод markChanged() на датасорсе. Он, вроде, как раз и сообщает об изменениях вот этой части контрола. 
				__________________ If it ain't broke, take it apart and find out why (с) | 
|  | 
|  16.03.2012, 13:17 | #3 | 
| Участник | 
			
			Большое спасибо, Александр! А есть ли возможность определить каккая именно кнопка была нажата. Все или конкретная запись? С уважением, Дмитрий. Последний раз редактировалось DmitryK; 16.03.2012 в 13:48. | 
|  | 
|  16.03.2012, 14:44 | #4 | 
| Administrator | Цитата: X++: FormDataSource formDS; Common cursor; ; formDS = youTable_ds; if (formDS.anymarked()) { for (cursor = formDS.getFirst(1); cursor; cursor = formDS.getNext()) { myMethodProcess (cursor); } } else { myMethodProcess(formDS.cursor()); } 
				__________________ Возможно сделать все. Вопрос времени | 
|  | |
| За это сообщение автора поблагодарили: S.Kuskov (1). | |
|  16.03.2012, 15:06 | #5 | 
| Участник | |
|  | 
|  16.03.2012, 16:43 | #6 | 
| Участник | 
			
			Спасибо за пример кода. В общем, для проверки маркирования я нечто подобное и использовал (ds.getFirst(1)). Интересно было определить именно маркирование <все>. За подсказку БОЛЬШОЕ спасибо Сергею. С уважением, Дмитрий. Последний раз редактировалось DmitryK; 16.03.2012 в 16:46. | 
|  | 
|  23.05.2012, 15:58 | #7 | 
| Участник | 
			
			Здравствуйте! Я хотел бы задать уточняющий вопрос. Правильно ли я понимаю, что метод FormDataSource.defaultMark() должен срабатывать как событие при нажатии пользователем кнопки в гриде в левом верхнем углу? Просто у меня почему-то ни в 4.0, ни в 3.0 не срабатывает   | 
|  | 
|  23.05.2012, 16:28 | #8 | 
| Участник | 
			
			Это скорее свойство Т.е. перекрываете markChanged(), а внутри проверяете X++: if (FormDataSource.anyMarked()) { if (FormDataSource.defaultMark()) { // выбрано все } else { // выбрана конкретная запись } } 
				__________________ If it ain't broke, take it apart and find out why (с) Последний раз редактировалось Alexanderis.ua; 23.05.2012 в 16:30. | 
|  | 
|  23.05.2012, 16:39 | #9 | 
| Участник | 
			
			Спасибо, но markChanged(), к сожалению, появилось только в 2009, а в 4.0 его нет. В MSDN про defaultMark() написано: "This method is executed when a user clicks the top-left corner in a grid control to select all the records that are in the grid." По идее должно быть как событие... Последний раз редактировалось PMS; 23.05.2012 в 16:41. | 
|  | 
|  24.05.2012, 07:56 | #10 | 
| Участник | 
			
			в AX2009 тоже не срабатывает   Есть подозрение, что этот баг связан с тем, что для вызова этого метода система внутри себя использует ссылку не на FormDataSource, а на его базовый класс FormObjectSet. Который почему-то иногда забывает что его методы могут быть перекрыты на форме.  Вопрос по InventJournalTrans_ds.getNext() Конечно от этого ни холодно, ни жарко. Но есть надежда что в AX2012 заработает   Последний раз редактировалось S.Kuskov; 24.05.2012 в 07:59. | 
|  | 
|  24.05.2012, 11:28 | #11 | 
| Участник | 
			
			S.Kuskov, спасибо за развернутый ответ! Может быть тогда есть какие-то другие возможности отловить событие выбора всех записей в гриде вышеуказанным способом? | 
|  | 
|  24.05.2012, 12:14 | #12 | 
| Программатор | 
			
			Вам для чего это нужно? Что хотите получить на выходе?
		 | 
|  | 
|  24.05.2012, 12:31 | #13 | 
| Axapta | |
|  | |
| За это сообщение автора поблагодарили: S.Kuskov (1). | |
|  24.05.2012, 13:12 | #14 | 
| MCP | Цитата: X++: formDataSourceMarks = FormDataSourceMarks::construct(); formDataSourceMarks.parmFormDataSource(formDataSource); formDataSourceMarks. getMarksFromDataSource(); Последний раз редактировалось kornix; 24.05.2012 в 13:23. | 
|  | 
|  24.05.2012, 13:40 | #15 | 
| Участник | |
|  | 
|  24.05.2012, 13:48 | #16 | 
| Участник | Цитата:  Не пожете обработать событие - предотвратите его. Запретите выделение "кнопкой в гриде". Если поставить ShowRowLabels = No, то вместе с "заголовками" строк исчезнет и эта самая кнопка в верхнем левом углу грида. Нет кнопки - нет проблемы  . | 
|  | 
|  24.05.2012, 14:01 | #17 | 
| Участник | Цитата:   
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  24.05.2012, 14:06 | #18 | 
| Участник | |
|  | 
|  24.05.2012, 14:18 | #19 | 
| Участник | |
|  | 
|  24.05.2012, 14:20 | #20 | 
| MCP | |
|  |