Показать сообщение отдельно
Старый 20.09.2012, 19:11   #11  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
В общем, если отбросить всякие "если" Вам нужен edit метод, который отображает\изменяет наличие вашей записи в числе выбраных.
В качестве хранилища скорее всего - Set(приведу ссылку ниже) в качестве ключа - скорее всего RecId(уникальный идентификатор записи в таблице), в редких случаях, когда, допустим, ещё нужно что-то сделать со всеми невыбранными записями используют Map, где ключ RecId или уникальный идентификатор, а значение - состояние - выбран или нет(enum NoYes). Так же Map может подойти, если Вы храните только выбранные записи, но хотите хранить вместе с ключем выбранной записи ещё и какие-то о ней дополнительные сведенья(чтобы не лезть потом запросом в базу и не доставать эти данные заново). Но, повторюсь, скорее всего вам нужен Set (http://www.axaptapedia.com/index.php?title=Set_Class) в качестве хранилища.
Логика такая: если RecId записи в Set - запись выбрана, RecId записи вне Set - запись не выбрана.
Добавление, удаление и проверка соответственно производятся методами Set: add, remove, in.
Управлять добавлением, удалением и отображением (проверкой элемента в множестве выбранных записей) должен edit метод(http://www.axaptapedia.com/index.php?title=Edit_method), к которому вы привяжете соответствующий чекбокс грида(свойство контрола - dataMethod), сам эдит метод создайте на источнике данных(посмотрите по выше приведенной ссылке, чем отличаются эдит методы, объявленные в разных местах).

Set должен у вас храниться глобально, то есть объявлять его переменную нужно на уровне classDeclaration формы, ну и конечно же инициализировать до первого использования, то есть на init формы. Ссылки на стандарт Вам уже дали, я постарался более-менее объяснить как это работает. Удачи!
__________________
Axapta has seduced me deadly!