AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.11.2010, 08:37   #1  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Регистрация: 27.05.2009
? Как создать обработку для нескольких строк?
Добрый день! Подскажите, пожалуйста, как создать многострочную обработку в Axapta 3, т.е. обработку для нескольких строк формы (например, как это сделано для нескольких заказов в плане создания накладных). Нужно перекрывать методы на источнике данных формы? Спасибо.
Старый 16.11.2010, 08:52   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Поищите на форуме по ключевым слову MultiSelect.

Например одна из веток Можно ли достать строки из Multiselect'a в Grid'e

Последний раз редактировалось S.Kuskov; 16.11.2010 в 08:55.
За это сообщение автора поблагодарили: ski (1).
Старый 16.11.2010, 09:11   #3  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Регистрация: 27.05.2009
Для кнопок есть свойство "MultiSelect", которое и определяет обработку по нескольким строкам. Но как передается в menuItem несколько записей?
Старый 16.11.2010, 09:20   #4  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Вы создаете MenuItemButton на основе MenuItem, указываете датасоурс в свойствах новой кнопки и свойство MultiSelect ставите в "Yes".
__________________
С уважением, Александр.
Старый 16.11.2010, 09:24   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от ski Посмотреть сообщение
Но как передается в menuItem несколько записей?
в menuItem передаётся не записи а ссылка на источник данных, по которой можно определить как текущую позицию курсора, так и все выделенные, либо даже вообще все отфильтрованные записи.Если совсем конкретно, то вам нужны методы getFirst и getLast getNext источника данных Args.record().dataSource()

Последний раз редактировалось S.Kuskov; 16.11.2010 в 09:36.
Старый 16.11.2010, 10:11   #6  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Регистрация: 27.05.2009
Спасибо большое. Просто мне нужно создать многострочную обработку для заказов, но вызывать ее не из формы заказов, а из другой формы. Вот и думаю, как сделать так, чтобы создать и заполнить свой FormDatasource, а потом подсунуть его в стандартные классы SalesFormLetter. Кто-нибудь связывался с таким?
Старый 16.11.2010, 10:13   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ski Посмотреть сообщение
Добрый день! Подскажите, пожалуйста, как создать многострочную обработку в Axapta 3, т.е. обработку для нескольких строк формы (например, как это сделано для нескольких заказов в плане создания накладных). Нужно перекрывать методы на источнике данных формы? Спасибо.
правильный ответ тут
Работа с записями таблицы
Модификация выделенных строк

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Если совсем конкретно, то вам нужны методы getFirst и getNext источника данных Args.record().dataSource()
э-э-э... похоже вопрос холиварный - где разместить код, который обрабатывает эти несколько строк.

X++:
for (localSalesLine = salesLine_ds.getFirst(true) ? salesLine_ds.getFirst(true) : salesLine.dataSource().cursor(); localSalesLine; localSalesLine = salesLine_ds.getNext())
{
...
// вызвать menuItem для одной записи
...
}
1.
по рекомендациям bestpractice код нужно разместить в кнопке формы.
в этом случае обработка может быть стандартной. Она по-умолчанию принимает одну строчку. из любого датасорса
но в этом случае делается отдельные запросы для каждой выделенной строки внутри обработки.

2.
другой вариант - разместить этот код внутри обработки.
в этом случае обработка становится зависимой от вызывающего объекта (внутри она должна содержать switch, который обрабатывает выделенные строки для разных вызывающих объектов). В этом случае часто ломают dynalink.
но в этом случае делается один запрос для всех выделенных строк.

лично мне больше нравится первый вариант.
он дает более независимый код. хотя и чуть менее оптимальный по производительности.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Alexanderrrr (1).
Теги
multiselect, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вставка нескольких строк из шаблона Excel breakpoint DAX: Программирование 2 04.06.2009 15:31
Тормозит копирование строк в буфер обмена ivas DAX: Программирование 20 21.08.2007 15:05
Пользовательский генератор строк-перечислений...- 2: Доп.вкладка для SysQueryForm Gustav DAX: База знаний и проекты 1 04.05.2007 18:04
Предельное количество строк в Report Владимир Максимов DAX: Программирование 1 22.12.2005 15:02
БАГ: копирование строк накладных в новый заказ Антон Солдатов DAX: Функционал 2 03.12.2004 09:02

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:13.