|
16.11.2010, 08:37 | #1 |
Участник
|
Как создать обработку для нескольких строк?
Добрый день! Подскажите, пожалуйста, как создать многострочную обработку в Axapta 3, т.е. обработку для нескольких строк формы (например, как это сделано для нескольких заказов в плане создания накладных). Нужно перекрывать методы на источнике данных формы? Спасибо.
|
|
16.11.2010, 08:52 | #2 |
Участник
|
Поищите на форуме по ключевым слову MultiSelect.
Например одна из веток Можно ли достать строки из Multiselect'a в Grid'e Последний раз редактировалось S.Kuskov; 16.11.2010 в 08:55. |
|
|
За это сообщение автора поблагодарили: ski (1). |
16.11.2010, 09:11 | #3 |
Участник
|
Для кнопок есть свойство "MultiSelect", которое и определяет обработку по нескольким строкам. Но как передается в menuItem несколько записей?
|
|
16.11.2010, 09:20 | #4 |
Участник
|
Вы создаете MenuItemButton на основе MenuItem, указываете датасоурс в свойствах новой кнопки и свойство MultiSelect ставите в "Yes".
__________________
С уважением, Александр. |
|
16.11.2010, 09:24 | #5 |
Участник
|
в menuItem передаётся не записи а ссылка на источник данных, по которой можно определить как текущую позицию курсора, так и все выделенные, либо даже вообще все отфильтрованные записи.Если совсем конкретно, то вам нужны методы getFirst и
Последний раз редактировалось S.Kuskov; 16.11.2010 в 09:36. |
|
16.11.2010, 10:11 | #6 |
Участник
|
Спасибо большое. Просто мне нужно создать многострочную обработку для заказов, но вызывать ее не из формы заказов, а из другой формы. Вот и думаю, как сделать так, чтобы создать и заполнить свой FormDatasource, а потом подсунуть его в стандартные классы SalesFormLetter. Кто-нибудь связывался с таким?
|
|
16.11.2010, 10:13 | #7 |
Участник
|
Цитата:
Работа с записями таблицы Модификация выделенных строк Цитата:
X++: for (localSalesLine = salesLine_ds.getFirst(true) ? salesLine_ds.getFirst(true) : salesLine.dataSource().cursor(); localSalesLine; localSalesLine = salesLine_ds.getNext()) { ... // вызвать menuItem для одной записи ... } по рекомендациям bestpractice код нужно разместить в кнопке формы. в этом случае обработка может быть стандартной. Она по-умолчанию принимает одну строчку. из любого датасорса но в этом случае делается отдельные запросы для каждой выделенной строки внутри обработки. 2. другой вариант - разместить этот код внутри обработки. в этом случае обработка становится зависимой от вызывающего объекта (внутри она должна содержать switch, который обрабатывает выделенные строки для разных вызывающих объектов). В этом случае часто ломают dynalink. но в этом случае делается один запрос для всех выделенных строк. лично мне больше нравится первый вариант. он дает более независимый код. хотя и чуть менее оптимальный по производительности. |
|
|
За это сообщение автора поблагодарили: Alexanderrrr (1). |
Теги |
multiselect, как правильно |
|
|