Есть вопросы!

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

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

Ответить
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Есть вопросы!

Сообщение galover »

Всем привет. Помучаю еще вопросами. 1) Как вызвать функцию или открыть окно одного интерфейса из другого (просто интерфейса, не объектного). 2) Можно ли расшарить table struct между двумя интерфейсами, или передать заполненный table struct в метод другого интерфейса. Заранее спасибо!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

1. поищите embedded в vipprogr.chm - если просто Runinterface не подходит.
2. опишите table struct вне interface ( либо в проекте, а лучше в отдельном файле и цеплянуть его в проекте через #include ) - сможете и в отчетах использовать. Одно но - экземпляр будет освобожден после закрытия главного фейса. Так что вызвать подряд 2 фейса, в одном заполнить, а во втором напечатать незя - тока один из другого. mtChangeRefCount поищите, если просто так не получиться.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

2) сделал как и описали, однако облом :( Не видит другой фейс таблицу , заполненную в главном. Сейчас имеем такую ситуацию:

//---Файл определений MyTbl.vip ---
table struct MyTbl
(
Список полей
);

//--Файл 1 --
interface ifc1;
#include "MyTbl.vip"

cmOk:
{
mtChangeRefCount(#MyTbl, 100);
Message(RecordsInTable(#MyTbl)); // Тут 20!
RunInterface(ifc2);
}


//-- Файл 2--
interface ifc2;
#include "MyTbl.vip"

cmInit: Message(RecordsInTable(#MyTbl)); // Тут 0 :(

Что еще покрутить? Спасибо!
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

ступил - не туда проинклудил!!!!! Респектище за помощь :cool:
Ответить