Возможно ли реализовать?

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

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

Ответить
Alexander
Местный житель
Сообщения: 248
Зарегистрирован: 28 ноя 2006, 13:29

Возможно ли реализовать?

Сообщение Alexander »

Допустим, что есть фэйс1, внутри которого вызывается фэйс2.
Interface фэйс1;
....
RunInterface('фэйс2'...);
....
end.

Во 2 фэйсе создаются временный таблицы, можно ли сделать так, чтобы они были доступны после его закрытия фэйс2 ???
т.е фэйс2 заполняет таблицы и я фэйс1 смогу эти данные использовать??
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Сообщение aleks1232321 »

Например, объявить временную теблицу как глобальную, т.е.
вставить ее объявление (описание) в проект.


Table STRUCT ChoiceDO "Временная для выбора спецификации по ДО"
(
nrecsp :comp,
kolchoice :double,
koldo :double,
kolnakl :double,
Price :double,
NameMC :string[80],
NameED :string[30]
)
With Index
(
icReco = NameMC + nrecsp
);
#make 'MY_FACE1.vip'
Alexander
Местный житель
Сообщения: 248
Зарегистрирован: 28 ноя 2006, 13:29

Сообщение Alexander »

а при закрытии интерфейса она разве не почистится???
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Сообщение aleks1232321 »

Нет, только после закрытия всего проекта
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

aleks1232321
подскажите, как в Галактике запустить проект, состоящий из двух отдельных интерфейсов? :-(
Всегда думал что файлы *.prj сделаны для удобства компиляции, и никаких таких "проектов" в самой галактике нет.


Alexander
создайте временные таблицы в первом фейсе.
перед вызовом второго почистите.
во втором наполните.
при возврате в первый фейс - юзайте свою таблицу.
aleks1232321
Постоянный гость
Сообщения: 86
Зарегистрирован: 28 апр 2005, 12:15
Откуда: Москва

Сообщение aleks1232321 »

Немного не понятно что значит "из 2-х отдельных интерфесов"?
Как я понял из первого вопроса - есть 2 фейса, один вызывает другой. Нужно, чтобы временная таблица (таблица в памяти) заполнялась во втором, а в перфом фейсе она используется для чего-либо, например, отображения.
Создаем проект myprj.prj, который имеет, например, такой вид
Table STRUCT ChoiceDO "Временная для выбора спецификации по ДО"
(
nrecsp :comp,
kolchoice :double,
koldo :double,
kolnakl :double,
Price :double,
NameMC :string[80],
NameED :string[30]
)
With Index
(
icReco = NameMC + nrecsp
);

#make 'my_face2.vip'
#make 'my_face1.vip'
В первом заполняем таблицу, во-вотором используем.

Можно сделать иначет
в перфом фейсе объявляем тадицу (как глобальную), во-втором заполняем.

Table STRUCT ChoiceDO "Временная для выбора спецификации по ДО"
(
nrecsp :comp,
kolchoice :double,
koldo :double,
kolnakl :double,
Price :double,
NameMC :string[80],
NameED :string[30]
)
With Index
(
icReco = NameMC + nrecsp
);


interface my_face1..........
Alexander
Местный житель
Сообщения: 248
Зарегистрирован: 28 ноя 2006, 13:29

Сообщение Alexander »

да у меня просто большой проект. Маленький пример сделал-работает, реальный-не хочет... надо смотреть почему.... странно.... не пойму в чем ошибка. пойду дефайны проверять.... всем спасибо... буду глюки искать!
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Чтобы данные из временной таблицы не удалялись при выходе из интерфейса, я делаю так:

mtChangeRefCount(#TMP_Nab, 1);

А когда надо очистить и удалить временную таблицу:

DELETE ALL Tmp_Nab;
mtChangeRefCount(#TMP_Nab, -1);
Ответить