Блокировка таблицы

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Блокировка таблицы

Сообщение aleks1232321 »

Доброго времени суток всем.
В интерфесе используется функция блокировки таблиц
ProtectRecord(#BaseDoc, true);
ProtectRecord(#SpStep, true);
ProtectRecord(#StepDoc, true);
Но при этом необходимо, чтобы одно из полей, например, BaseDoc.Name, было доступно для модификации. Как это сделать, кто-нибудь знает?

Методы типа: SetFieldOption, ClearFieldOption не проходят, пробовал

Заранее спасибо
Maverick
Абориген
Сообщения: 943
Зарегистрирован: 29 мар 2005, 17:49
Откуда: External Developer
Контактная информация:

Сообщение Maverick »

ProtectRecord блокирует СРАЗУ ВСЕ ПОЛЯ записи от ввода. Поэтому ни одна из функций не снимет эту защиту частично.
Не проще ли при описании скрина/броуза ненужным полям установить атрибут Protect, а нужным NoProtect ???
Изображение
Знающий людей разумен.
Знающий себя просветлён.
Побеждающий людей силен.
Побеждающий самого себя могущественнен
Гаврилюк Марина
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 27 авг 2007, 12:16
Откуда: ОАО КЧХК
Контактная информация:

Сообщение Гаврилюк Марина »

где лежит найти описание функции protectrecord?
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Сообщение aleks1232321 »

Процедура ProtectRecord (integer, boolean)

Назначение

Устанавливает или снимает защиту от ввода для всей записи.

Описание

procedure ProtectRecord (iTable : integer; protect : boolean);
Параметры

iPanel : integer - номер панели.

protect : boolean - установить /снять защиту.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

aleks1232321

ProtectRecord блокирует работу с буфером записи указанной таблицы, вы ни как не сделаете что бы часть буфера не блокировалось, т.к. это свойство одно для всей записи.
Гаврилюк Марина
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 27 авг 2007, 12:16
Откуда: ОАО КЧХК
Контактная информация:

Сообщение Гаврилюк Марина »

procedure ProtectRecord (iTable : integer; protect : boolean);
Параметры

iPanel : integer - номер панели.
Что такое номер панели, извините?
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Сообщение aleks1232321 »

Описание взял из документации, даже не прочитав его, прошу простить.
:) Там конечно опечатка: не iPanel, а iTable - номер таблицы.
Вот несколько примеров

if (isProtected(#Oborot)) ProtectRecord(#Oborot,false);


if (CalPlan.Status <> 0)
ProtectRecord(#SpDocNal, true)
else
ProtectRecord(#SpDocNal, false);
Гаврилюк Марина
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 27 авг 2007, 12:16
Откуда: ОАО КЧХК
Контактная информация:

Сообщение Гаврилюк Марина »

const
#include Tunes.inc
end;
#include CrTune.vih


VipInterface CreateTunePatch_USER Implements ObjCreateTunePlugin;

Interface CreateTunePatch_User;
var wState : word;
create view;

Public function SetLastDateModTune : date;
{
SetLastDateModTune := Cur_Date;
}

Public Procedure AddTunePatch(TR : objCreateTune);
{
TR.AddTune(ttUserTune,'RGHTBL.NOUPDATE.KLVAL','RGHTBL.NOUPDATE','каталога курсов валют',ftBoolean,'1','',0);
TR.SetNextNumberTune (5001);
TR.SetParent('0065000000000017h');
}
end.

#include TuneSpec.vih

VipInterface PostTunePatch_user implements ObjPostTunePlugin;

Interface PostTunePatch_user;
Create view;

Public Function PostUpdatePatch (TuneRef : TuneFuncObj; TuneCode : string; TuneObj : word; TuneUser : comp) : boolean;
{

PostUpdatePatch := true;

case UpCase(TuneCode) of
'RGHTBL.NOUPDATE.KLVAL':
{
if boGetTuneEx('RGHTBL.NOUPDATE.KLVAL',0,0065000000000017h)=1
{ _loop x$users
{
ProtectRecord(#CURSVAL, true);
^
неверная функция, параметр или метод
ProtectRecord(#KLVAL, true);
}
}
else
{_loop x$users
{
NoProtectRecord(#CURSVAL, true);
NoProtectRecord(#KLVAL, true);
}
}
else
PostUpdatePatch := false;
end; // case

} // PostUpdatePatch

end. // интерфейс

Ну и как с этим бороться?
PViP
Местный житель
Сообщения: 254
Зарегистрирован: 08 июн 2007, 08:26
Откуда: Красноярск
Контактная информация:

Сообщение PViP »

попробуйте префикс tn вместо #.
Bulat-bash
Постоянный гость
Сообщения: 52
Зарегистрирован: 28 июн 2006, 08:45
Откуда: Уфа

Сообщение Bulat-bash »

попробуйте указать таблицы в create view
Ответить