Вызов формы интерфейса из потоковой формы

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

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

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

Вызов формы интерфейса из потоковой формы

Сообщение galover »

Всем привет! Как можно вызвать из отчета (потоковой формы) функцию GetFio компонента z_staff (objInterface ObjStrFunc). Пробовал z_staff::GetFio("Foo Bar") не получается. Заранее спасибо!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

8) учи матчасть. vipprogr.chm - объектные фейсы. Да и форум почитай для начала.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

Почитал и есть вопросы. Нужно создавать vip интерфейс реализующий obj интерфейс? Obj интерфейс не содержит реализации, а лишь декларацию или не так? Где содержится реализация GetFIO (в vip интерфейсе компонента z_staff?)? Можете привести пример кода, по вызову функции?
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

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

ищите по форуму - до фига примеров
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

по порядку кратенько поскольку не раз обсждулось.
1. не нужно, нужно найти vih файл с описанием нужного объектного фейса и объявить переменную с нужным типом( если obj.. то ее придется проиницилизировать, а если с типом= фейс, то не надо)
var wdecl : odecl ;
2. obj да - тока описание, лучше использовать сам фейс в качестве типа - проще.
3. Да.
4. поищите "склонение ФИО"
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

Спасибо! Кажется разобрался, только вот засада. Вызов GetFIO('Иванов Иван Иванович') возвращает -> Иванов Иван Иванович, хотя должен Иванов И.И. GetLastName работает как и положено. Что не так?
k_vit
Постоянный обитатель
Сообщения: 143
Зарегистрирован: 09 авг 2006, 16:40
Откуда: Россия, Тюмень, ОАО "Сибирский Научно-Аналитический Центр"

Сообщение k_vit »

iStrFunc : StringFunctions;

iStrFunc.GetFirstName('Иванов Иван Иванович') + SubStr(iStrFunc.GetLastName('Иванов Иван Иванович'),1,1)+'. '+ SubStr(iStrFunc.GetPatronymic('Иванов Иван Иванович'),1,1)+'.';
Ответить