Вызов интерфейса из frm

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

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

Ответить
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Вызов интерфейса из frm

Сообщение Espada »

Доброго дня, столкнулся с проблемкой. Из frm отчёта нужно вызвать интерфейс и передать в него нрек документа. Вроде всё компилируется, и нрек передаётся в файл интерфейса, но проблема, что интерфейс не отображается пишет: Не найден объект IVIPIFCIFC SBYT_CMR::DOVERVYBOR, описывающий интерфейс вызова.
Код PRJ файла:

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

#make 'g:\Рабочая папка\Исходники Галактики\СБЫТ\CMR\интерфейс выбора.vip'
#include "g:\Рабочая папка\Исходники Галактики\СБЫТ\CMR\_callingFunction.vih"
#make 'g:\Рабочая папка\Исходники Галактики\СБЫТ\CMR\Бланк_CMR_v3.1.frm' 
Код FRM файла:

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

...
ss:string
psNrec:Comp
igetPath:M_MnPlan::DoverVybor
_Dover:String
...
.begin
psNrec := НАКЛАДНАЯ_НРЕК
ss:=igetPath.DirectoryFile(psNrec);

RunInterface(Sbyt_CMR::DoverVybor, _Dover);
End.
Код Vih файла:

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

#component 'M_MnPlan'
ObjInterface objDirectoryFile;
  function DirectoryFile(PSNrec:comp) : string;
End;

vipinterface DoverVybor implements objDirectoryFile parameters ( i : string ); 
Код Vip файла:

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

#component 'M_MnPlan'
#include _callingFunction.vih

interface DoverVybor 'Выбор Доверенности';
show at (0,3,35,16);   
...
function DirectoryFile(PSNrec:comp) : string;
{
NrecOrg := PSNrec;
Dover := string(NrecOrg,0,0);
Message('Nrec Накладной: ' + Dover);
};
HandleEvent  
По итогу Функция DirectoryFile отрабатывает и сообщение с нреком накладной выводит, но после интерфейс не запускается а пишет сообщение: Интерфейс SBYT_CMR::DOVERVYBOR не найден...
может сможете подсказать что я делаю не так :cry:
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Irina_
Местный житель
Сообщения: 547
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Вызов интерфейса из frm

Сообщение Irina_ »

Здравствуйте.
igetPath:M_MnPlan::DoverVybor

RunInterface('Sbyt_CMR::DoverVybor', _Dover); //имя интерфейса надо в кавычках.

В каком компоненте скомпилирован инт-с DoverVybor: M_MnPlan (определение переменной igetPath) или Sbyt_CMR (вы-зов)?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5185
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Вызов интерфейса из frm

Сообщение edward_K »

Видимо у вас компонента не та схватилась.
Есть 3 пути
Включить vih в проект перед vip и frm
Использовать секцию declare в форме,где инклюдом подключить vih
Прописать компоненте непосредственно в вызов.
Вообще внимательно смотрите логи компиляции и устраняйте все предупреждения там 100% нужное было.
Espada
Местный житель
Сообщения: 336
Зарегистрирован: 07 май 2013, 17:32
Откуда: РБ, Минск

Re: Вызов интерфейса из frm

Сообщение Espada »

спасибо большое, всё получилось. ошибся в Frm-ке самой, да нужно было RunInterface(‘M_MnPlan::DoverVybor’, _Dover). спасибо
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Ответить