15.06.2012, 09:51 | #1 |
Участник
|
Перенос настроек пользователя
Здравствуйте Уважаемые.
Вопрос в следующем - как перенести настройки пользователя (избранное, настройки форм, сохраненные параметры в формах отчетов и т.д.) от одного пользователя другому. Наверняка кто-нибудь сталкивался с подобной задачей. Ax 4.0. |
|
15.06.2012, 10:09 | #2 |
Участник
|
X++: SysLastValue sysLastValue; ; ttsbegin; delete_from sysLastValue where sysLastValue.UserId == #UserIdTo; while select sysLastValue where sysLastValue.UserId == #UserIdFrom { sysLastValue.UserId = #UserIdTo; sysLastValue.insert(); } ttscommit; Последний раз редактировалось Dark Light; 15.06.2012 в 10:14. |
|
|
За это сообщение автора поблагодарили: Deepoint (1). |
15.08.2012, 15:31 | #3 |
Участник
|
В конечном итоге механизм по переносу настроек + избранного от одного пользователя другому приобрел вид:
X++: server static void UserFavoritesAndSettingsTransfer(Args _args) { SysPersonalization FromSysPersonalization; SysPersonalization ToSysPersonalization; UserId FromUserId='FromUser';// от кого UserId ToUserId='ToUser'; // кому SysLastValue sysLastValue; ; ttsbegin; // Удаляем Избранное пользователю ToUserId while select forupdate ToSysPersonalization where ToSysPersonalization.ElementType==UtilElementType::UserMenu && ToSysPersonalization.UserId==ToUserId { ToSysPersonalization.doDelete(); } // Дублируем избранное while select FromSysPersonalization where FromSysPersonalization.UserId==FromUserId && FromSysPersonalization.ElementType==UtilElementType::UserMenu { ToSysPersonalization.data(FromSysPersonalization); ToSysPersonalization.UserId=ToUserId; ToSysPersonalization.doInsert(); } // Удаляем настройки у ToUserId delete_from sysLastValue where sysLastValue.UserId == ToUserId; // пишем настойки пользователю ToUserId такие же как у FromUserId while select sysLastValue where sysLastValue.UserId == FromUserId { sysLastValue.UserId = ToUserId; sysLastValue.insert(); } ttscommit; } |
|
|
За это сообщение автора поблагодарили: Pustik (1). |
19.12.2016, 02:51 | #4 |
Участник
|
Deepoint, спасибо!
|
|
19.12.2016, 08:56 | #5 |
Участник
|
заодно, копирование групп пользователя (на форме SysUserInfo)
X++: void clicked() { Dialog dlg; DialogField dfUser, dfUserN; UserInfo userFrom; UserGroupList UserGroupList, newUserGroupList; super(); dlg = new Dialog("From"); dfUser = dlg.addField(typeid(UserId), "From UserID"); dfUserN = dlg.addField(typeid(NetworkAlias), "From NetworkAlias"); if (dlg.run()) { select firstonly userFrom where userFrom.Id == dfUser.value(); if (!userFrom) select firstonly userFrom where userFrom.networkAlias == dfUserN.value(); if (!userFrom) throw error("Invalid user!"); ttsbegin; //delete_from UserGroupList // where UserGroupList.UserId == UserInfo.Id; while select UserGroupList where UserGroupList.UserId == userFrom.Id { newUserGroupList.clear(); newUserGroupList.UserId = UserInfo.Id; newUserGroupList.GroupId = UserGroupList.GroupId; newUserGroupList.insert(); info(UserInfo.Id + " add " + UserGroupList.GroupId); } info("Done"); ttscommit; } } |
|
Теги |
перенос данных, перенос настроек пользователя |
|
|