Как объявить свою функцию для вставки в вычисляемое поле

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Как объявить свою функцию для вставки в вычисляемое поле

Сообщение Max_Ural »

Нашли перечень функций, который пока умеем открывать только очень нетривиально:
В любом интерфейсе открываем пользовательские фильтры
Создаем новый
Кнопка Постоянные условия
Строчное условие
Теперь, если нажать F3, есть пункт меню Функция.
Вопроса два:
1. Как добавить свою функцию в этот список?
2. Где можно найти описание функций, которые включены в этот список? Например, нашли функцию GETUSERNAMEBYID (Comp) : String, которой нет в vipprogr.chm (лучше документацию, но хватит и исходников этих функций)
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

1 Туда выводятся только внешние функции.
2 Туда выводится слишком много функций. Описание того, что можно использовать - в обычной документации.
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Сообщение Max_Ural »

Фёдор Терсин, подскажите еще пожалуйста, можно ли написать внешнюю функцию на випе? Может быть нужно интерфейс как-то зарегистрировать?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

Внешняя функция на то и внешняя, что написана не на vip.
Аватара пользователя
Screw
топ-софт
Сообщения: 73
Зарегистрирован: Пт, 14/09/2007 22:54
Имя Фамилия: Виталий Корзюк
Откуда: ТопСофт
Контактная информация:

Сообщение Screw »

Максим, по сути - это обычные функции, экспортируемые динамически подключаемыми библиотеками. Да, их нужно регистрировать. Подробности см. в документе "Описание языка VIP" (Арифметические выражения - Подключение функций и процедур из DLL).
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Сообщение Max_Ural »

Похоже, данный механизм нам не очень пригодится.
Надеялись использовать примерно следующим образом:
если нужно вытащить какое-нибудь поле связанной нетривиальной ссылкой таблицы, вызываем функцию, передаем ей нрек
А она идет по нужным ссылкам и возвращает то, что нужно было показать в поле.
Вариант реализации подобных функций через паскаль нас не очень привлекает.

Спасибо за ответы.
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

Можно попробовать реализовать подобное через static-функции.
В упомянутом списке тем не менее эти функции отображаться не будут.
Max_Ural
партнер
Сообщения: 82
Зарегистрирован: Ср, 19/09/2007 08:35
Имя Фамилия: Максим Шагубаков
Откуда: Галактика-Урал
Контактная информация:

Сообщение Max_Ural »

[quote]Можно попробовать реализовать подобное через static-функции.
В упомянутом списке тем не менее эти функции отображаться не будут.[/qoute]

Федор, но при этом они будут работать в вычисляемых полях интерфейса?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

В работе статик-функций главное - проинициалиировать статический экземпляр.
Обычные выч. выражения тут вроде не помогают, поэтому лучше делать это из, например, точки расширения (что б на все интерфейсы действовало).
Так же есть особенность в подключении статик-функций - по сути это же интерфейс, а для испольования интерфейса как известно надо инклюдить инклюдники. Но, полагаю, если что-то вызвать из точки расширения, то статик-функции будут видны всем.
Ответить