Цитата:
Сообщение от
fialka
А можно пример...с set...вот есть поле какой-нибудь "Маркер", если выбрали галочку на этой строке, то нужно отправить в контейнер...
можно что-нибудь для примера, где можно посмотреть?
Пример - я же выше дал очень хороший пример, где приведен весь необходимый код.
Попробую описать последовательность шагов, которые нужно выполнить.
1. Объявляем в classDeclaration формы переменную типа Set markedSet;
2. В init формы, к примеру, инициализируем ее - markedSet = new Set(Types::Integer);
3. Делаем edit-method типа NoYes на источнике, и в коде этого метода пишем следующий код (похожий):
X++:
if (_set)
{
if (_value)
markedSet.add(_currentTableRecord.RecId); //или другое ключевое поле, по которому есть метод find
else
markedSet.remove(_currentTableRecord.RecId);
}
return markedSet.in(_currentTableRecord.RecId); //возвращает true или false
Потом, скажем, в методе closeOK (если это что-то типа диалоговой формы), необходимо перебрать и обработать.
X++:
SetIterator si = new SetIterator(markedSet);
PurchLine purchLine;
;
ttsbegin;
si.begin(); // переходим к первому элементу множества
while (si.more()) //перебираем все элементы
{
purchLine = PurchLine::findRecId(si.value(), true);
purchLine.PurchReceivedNow = 1;
purchLine.update();
si.next();
}
ttscommit;
// Здесь si.value() содержит RecId отмеченных записей
Вы что-то писали про засунуть в контейнер - я не совсем понял, про какой контейнер речь - про железный контейнер, то есть, к примеру, отбираем те строки, товар по которым отгружаем, или про Axapta container, то есть хотим хранить больше одного значения? Если второе, то вам не к п.2, а к п.3 или п.4