25.07.2014, 14:31 | #1 |
Участник
|
Массовый апдейт выбранных записей
Можно ли как-то с помощью стандартного функционала выделить несколько строк на форме(допустим, клиентов) и присвоить определенному полю(ям) одно и то же значение.
Т.е как бы сделать апдейт поля(ей) для выбранных записей? |
|
25.07.2014, 14:47 | #2 |
Участник
|
Скорей всего ответ будет -нет. Может. есть кой-то фреймворк, который делает что-то похожее.
(Нужно следать такой апдейт для нескольких форм и как-то хочется сделать его достаточно универсальным. |
|
25.07.2014, 14:56 | #3 |
Участник
|
Можно воспользоваться Утилитой заполнения.
Должен быть включен соответствующий конфигурационный ключ. Вызывается из Паспорта записи. Это стандартная фича для массового обновления полей. Его можно допилить под ваши удобства. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
25.07.2014, 15:00 | #4 |
Участник
|
|
|
25.07.2014, 15:03 | #5 |
Administrator
|
Она присутствует лишь в версии 2009 и 2012 RTM. Если у вас 2012 R2/R3 - ее там нет (в стандарте)
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: IKA (1). |
25.07.2014, 15:38 | #6 |
Участник
|
R2 ((
Я первым делом в паспорте записи искала ... но нетс |
|
25.07.2014, 16:39 | #7 |
----------------
|
Excel Add-ins?
|
|
26.07.2014, 20:42 | #8 |
Дмитрий Ерин
|
Частично может пригодиться MultiSelectionHelper Class
|
|
28.07.2014, 11:25 | #9 |
Талантливый разгвоздяй
|
Не совсем то, что вам требуется интерфейсно, но можно присмотреться к функции массового обновления характеристик номенклатуры в модуле "Розница":
|
|
28.07.2014, 14:43 | #10 |
Участник
|
Тоже сталкивался с такой задачей и вот что из этого вышло. Не знаю будет ли работать на 2012, на 4.0 работает как надо.
|
|
|
За это сообщение автора поблагодарили: IKA (1). |
29.07.2014, 21:20 | #11 |
Участник
|
Так, В идеале клиент хочет интерфейс, как в форме фильтрации (как и следовало ожидать (( ). Т.е по Ctrl+N создается новая строка, где он выбирает нужное поле и выбирает значение для update.
В форме sysQueryForm все фильтры , выбранные пользователем сохраняются как String и String уже передается в Range для фильтрации(как вот он только внутри str в int ,например, преобразует?). В моем случае , тк на таблицах нельзя создать поле типа anyType, то для создания подобного интервейса придется преобразовывать str в тип того поля, кот обновляем С точки зрения программирования это можно сделать(конвертировать str в тип конкретного обновляемого поля), только как-то немного боязно полагаться на конвертацию типов из str в нужный(( Что посоветуете? |
|
29.07.2014, 21:27 | #12 |
Участник
|
Цитата:
Мне оч нравится. что вы используете anyType и при таком подходе не будет проблем конвертации, только нужно как-то придумать удобный интерфейс, чтобы пользователь мог выбить какаие поля (список ограничен по каждой таблице), которые он хочет обновить. Можно на диалог добавить кнопку add , которая будет добавлять динамически контролы (обновляемые поле и значение), а потом перебирать созданные контролы в диалоге и обновлять соотв поля на таблице. но в идеале они хотят грид , как в форме Фильтрации.. |
|
30.07.2014, 14:19 | #13 |
Участник
|
У меня другая задача стояла. То что вы хотите, сделать не сложно (только ни в коем случае никаких динамических добавлений полей на диалог, только форма и ее вызов из класса). Но не так и много полей требующих массового обновления, поэтому если нет желания или возможностей реализовать, то что Вы пишите, добавьте отдельные кнопки на каждое поле и воспользуйтесь предложенным механизмом.
|
|
30.07.2014, 19:12 | #14 |
Участник
|
Цитата:
Сообщение от 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 |
Участник
|
Делаете кнопку под именение каждого поля. Для 10-ти полей, согласен, это будет выглядеть не красиво. Под Ваши требование этот механизм не подходит, но сделать это, как мне кажется, не сложно. С конвертацией типов, посомтрите как сделно на \Forms\SysQueryForm, сделайте по аналогии
|
|
31.07.2014, 10:09 | #16 |
Модератор
|
Перечитал 2 раза. Никто (!!!) не предложил job - в мою молодость - самое распространенное средство для "Массового апдейта выбранных записей"
По сути - вам уже ответили: или паспорт записи (доработка на основе данного класса) - мы делали, в основном, для автоматического заполнения новых записей, когда из профилей пользователя (и не только) подтягивались необходимые аналитики (и ряд обязательных для заполнения полей), которые надо было заполнить - чтобы людей не заставлять делать тупую работу, которую можно было автоматизировать. Ваша задача также решалась, небольшой доработкой. С Уважением, Георгий |
|
01.08.2014, 15:33 | #17 |
Участник
|
2 George:
Можете поделиться волшебным классом из паспорта записи? (Как я уже писала выше, тк у меня R2, то класса этого нет) спасибо |
|
07.08.2014, 20:20 | #18 |
Участник
|
Цитата:
Сообщение от Kabardian
Не совсем то, что вам требуется интерфейсно, но можно присмотреться к функции массового обновления характеристик номенклатуры в модуле "Розница":
К сожалению, имхо дизайн там топорный. В таблице RetailMassUpdateWorksheeLine забиты все поля, которые можно теоретически обновить. В результате гибкость совершенно фиктивная( |
|
07.08.2014, 20:24 | #19 |
Enjoy!
|
Цитата:
Сообщение от Ruff
Частично может пригодиться MultiSelectionHelper Class
FormLetter::createJournalListCopy(args.record) еще можно вырвать RecordSortedList |
|
08.08.2014, 14:35 | #20 |
Участник
|
Пока остановилась на решении грид как в SysQuery + DEV_AnyTypeUtil для корректной конвертации заданных пользователем значений из String(тк именно он на гриде) в нужный тип поля таблицы.
Если кто знает более прямолинейный(менее чреватый непредвиденными проблемами конвертации) путь - буду благодарна за совет. |
|
|
|