Можно ли использовать данные из внешних программ?

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

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

Ответить
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Можно ли использовать данные из внешних программ?

Сообщение scanner »

Галактика 7.12.
Хочу осуществить следующее, пишем программку (например на Delphi), затем при формировании отчета вызываем нашу программку и она должна возвратить данные в наш отчет для дальнейшего использования. Для простоты будем считать что нужно возвратить всего одну текстовую строку.

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

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

Ну запуск внешней программы возможен.
А куда она должна вернуть эту самую строку?

Можно записать текстовый файл, а ВИПом читать этот текстовый файл.
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Желательно не использовать промежкточный файл, а возвратить строку допустим в переменную отчета. Но если этого нельзя то придеться через файл.

Да еще никто не слышал о возможности написания интерфейсов сторонними средствами без использования компилятора ВИП?
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Да еще можно ли передать внешней программе данные из отчета? Например вю ту же текстовую строку. Сначала передаем внешней программе, пользоветель ее меняет и возвращаем в отчет. После этого отчет выводится на экран.
coolibin
Постоянный обитатель
Сообщения: 151
Зарегистрирован: 29 мар 2005, 17:49

Сообщение coolibin »

Просто для наводки (сам не пробовал):
Документация - "Использование ActiveX"

Функционал очень клевый, судя по документации, можно даже реализовать обработчики событий на випе.
Если кто делал - поделитесь опытом плиз, думаю многим будет интересно. В частности, интересна работа с ADODB.recordset
mik
Новичок
Сообщения: 25
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение mik »

пишем свою DLL, в которой живет нужная функция.
подключаем ее к VIP программе и наслаждаемся 8-)
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

mik
Если можно дайте развернутый пример.
mik
Новичок
Сообщения: 25
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение mik »

это текст qwerty.dll

library qwerty;

function GetPi:Double;register;
begin
result := 3.14;
end;
exports
GETPI;
begin
end;

а это вип прога:

Function GETPI:Double;external 'qwerty.dll';

interface qwerty 'qwerty'
//....
// тут что то свое
//...
procedure ShowPi;
begin
message('2Pi' + String(2*GetPi));
end;


HandleEvent
cmInit:{ShowPi;}
end;
end.
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

mik
Т.е. если я все правильно понял на випе можно использовать даже те же API функции предварительно их объявив?

Т.е. можно создать окошко: CreateWindowA, SetWindowLongA, ect.
mik
Новичок
Сообщения: 25
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение mik »

есть некоторые ограничения.
строки в Vip паскалевские ShortString в дос кодировке(cp866)
процедуры и функции должны быть объявлены как register.
раньше было такое что название процедур/функций должны были описываться в верхнем регистре.

А для ADODB.Recordset я нарисовал в дллке ряд функций оберток, которые дают доступ к свойствам и методам TADOQuery.
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

mik
что значит
процедуры и функции должны быть объявлены как register
?

Да еще насколько я понимаю нет разницы где использовать ф-ии в отчетах или интерфейсах?
mik
Новичок
Сообщения: 25
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение mik »

вообще говоря register - соглашение о вызове процедур и функций используется в делфи по умолчанию.

если отчет или интерфейс сможет узнать о существовании функции то использовать конечно можно и там и сям :smile:


[/quote]
Ответить