Есть некоторая настройка XXXX ftBoolean, надо чтоб после её if (not boGetTune('XXXX')) изменения ряд настроек становились недоступными TR.SetRghTune('XXXXX.YYYY',ttREAD);, и обратно если true
Вроде как есть ObjPostTuneComponent, но как им пользоваться не пойму..хелп???
#include TuneSpec.vih
#include PostFunc.vih
VipInterface PostTune_L_Sklad implements ObjPostTuneComponent licensed (FREE);
// Обработчик точки расширения epPostTuneComponentGetVipName
#HandlerPointExtPostTuneGetVipName(L_Sklad,48)
#doc
Дополнительные действия после редактирования настройки в компоненте L_Sklad
#end
Interface PostTune_L_Sklad;
Create view From
x$users
;
//******************************************************************************
#include ReesFunc.vpp
var ifcPost : PostFunc;
// Возвращает False если обработка не производилась, иначе true
Public Function PostUpdateComponent (TR : TuneFuncObj; TuneCode : string; TuneObj: LongInt; TuneUser : comp) : boolean;
{
//******************************************************************************
// Дополнительные действия после редактирования настройки
//******************************************************************************
// Входные параметры
// TuneCode: string - код настройки
// TuneObj: LongInnt - офис и/или филиал пользователя ( использовать функцию UserOfficeFilial(x$Users.atl_nrec))
// TuneUser: comp - ID пользователя
//******************************************************************************
// !!! Внимание !!!
// Строковые констаты кода настройки в CASE писать только в верхнем регистре
// 'UKS.FORMCODE.AUTOCODE': - правильно
// 'UKS.FormCode.RuleCode': - НЕправильно - Ваш пост-метод не сработает
// В остальных местах коды настроек можно писать в смешанном регистре.
//******************************************************************************
// !!! при изменении системной настройки и необходимости изменить связанную
// с ней пользовательскую, делать это ДЛЯ ВСЕХ пользователей,
// используя _LOOP x$users
//******************************************************************************
// !!! следует использовать TuneEdit_ для настройки возможности редактирования
// или TuneDisplay___ для настройки отображаемости значения настройки поля
// в зависимости от того, актуально ли ее значение при ее недоступности
// для редактирования
//******************************************************************************
// !!! В коде крайне желательно использовать комментарии
//******************************************************************************
var b : boolean;
var tmpWord : word;
PostUpdateComponent := true;
case TuneCode of
//******************************************************************************
'OPER.L_F':
{
var wT: word;
wT:= wGetTuneEx(TuneCode, TuneObj, TuneUser);
_loop x$users
{
if ( wT = 3 ) // ФИФО по складам
TR.TuneEditOn( 'Oper.CarryPartyLF', UserOfficeFilial(x$Users.atl_nrec), x$users.atl_nRec)
else
TR.TuneEditOff ('Oper.CarryPartyLF', UserOfficeFilial(x$Users.atl_nrec), x$users.atl_nRec);
}
}
.......
// если не зашли в case
else // case
PostUpdateComponent := false;
end; // case
//******************************************************************************
} // PostUpdateComponent
end. // интерфейс
/******************************************************************************
// !!! Внимание !!!
// Строковые констаты кода настройки в CASE писать только в верхнем регистре
// 'UKS.FORMCODE.AUTOCODE': - правильно
// 'UKS.FormCode.RuleCode': - НЕправильно - Ваш пост-метод не сработает
// В остальных местах коды настроек можно писать в смешанном регистре.
//******************************************************************************
Найдите указанный vih - поймете. Иногда лучше придерживаться стандарта, а не делать свое.
На вход HandlerPointExtPostTuneGetVipName подаете любую(!) фразу (F_UserReportMY - она же должна быть в имени интерфейса), не совпадающую со стандартными компонентами, + номер побольше, типа 210. обработчики не должны пересекаться по номеру
edward_K писал(а):Найдите указанный vih - поймете. Иногда лучше придерживаться стандарта, а не делать свое.
На вход HandlerPointExtPostTuneGetVipName подаете любую(!) фразу (F_UserReportMY - она же должна быть в имени интерфейса), не совпадающую со стандартными компонентами, + номер побольше, типа 210. обработчики не должны пересекаться по номеру