Страница 1 из 1

Protect-NoProtect

Добавлено: 31 авг 2007, 15:32
Гаврилюк Марина
Есть ли возможность блокировать изменение, добавление записей (функцией protect) стандартного каталога, например CURSVAL?
Не в Protecte! Права на таблицы и т.д...это знакомо... а в vip-е?

Добавлено: 31 авг 2007, 15:35
Nikos
Наверное, можно написать тригер на изменение по какому-то условию, а интерфейсом это условие менять.

Добавлено: 03 сен 2007, 12:14
Гаврилюк Марина
Если можно хоть какой-нибудь пример...
Мой вариант (не работает):
const
#include Tunes.inc
end;

.form tuneusers
.ard
.table blank
.var
li1: boolean;
.endvar
.begin
li1:=boGetTuneEx('RGHTBL.NOUPDATE.KLVAL',0,0065000000000017h);
end.
if li1=true;
{
ProtectRecord(#CURSVAL, true);
ProtectRecord(#KLVAL, true);
}
else
{
NoProtectRecord(#CURSVAL, true);
NoProtectRecord(#KLVAL, true);
}
.endform

Добавлено: 03 сен 2007, 12:53
Nikos
Примера, к сожалению, нет - только теория. Пока с такой необходимостью не сталкивались.

Добавлено: 03 сен 2007, 14:12
Den
Может это все таки функция не работает в фком. Попробуйте то же самое написать на vip и собрать. Protectrecord точно используется в исходниках интерфейсов.

Добавлено: 03 сен 2007, 17:42
Гаврилюк Марина
Я добавила настройку, а вышеуказанный ( вообще-то он часть vip-a)ard компил-ся без проблем, но блокировка таблиц не происходит.

Добавлено: 03 сен 2007, 17:47
Гаврилюк Марина
Может есть у кого перечень стандартных интерфейсов ?

Добавлено: 03 сен 2007, 20:02
Den
Правильно так, но так он у Вас ошибку при компиляции валить будет.

const
#include Tunes.inc
end;

.form tuneusers
.ard
.table blank
.var
li1: boolean;
.endvar
.begin
li1:=boGetTuneEx('RGHTBL.NOUPDATE.KLVAL',0,0065000000000017h);
//end.
if li1=true;
{
ProtectRecord(#CURSVAL, true);
ProtectRecord(#KLVAL, true);
}
else
{
NoProtectRecord(#CURSVAL, true);
NoProtectRecord(#KLVAL, true);
}
end.
.endform


Пиши на .vip этот тестовый пример и все будет ок. Компилятор форм не знает "кто такой" protectrecord