Страница 1 из 1
Получить пользователя по дескриптору
Добавлено: 21 ноя 2008, 16:50
galover
Как зная дескриптор получить nrec пользователя из x$users?
Вот так: select tuneval.cuser from tuneval where (('some_descr' == tuneval.StrVal(noindex)));
?
или есть какие специальные функции?
Добавлено: 21 ноя 2008, 16:55
k_vit
Если идёт речь о дескрипторе, под которым работает пользователь, то можно из настроек взять :
sGetTune('USER.DESCR') - Дескриптор
sGetTune('USER.FIO') - ФИО
Добавлено: 21 ноя 2008, 17:06
k_vit
А если хотите по какому-либо другому дескриптору вытянуть, то я бы сделал так
Код: Выделить всё
function GetDescNRec(desc : string) : comp;
{
GetDescNRec := comp(0);
_loop x$users {
if UpCase(SubStr(x$users.xu$loginname, 1, 3)) = UpCase(desc) then {
GetDescNRec := x$users.nRec;
break;
}
}
}
Добавлено: 21 ноя 2008, 18:48
galover
k_vit
Странно - у вас что, 3 первые буквы логина совпадают с дескриптором? У нас дескриптор может быть совсем другим.
И почему именно через _loop? Я бы написал вот так
Код: Выделить всё
private function GetUserNRec(descr : string) : comp;
{
result := If((getFirst fastfirstrow x$Users where UpCase(descr) = UpCase(SubStr(x$users.xu$loginname, 1, 3))) = tsOk, x$Users.Atl_NRec, 0h);
}
впрочем это дело личных предпочтений
Добавлено: 21 ноя 2008, 23:44
k_vit
Ну по умолчанию в Гал-ке берется первы 3 символа от логина, а если дескриптор поменять, то уже функция не сработает

Добавлено: 22 ноя 2008, 15:02
galover
k_vit
не у нас не так, мы дескриптор руками правим -в него еще код филиала прописываем
Добавлено: 22 ноя 2008, 15:18
edward_K
tuneval.cuser это оно. есть ли непосредственно под ним то UserId. Ну и запрос бы я переписал бы с использованием tunename. Есть обратные функции - как получить значение настройки другого пользователя - sgettuneex вроде.
Добавлено: 26 ноя 2008, 19:53
galover
edward_K
А можно параметры sgettuneex? пробовал так:
sGetTuneEx('USER.DESCR', _userNrec)
-> ругается что не все параметры были указаны
Добавлено: 26 ноя 2008, 21:58
edward_K
string , longint , comp
1. наименование
2 - tuneval.obj вроде
3 - ссылка на пользователя
где то было их описание в доке
Добавлено: 27 ноя 2008, 10:34
galover
edward_K
описание не нашел

в каком доке можно посмотреть?
а tuneval.Obj - за что отвечает?
Добавлено: 27 ноя 2008, 13:36
m0p3e
TuneVal.Obj = ttUser
Добавлено: 27 ноя 2008, 13:44
galover
m0p3e
TuneVal.Obj = ttUser
что есть ttUser?
Добавлено: 27 ноя 2008, 14:52
Den
видимо const
Добавлено: 27 ноя 2008, 16:14
edward_K
это тип настройки

- пользовательская, системная, филилальная. Повычисляйте по Ctrl+F4 tvalue.obj - поймете.
зачем в этой функции нужно не понимаю - могли бы и по tunedef определить.