|  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. | 
|  |