Страница 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? :?:
*911*

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 и всё заработало как надо! :cool:
А каким макаром теперь можно сделать обратную операцию: передать тот же nrec обратно во встроенный фейс и вызвать в нём rescanpanel?
Тоже создавать объектный фейс с event функциями и процедурами по такому же принципу, только от основного к встроенному?
Прокатит? :?:

Re: Z_STAFF::STAFFSTRUCT

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