Vip в зарплате

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

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

s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Vip в зарплате

Сообщение s2176 »

Здравствуйте!
Кто-нибудь писал свои алгоритмы для расчета зарплаты с помощью ZARALG?
Создаю самый простой текст:

objinterface IZarAlgorithm;
function CalcSum: double;
function GetDescription: string;
end;
vipinterface ZarAlgorithm_Midd implements IZarAlgorithm;
interface ZarAlgorithm_Midd Cacheable;
Create view
as select * from persons;
function CalcSum: double;
{ CalcSum:=double(1050);
}
function GetDescription: string;
{ GetDescription:='проба пера'
}
end.

Компилируется без ошибок, но вылетает вместе с Гал-кой при попытке рассчитать...
Кто сказал, что бесполезно биться головой об стену?!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Vip в зарплате

Сообщение edward_K »

сдается причина в том, что описание функций не соответсвует тому что имеется сейчас.
если б указали версию и патч по зряплате сказал бы точнее. в 584 уже давно так
objinterface IZarAlgorithm;
// рассчитать сумму
function CalcSum(Parameter: string): double;
// краткое описание алгоритма
function GetDescription: string;
end;
и все пашет, только нужно логику понимать работы. Не рекомендую например генерить записи в nachisl и uder. Все команды типа Uch_SetDN не меняют предварительную разноску а меняют дни в Nachisl и т.п.
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Re: Vip в зарплате

Сообщение s2176 »

версия 85, zar08 с двумя фиксами.
Кто сказал, что бесполезно биться головой об стену?!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Vip в зарплате

Сообщение edward_K »

в 585 тоже такие же описания
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Re: Vip в зарплате

Сообщение s2176 »

А почему же вылетает????
Может кто-то писал такие интерфейсы,
я впервые взялась, может у меня где-то что-то не в том порядке написано....
Кто сказал, что бесполезно биться головой об стену?!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Vip в зарплате

Сообщение edward_K »

потому как должно быть
function CalcSum(Parameter: string): double;
а не function CalcSum: double;
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Re: Vip в зарплате

Сообщение s2176 »

добрый день!
Так должно быть?

objinterface IZarAlgorithm;
function CalcSum(Par: string): double;
function GetDescription: string;
end;
vipinterface ZarAlgorithm_Midd implements IZarAlgorithm;
interface ZarAlgorithm_Midd Cacheable;
Create view
as select * from persons;
function CalcSum(Par: string): double;
{ CalcSum:=double(1050);
}
function GetDescription: string;
{ GetDescription:='проба пера'
}
end.

А так тоже вылетает...
Не совсем понятно, что за параметр...
Кто сказал, что бесполезно биться головой об стену?!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Vip в зарплате

Сообщение edward_K »

а в алгортиме то что?
ZARALG('MIDD','')
параметр просто строковый - чтобы не писать кучу фейсов с аналогичными функциями.
я эти пользуюсь уже пару лет - и ниче, пашет.
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Re: Vip в зарплате

Сообщение s2176 »

В алгоритме именно так и написано:
ZarAlg('MIDD', '')....
и все равно вылетает по рантайму :-[
Я ведь специально максимально простой пример сделала: простое присвоение фиксированной суммы 1050р., просто, чтобы проверить работоспособность.
Кто сказал, что бесполезно биться головой об стену?!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Vip в зарплате

Сообщение edward_K »

objinterface IZarAlgorithm;
// рассчитать сумму
function CalcSum(Parameter: string): double;
// краткое описание алгоритма
function GetDescription: string;
end;
имя переменной вообще то важно в описании - может в этом дело?
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Re: Vip в зарплате

Сообщение s2176 »

Добрый день, Edward_K!
Ну, если не жалко, пришлите полный текст файла какого-нибудь очень простого расчета!
Буду очень благодарна!
Кто сказал, что бесполезно биться головой об стену?!
Великий Пользователь
Постоянный гость
Сообщения: 56
Зарегистрирован: 25 июл 2005, 16:42

Сообщение Великий Пользователь »

Help на мыло!
Создаем zar_alg.vih в нем прописываем

objinterface IZarAlgorithm;
function CalcSum(Par : string) : double;
function GetDescription : string;
end;
vipinterface ZarAlgorithm_Alg1 implements IZarAlgorithm;

Создаем main_zar.vip в нем пишем:
#include zar_Alg.vih

interface ZarAlgorithm_Alg1 cacheable;
create view;
function CalcSum(Par : string) : double;
{
CalcSum := double(1);
}
function GetDescription : string;
{
GetDescription := '1';
}
end.
Все работет на Галактике вер. 7.12 с патчами zar07 и fix01
gritv
Посетитель
Сообщения: 34
Зарегистрирован: 09 авг 2005, 18:42
Откуда: Воронеж

Сообщение gritv »

Добрый день Вам! Если кто знает, что передается в качестве параметра в
function CalcSum(Par: string): double;
подскажите!!!
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Сообщение s2176 »

Добрый день, gritv!
Все что хотите, то и передавайте, только в строковом виде!
Это второй параметр из ZarAlg('Имя моего алгоритма', 'Мой параметр');
Вы его внутри CalcSum можете использовать по своему усмотрению, а если ничего не нужно, то передавайте пустую строку.
Например:
у нас есть алгоритм с номером 109, который равен
ZarAlg('VOZRAST', '3') (вычисляет возраст сотрудника и увеличивает его на 3)
Кто сказал, что бесполезно биться головой об стену?!
Nikos
Местный житель
Сообщения: 577
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Томск

Сообщение Nikos »

Добрый день!
Возникла необходимость рассчитать доплату, используя IZarAlgorithm. А какие данные можно использовать в вычислениях? Например, возможно есть переменная, в которой указывается NREC лицевого счета сотрудника, для которого выполняется расчет или еще что-то?
Ответить