Z_STAFF::STAFFSTRUCT
Модераторы: m0p3e, edward_K, Модераторы
Z_STAFF::STAFFSTRUCT
Как можно проверить активность вкладки 'Доплаты'? Пытался GetEmbeddedInterfaceReference(SCRSTSRAISE,varInterface), где varInterface:STS_RAISE; GetFormatEnabled(SCRSTSRAISE);GetTabbedSheetVisible(SCRSTSRAISE) - 0 эффекта. Подскажите, что делаю не так или как можно это сделать правильно?
Re: Z_STAFF::STAFFSTRUCT
Сам спросил, сам ответил.If СurFormatInArea(SCRSTSRAISE)=SCRSTSRAISE {}. 

Re: Z_STAFF::STAFFSTRUCT
Как получить nrec из выделенной записи брауза Z_STAFF::STS_RAISE.BRWRAISESTST в интерфейс Z_STAFF::STAFFSTRUCT? Просто там не получется, может потому что встроенный интерфейс?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Z_STAFF::STAFFSTRUCT
потому как встроенный. в 810 можно поле вытянут конфигуратором. Если программно, то придется сцеплять некие события в главном фейсе и в встроенном.
Re: Z_STAFF::STAFFSTRUCT
А какие события сцеплять? 

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


Даже, если и обойти EmbeddedPanel, то Rescanpanel и ReReadRecord не действуют, пересовывается только при смене закладки.
Может нужна переподвязка интерфейса Z_STAFF::STS_RAISE ?

Делал так:
Код: Выделить всё
UnBindEmbeddedInterface(SCRSTSRAISE);
BindEmbeddedInterface(SCRSTSRAISE,'STS_RAISE');
Неужели нельзя передать изменения в интерфейс в EmbeddedPanel без вызова RunInterface?


-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Z_STAFF::STAFFSTRUCT
Можно так сделать, например:
Файл IStaffEventsNotifier.vih
Файл IStaffEventsNotifier.vip
Файл IStaffEventsNotifier.var
Файл Alter_Sts_Raise.vip
Файл Alter_StaffStruct.vip
Проект:
Единственное, придется определиться с какими событиями вам удобнее будет связываться.
Файл 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
Код: Выделить всё
#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.
Код: Выделить всё
var pIStaffEventsNotifier : ObjIStaffEventsNotifier;
Код: Выделить всё
#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.
Код: Выделить всё
#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
Заменил cmSetCurField на cmPositionChanged и всё заработало как надо!
А каким макаром теперь можно сделать обратную операцию: передать тот же nrec обратно во встроенный фейс и вызвать в нём rescanpanel?
Тоже создавать объектный фейс с event функциями и процедурами по такому же принципу, только от основного к встроенному?
Прокатит?

А каким макаром теперь можно сделать обратную операцию: передать тот же nrec обратно во встроенный фейс и вызвать в нём rescanpanel?
Тоже создавать объектный фейс с event функциями и процедурами по такому же принципу, только от основного к встроенному?
Прокатит?

-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Z_STAFF::STAFFSTRUCT
Да, прокатит