Показать сообщение отдельно
Старый 19.12.2016, 08:56   #5  
AlexeyS is offline
AlexeyS
Участник
 
404 / 339 (12) ++++++
Регистрация: 15.06.2004
Адрес: москва
заодно, копирование групп пользователя (на форме 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;
    }
}