Страница 1 из 1
Z_STAFF::STAFFSTRUCT
Добавлено: 29 ноя 2010, 13:19
BlazeBio
Как можно проверить активность вкладки 'Доплаты'? Пытался GetEmbeddedInterfaceReference(SCRSTSRAISE,varInterface), где varInterface:STS_RAISE; GetFormatEnabled(SCRSTSRAISE);GetTabbedSheetVisible(SCRSTSRAISE) - 0 эффекта. Подскажите, что делаю не так или как можно это сделать правильно?
Re: Z_STAFF::STAFFSTRUCT
Добавлено: 29 ноя 2010, 15:55
BlazeBio
Сам спросил, сам ответил.If СurFormatInArea(SCRSTSRAISE)=SCRSTSRAISE {}.

Re: Z_STAFF::STAFFSTRUCT
Добавлено: 29 ноя 2010, 18:31
BlazeBio
Как получить nrec из выделенной записи брауза Z_STAFF::STS_RAISE.BRWRAISESTST в интерфейс Z_STAFF::STAFFSTRUCT? Просто там не получется, может потому что встроенный интерфейс?
Re: Z_STAFF::STAFFSTRUCT
Добавлено: 29 ноя 2010, 20:47
edward_K
потому как встроенный. в 810 можно поле вытянут конфигуратором. Если программно, то придется сцеплять некие события в главном фейсе и в встроенном.
Re: Z_STAFF::STAFFSTRUCT
Добавлено: 30 ноя 2010, 13:05
BlazeBio
А какие события сцеплять?

Re: Z_STAFF::STAFFSTRUCT
Добавлено: 30 ноя 2010, 17:11
BlazeBio
1. Мне необходим именно nrec текущей выделенной записи. ( Все записи из брауза я могу получить по ссылке на ШЕ из raisests, но не nrec выделенной записи!).
2. В Z_STAFF::STS_RAISE два параметра - NRecStsRaise : Comp и NRecSts : Comp. Возможно ли их оттловить в каком-либо событии и использовать в качестве текущего nrec?
Re: Z_STAFF::STAFFSTRUCT
Добавлено: 02 дек 2010, 14:52
BlazeBio
Как вообще получать или посылать в embeddedpanel данные?
Даже, если и обойти EmbeddedPanel, то Rescanpanel и ReReadRecord не действуют, пересовывается только при смене закладки.
Может нужна переподвязка интерфейса Z_STAFF::STS_RAISE ?
Делал так:
Код: Выделить всё
UnBindEmbeddedInterface(SCRSTSRAISE);
BindEmbeddedInterface(SCRSTSRAISE,'STS_RAISE');
Вместо нужных мне доплат появились не нужные, а мои со списка пропали.
Неужели нельзя передать изменения в интерфейс в EmbeddedPanel без вызова RunInterface?

Re: Z_STAFF::STAFFSTRUCT
Добавлено: 03 дек 2010, 12:08
Vik
Можно так сделать, например:
Файл IStaffEventsNotifier.vih
Код: Выделить всё
#ifndef __IStaffEventsNotifier_vih__
#define __IStaffEventsNotifier_vih__
#Component "Z_STAFF"
public ObjInterface ObjIStaffEventsNotifier;
public event procedure OnSetCurField(p_Nrec: comp);
public event procedure OnDefault(p_Nrec: comp);
public procedure FireEvent(p_Event : string; p_Nrec: comp);
end;
VipInterface IStaffEventsNotifier Implements ObjIStaffEventsNotifier Licensed(Free);
#endif
Файл IStaffEventsNotifier.vip
Код: Выделить всё
#component "Z_STAFF"
#include IStaffEventsNotifier.vih
interface IStaffEventsNotifier;
procedure FireEvent(p_Event: string; p_Nrec: comp);
{
case p_Event of
'OnSetCurField' : OnSetCurField(p_Nrec);
'OnDefault' : OnDefault(p_Nrec);
end;
}
end.
Файл IStaffEventsNotifier.var
Код: Выделить всё
var pIStaffEventsNotifier : ObjIStaffEventsNotifier;
Файл Alter_Sts_Raise.vip
Код: Выделить всё
#component "Z_STAFF"
#include IStaffEventsNotifier.vih
Alter interface Sts_Raise ;
#include IStaffEventsNotifier.var
HandleEvent
cmOnVipLoad :
{
Inherited:: HandleEvent(cmOnVipLoad);
GetVipRef(pIStaffEventsNotifier, 'Z_STAFF::IStaffEventsNotifier');
}
cmDefault:
{
if (not NullVipRef(pIStaffEventsNotifier))
{
pIStaffEventsNotifier.FireEvent('OnDefault', RaiseStS.Nrec);
}
}
cmSetCurField:
{
if (not NullVipRef(pIStaffEventsNotifier))
{
pIStaffEventsNotifier.FireEvent('OnSetCurField', RaiseStS.Nrec);
}
}
end;
end.
Файл Alter_StaffStruct.vip
Код: Выделить всё
#component "Z_STAFF"
#include IStaffEventsNotifier.vih
Alter interface StaffStruct;
#include IStaffEventsNotifier.var
function OnSetCurField(p_Nrec: comp): void;
{
Message('В OnSetCurField передан нрек: ' + p_Nrec)
}
function OnDefault(p_Nrec: comp): void;
{
Message('В OnDefault передан нрек: ' + p_Nrec) ;
}
handleEvent
cmInit:
{
Inherited::HandleEvent(cmInit);
if (GetVipRef(pIStaffEventsNotifier, 'Z_STAFF::IStaffEventsNotifier'))
{
BindEvent (OnSetCurField, pIStaffEventsNotifier.OnSetCurField) ;
BindEvent (OnDefault, pIStaffEventsNotifier.OnDefault) ;
}
}
end;
end.
Проект:
Код: Выделить всё
#component "Z_STAFF"
#make 'IStaffEventsNotifier.vip'
#make 'Alter_Sts_Raise.vip'
#make 'Alter_StaffStruct.vip'
Единственное, придется определиться с какими событиями вам удобнее будет связываться.
Re: Z_STAFF::STAFFSTRUCT
Добавлено: 03 дек 2010, 13:55
BlazeBio
Заменил cmSetCurField на cmPositionChanged и всё заработало как надо!
А каким макаром теперь можно сделать обратную операцию: передать тот же nrec обратно во встроенный фейс и вызвать в нём rescanpanel?
Тоже создавать объектный фейс с event функциями и процедурами по такому же принципу, только от основного к встроенному?
Прокатит?

Re: Z_STAFF::STAFFSTRUCT
Добавлено: 03 дек 2010, 14:01
Vik
Да, прокатит