AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 16.11.2010, 08:37   #1  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Join Date: 27.05.2009
? Как создать обработку для нескольких строк?
Добрый день! Подскажите, пожалуйста, как создать многострочную обработку в Axapta 3, т.е. обработку для нескольких строк формы (например, как это сделано для нескольких заказов в плане создания накладных). Нужно перекрывать методы на источнике данных формы? Спасибо.
Old 16.11.2010, 08:52   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Join Date: 28.04.2007
Location: Калуга
Поищите на форуме по ключевым слову MultiSelect.

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

Last edited by S.Kuskov; 16.11.2010 at 08:55.
This post has been rated by: ski (1).
Old 16.11.2010, 09:11   #3  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Join Date: 27.05.2009
Для кнопок есть свойство "MultiSelect", которое и определяет обработку по нескольким строкам. Но как передается в menuItem несколько записей?
Old 16.11.2010, 09:20   #4  
samolalex is offline
samolalex
Участник
samolalex's Avatar
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Join Date: 18.06.2010
Location: Москва
Вы создаете MenuItemButton на основе MenuItem, указываете датасоурс в свойствах новой кнопки и свойство MultiSelect ставите в "Yes".
__________________
С уважением, Александр.
Old 16.11.2010, 09:24   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Join Date: 28.04.2007
Location: Калуга
Quote:
Originally Posted by ski View Post
Но как передается в menuItem несколько записей?
в menuItem передаётся не записи а ссылка на источник данных, по которой можно определить как текущую позицию курсора, так и все выделенные, либо даже вообще все отфильтрованные записи.Если совсем конкретно, то вам нужны методы getFirst и getLast getNext источника данных Args.record().dataSource()

Last edited by S.Kuskov; 16.11.2010 at 09:36.
Old 16.11.2010, 10:11   #6  
ski is offline
ski
Участник
 
35 / 12 (1) ++
Join Date: 27.05.2009
Спасибо большое. Просто мне нужно создать многострочную обработку для заказов, но вызывать ее не из формы заказов, а из другой формы. Вот и думаю, как сделать так, чтобы создать и заполнить свой FormDatasource, а потом подсунуть его в стандартные классы SalesFormLetter. Кто-нибудь связывался с таким?
Old 16.11.2010, 10:13   #7  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Originally Posted by ski View Post
Добрый день! Подскажите, пожалуйста, как создать многострочную обработку в Axapta 3, т.е. обработку для нескольких строк формы (например, как это сделано для нескольких заказов в плане создания накладных). Нужно перекрывать методы на источнике данных формы? Спасибо.
правильный ответ тут
Работа с записями таблицы
Модификация выделенных строк

Quote:
Originally Posted by S.Kuskov View Post
Если совсем конкретно, то вам нужны методы 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.
This post has been rated by: Alexanderrrr (1).
Tags
multiselect, как правильно

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Вставка нескольких строк из шаблона 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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 15:39.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.