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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.07.2014, 14:31   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Массовый апдейт выбранных записей
Можно ли как-то с помощью стандартного функционала выделить несколько строк на форме(допустим, клиентов) и присвоить определенному полю(ям) одно и то же значение.
Т.е как бы сделать апдейт поля(ей) для выбранных записей?
Старый 25.07.2014, 14:47   #2  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Скорей всего ответ будет -нет. Может. есть кой-то фреймворк, который делает что-то похожее.
(Нужно следать такой апдейт для нескольких форм и как-то хочется сделать его достаточно универсальным.
Старый 25.07.2014, 14:56   #3  
ice321i is offline
ice321i
Участник
 
63 / 54 (2) ++++
Регистрация: 22.10.2007
Можно воспользоваться Утилитой заполнения.
Должен быть включен соответствующий конфигурационный ключ.
Вызывается из Паспорта записи.
Это стандартная фича для массового обновления полей.
Его можно допилить под ваши удобства.
За это сообщение автора поблагодарили: S.Kuskov (1).
Старый 25.07.2014, 15:03   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,317 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Она присутствует лишь в версии 2009 и 2012 RTM. Если у вас 2012 R2/R3 - ее там нет (в стандарте)
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: IKA (1).
Старый 25.07.2014, 15:38   #6  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
R2 ((
Я первым делом в паспорте записи искала ... но нетс
Старый 25.07.2014, 16:39   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Excel Add-ins?
Старый 26.07.2014, 20:42   #8  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Частично может пригодиться MultiSelectionHelper Class
Старый 28.07.2014, 11:25   #9  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
Не совсем то, что вам требуется интерфейсно, но можно присмотреться к функции массового обновления характеристик номенклатуры в модуле "Розница":
  1. Розница / Периодические операции / Массовое обновление листа
  2. Создать запись
  3. Выбрать изменяемое свойство и нажать ОК
  4. Добавить продукты, для которых нужно изменить свойства
  5. Изменить свойство в одноименном столбце
  6. Разнести
В результате у выбранных номенклатур изменится выбранная характеристика.
Старый 28.07.2014, 14:43   #10  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Тоже сталкивался с такой задачей и вот что из этого вышло. Не знаю будет ли работать на 2012, на 4.0 работает как надо.
Вложения
Тип файла: xpo Class_DataSourceSetFieldValue.xpo (7.9 Кб, 319 просмотров)
За это сообщение автора поблагодарили: IKA (1).
Старый 29.07.2014, 21:20   #11  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Так, В идеале клиент хочет интерфейс, как в форме фильтрации (как и следовало ожидать (( ). Т.е по Ctrl+N создается новая строка, где он выбирает нужное поле и выбирает значение для update.
В форме sysQueryForm все фильтры , выбранные пользователем сохраняются как String и String уже передается в Range для фильтрации(как вот он только внутри str в int ,например, преобразует?). В моем случае , тк на таблицах нельзя создать поле типа anyType, то для создания подобного интервейса придется преобразовывать str в тип того поля, кот обновляем
С точки зрения программирования это можно сделать(конвертировать str в тип конкретного обновляемого поля), только как-то немного боязно полагаться на конвертацию типов из str в нужный(( Что посоветуете?
Старый 29.07.2014, 21:27   #12  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Цитата:
Сообщение от michel1971 Посмотреть сообщение
Тоже сталкивался с такой задачей и вот что из этого вышло. Не знаю будет ли работать на 2012, на 4.0 работает как надо.
Спасибо огромное.
Мне оч нравится. что вы используете anyType и при таком подходе не будет проблем конвертации, только нужно как-то придумать удобный интерфейс, чтобы пользователь мог выбить какаие поля (список ограничен по каждой таблице), которые он хочет обновить.
Можно на диалог добавить кнопку add , которая будет добавлять динамически контролы (обновляемые поле и значение), а потом перебирать созданные контролы в диалоге и обновлять соотв поля на таблице.

но в идеале они хотят грид , как в форме Фильтрации..
Старый 30.07.2014, 14:19   #13  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
У меня другая задача стояла. То что вы хотите, сделать не сложно (только ни в коем случае никаких динамических добавлений полей на диалог, только форма и ее вызов из класса). Но не так и много полей требующих массового обновления, поэтому если нет желания или возможностей реализовать, то что Вы пишите, добавьте отдельные кнопки на каждое поле и воспользуйтесь предложенным механизмом.
Старый 30.07.2014, 19:12   #14  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Цитата:
Сообщение от michel1971 Посмотреть сообщение
(только ни в коем случае никаких динамических добавлений полей на диалог, только форма и ее вызов из класса). Но не так и много полей требующих массового обновления, поэтому если нет желания или возможностей реализовать, то что Вы пишите, добавьте отдельные кнопки на каждое поле и воспользуйтесь предложенным механизмом.
Извините. не совсем поняла, какую реализацию вы предлагаете
Требования:
У меня около 10 полей, кот пользователю разрешено изменять в таблице (список полей, доступных к обновлению, будет храниться в таблице настроек, т.е он не фиксирован и может содержать как id полей типа string, так и enum, int etc.)
Мой функционал должен позволять пользователю указать, какие из возможных 10 полей он хочет обновить и указать присваевыемые значения.
Пользователи хотят, чтобы как в форме фильтрации перед ними открывался грид, в котором они создавали записи, каждая из которых - пара "Обновляемое Поле" и "Присваемое ему значение."
Т.е:
если в "Обновляемое Поле" выбрано SalesId, пользователь будет(как в форме фильтрации) выбирать в лукапе номер заказа

если в "Обновляемое Поле" выбрано SalesStatus, пользователь будет(как в форме фильтрации) выбирать в выпадающем списке соотв значение перечисления(enum).

Поэтому:
Если вы про грид говорите, то проблема, кот я вижу, как я уже описала. что колонка грида будет типа String, поэтому для обновления полей таблицы придется преобразовывать string к типу обновляемого поля таблицы
это возможно, но чревато имхо непредвиденными результатами конвертациями
Что вы подразумеваете под "отдельные кнопки на каждое поле"?

Последний раз редактировалось IKA; 30.07.2014 в 19:14.
Старый 31.07.2014, 09:54   #15  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от IKA Посмотреть сообщение
Что вы подразумеваете под "отдельные кнопки на каждое поле"?
Делаете кнопку под именение каждого поля. Для 10-ти полей, согласен, это будет выглядеть не красиво. Под Ваши требование этот механизм не подходит, но сделать это, как мне кажется, не сложно. С конвертацией типов, посомтрите как сделно на \Forms\SysQueryForm, сделайте по аналогии
Старый 31.07.2014, 10:09   #16  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Перечитал 2 раза. Никто (!!!) не предложил job - в мою молодость - самое распространенное средство для "Массового апдейта выбранных записей"

По сути - вам уже ответили: или паспорт записи (доработка на основе данного класса) - мы делали, в основном, для автоматического заполнения новых записей, когда из профилей пользователя (и не только) подтягивались необходимые аналитики (и ряд обязательных для заполнения полей), которые надо было заполнить - чтобы людей не заставлять делать тупую работу, которую можно было автоматизировать.

Ваша задача также решалась, небольшой доработкой.

С Уважением,
Георгий
Старый 01.08.2014, 15:33   #17  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
2 George:
Можете поделиться волшебным классом из паспорта записи? (Как я уже писала выше, тк у меня R2, то класса этого нет)
спасибо
Старый 07.08.2014, 20:20   #18  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Цитата:
Сообщение от Kabardian Посмотреть сообщение
Не совсем то, что вам требуется интерфейсно, но можно присмотреться к функции массового обновления характеристик номенклатуры в модуле "Розница":
  1. Розница / Периодические операции / Массовое обновление листа[
В результате у выбранных номенклатур изменится выбранная характеристика.
Спасибо Вам за конкретный пример!
К сожалению, имхо дизайн там топорный. В таблице RetailMassUpdateWorksheeLine забиты все поля, которые можно теоретически обновить. В результате гибкость совершенно фиктивная(
Старый 07.08.2014, 20:24   #19  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Регистрация: 06.03.2012
Цитата:
Сообщение от Ruff Посмотреть сообщение
Частично может пригодиться MultiSelectionHelper Class
Вспомнилось:
FormLetter::createJournalListCopy(args.record) еще можно вырвать RecordSortedList
Старый 08.08.2014, 14:35   #20  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
Пока остановилась на решении грид как в SysQuery + DEV_AnyTypeUtil для корректной конвертации заданных пользователем значений из String(тк именно он на гриде) в нужный тип поля таблицы.

Если кто знает более прямолинейный(менее чреватый непредвиденными проблемами конвертации) путь - буду благодарна за совет.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Подсчет записей в ax2012 с учетом DataArea и Partition. Как лучше? mazzy DAX: Администрирование 0 20.05.2013 18:02
Модификация огромного количества (сотни тысяч) записей в Axapta 3.0 SP4 Hyper DAX: Программирование 41 06.04.2011 15:06
Выборка произвольных записей одним запросом db DAX: Программирование 1 23.09.2010 14:15
Update выбранных записей формы Perc DAX: Программирование 4 03.06.2009 11:51
вывод количества записей в таблице на web форме и указание текущей страницы таблицы bambuk1960 DAX: Программирование 1 06.07.2006 13:27
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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