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,137 / 1545 (58) ++++++++
Регистрация: 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
 
254 / 106 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Вы создаете MenuItemButton на основе MenuItem, указываете датасоурс в свойствах новой кнопки и свойство MultiSelect ставите в "Yes".
__________________
С уважением, Александр.
Старый 16.11.2010, 09:24   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,137 / 1545 (58) ++++++++
Регистрация: 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
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,847 / 3764 (183) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от 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.
но в этом случае делается один запрос для всех выделенных строк.

лично мне больше нравится первый вариант.
он дает более независимый код. хотя и чуть менее оптимальный по производительности.
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, 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, время: 01:33.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.