Z_STAFF::STAFFSTRUCT

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

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

Ответить
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Z_STAFF::STAFFSTRUCT

Сообщение BlazeBio »

Как можно проверить активность вкладки 'Доплаты'? Пытался GetEmbeddedInterfaceReference(SCRSTSRAISE,varInterface), где varInterface:STS_RAISE; GetFormatEnabled(SCRSTSRAISE);GetTabbedSheetVisible(SCRSTSRAISE) - 0 эффекта. Подскажите, что делаю не так или как можно это сделать правильно?
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Z_STAFF::STAFFSTRUCT

Сообщение BlazeBio »

Сам спросил, сам ответил.If СurFormatInArea(SCRSTSRAISE)=SCRSTSRAISE {}. :)
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Z_STAFF::STAFFSTRUCT

Сообщение BlazeBio »

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

Re: Z_STAFF::STAFFSTRUCT

Сообщение edward_K »

потому как встроенный. в 810 можно поле вытянут конфигуратором. Если программно, то придется сцеплять некие события в главном фейсе и в встроенном.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Z_STAFF::STAFFSTRUCT

Сообщение BlazeBio »

А какие события сцеплять? :?:
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Z_STAFF::STAFFSTRUCT

Сообщение BlazeBio »

1. Мне необходим именно nrec текущей выделенной записи. ( Все записи из брауза я могу получить по ссылке на ШЕ из raisests, но не nrec выделенной записи!).
2. В Z_STAFF::STS_RAISE два параметра - NRecStsRaise : Comp и NRecSts : Comp. Возможно ли их оттловить в каком-либо событии и использовать в качестве текущего nrec?
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Z_STAFF::STAFFSTRUCT

Сообщение BlazeBio »

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

Код: Выделить всё

			UnBindEmbeddedInterface(SCRSTSRAISE);
			BindEmbeddedInterface(SCRSTSRAISE,'STS_RAISE');
Вместо нужных мне доплат появились не нужные, а мои со списка пропали.
Неужели нельзя передать изменения в интерфейс в EmbeddedPanel без вызова RunInterface? :?:
*911*
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Z_STAFF::STAFFSTRUCT

Сообщение 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'
Единственное, придется определиться с какими событиями вам удобнее будет связываться.
BlazeBio
Местный житель
Сообщения: 386
Зарегистрирован: 27 апр 2010, 14:31
Контактная информация:

Re: Z_STAFF::STAFFSTRUCT

Сообщение BlazeBio »

Заменил cmSetCurField на cmPositionChanged и всё заработало как надо! :cool:
А каким макаром теперь можно сделать обратную операцию: передать тот же nrec обратно во встроенный фейс и вызвать в нём rescanpanel?
Тоже создавать объектный фейс с event функциями и процедурами по такому же принципу, только от основного к встроенному?
Прокатит? :?:
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Re: Z_STAFF::STAFFSTRUCT

Сообщение Vik »

Да, прокатит
Ответить