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 |
Участник
|
Вот только Ctrl+A никто не отменял
__________________
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
|
|
|