30.08.2013, 09:25 | #1 |
Участник
|
Передача нескольких строк в класс
Всем доброго дня.
На форме есть Grid. В Grid выделяю три строки. На форме есть кнопка, на неё повесит menuItem, указал DataSource. MenuItem вызывает класс. Как в классе обработать именно те три строки которые я выделил в Grid? пробовал X++: public static void main(Args args) { SalesTable salesTable; ; salesTable = args.record(); while select salesTable { info (salesTable.SalesId); } } |
|
30.08.2013, 09:50 | #2 |
Участник
|
сделал
X++: public static void main(Args args) { SalesTable salesTable; Common record; FormDataSource recordDataSource; int i; ; record = args.record(); if (record) recordDataSource = args.record().dataSource(); for (salesTable = recordDataSource.getFirst(true) ? recordDataSource.getFirst(true) : args.record(); salesTable; salesTable = recordDataSource.getNext()) { info (salesTable.SalesId); } } Прошу простить если кого-то отвлек. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
30.08.2013, 10:42 | #3 |
Участник
|
Столкнулся дальше с проблемой. Есть класс PurchCreateFromSalesOrder. Он вызывается при создании заказа на покупку из заказа на продажу. Изначально можно было выделить только один заказ на продажу, я сделал мультиселект и хочу вызывать класс для каждой из выделенных строк.
X++: menuFunction = new menufunction(menuitemActionStr(PurchCreateFromSalesorderSales), menuitemtype::Action); if (record) recordDataSource = args.record().dataSource(); for (salesTable = recordDataSource.getFirst(true) ? recordDataSource.getFirst(true) : args.record(); salesTable; salesTable = recordDataSource.getNext()) { _args.record(salesTable); // на этой строке вываливает в дебагер _args.menuItemName(menuFunction.name()); _args.menuItemType(menuFunction.type()); menuFunction.run(_args); } Последний раз редактировалось smailik; 30.08.2013 в 11:27. |
|
30.08.2013, 11:17 | #4 |
Участник
|
Переменная _args проинициализирована?
X++: _args = new Args(); |
|
|
За это сообщение автора поблагодарили: smailik (1). |
30.08.2013, 11:28 | #5 |
Участник
|
блин, нет не проинициализирована
сейчас все заработало окончательный вариант X++: public static void main(Args _args) { SalesTable salesTable; Common record; Args args = new Args(); FormDataSource recordDataSource; menuFunction menuFunction; int i; ; record = _args.record(); menuFunction = new menufunction(menuitemActionStr(PurchCreateFromSalesorderSales), menuitemtype::Action); if (record) recordDataSource = _args.record().dataSource(); for (salesTable = recordDataSource.getFirst(true) ? recordDataSource.getFirst(true) : _args.record(); salesTable; salesTable = recordDataSource.getNext()) { args.record(salesTable); args.menuItemName(menuFunction.name()); args.menuItemType(menuFunction.type()); menuFunction.run(args); } } Последний раз редактировалось smailik; 30.08.2013 в 11:31. |
|