Страница 1 из 1

Vip-алгоритм в "Анкетные данные для..." (Заработна

Добавлено: 21 май 2008, 10:00
Bulat-bash
Есть интересный отчет в "Заработная плата" -> отчеты -> Реестры по перечислениям после расчета зарплаты -> Анкетные данные для экспорта реестров.
В данном отчете можно использовать Vip-алгоритмы.
Может кто-нибудь занет как в список Vip-алгоритмов добавить свой .
Наверное должен быть vih c описанием Obj-интерфейса, если у кого есть то выложите текст, пожалуйста.

Добавлено: 21 май 2008, 10:25
Алексей

Код: Выделить всё

/*
                      (c) 1994,97 корпорация ГАЛАКТИКА
  Проект        : ГАЛАКТИКА
  Система       : Заработная плата
  Назначение    : objinterface IZarAlgorithm
  Ответственный : Корзюк Виталий Францевич
  Параметры     : нет

*/

#ifndef __ZARALG_VIH__
#define __ZARALG_VIH__


#ifdef ComponentVersion
#component "Z_Zar"
#end
#doc
   Часть API (application programming interface), дающего сторонним
   разработчикам возможность оперативно расширять вычислительные возможности
   алгоритмов расчета сумм оплат и удержаний. </brief>

   <p>Для реализации своих специфических расчетов нужно написать vipinterface,
   который будет реализовывать функции объектного интерфейса IZarAlgorithm:</p>

   <pre class=example>
   vipinterface ZarAlgorithm_MyInterface implements IZarAlgorithm;
   </pre>

   <p>Для облегчения поиска реализаций объектного интерфейса IZarAlgorithm
   в ресурсном файле, их имена следует предварять префиксом "ZarAlgorithm_".
   Префикс не следует указывать в вызове функции ZarAlg - он будет добавлен
   процедурой загрузки автоматически.</p>

   <pre class=example>
   ##include zaralg.vih
   ...
   // одна из возможных реализаций
   vipinterface ZarAlgorithm_Alg1 implements IZarAlgorithm;

   interface ZarAlgorithm_Alg1 cacheable;
   ...

   // использование в алгоритме расчета суммы какого-либо вида оплаты/удержания
   ... ZarAlg('Alg1', '...') ...
   ...
   </pre>
#end
objinterface IZarAlgorithm;
  #doc
    Возвращает вычисленную алгоритмом сумму.
  #end
  function CalcSum(Parameter: string): double;

  #doc
    Возвращает краткое описание алгоритма.</brief>

    <p>Используется при построении списка vip-алгоритмов.</p>
  #end
  function GetDescription: string;
end;

#endif

Добавлено: 21 май 2008, 11:01
Bulat-bash
Алексей Вы меня наверное не поняли!
При настройке отчета в окне =Текущие настройки= указывается:Флаг вставки записи в список — выбирается из перечня Vip-алгоритмов — например, VAL1 "Оклад сотрудника"- вот сюда бы мне вставить свой алгоритм.

Добавлено: 21 май 2008, 12:30
Алексей
я правильно вас понял. Вам надо написать свой вип алгоритм, подключить ресурс и он там должен появиться, как в ТХО АПИ.

Добавлено: 21 май 2008, 17:26
Bulat-bash
и все-таки что-то не то
мне доводилось пользоваться IZarAlgorithm
Пример:
objinterface IZarAlgorithm;
function CalcSum(Par : string) : double;
function GetDescription: string;
end;
vipinterface ZarAlgorithm_ktyfromnar implements IZarAlgorithm;
interface ZarAlgorithm_ktyfromnar Cacheable;
Create view
var x:double
select * from PRNARYAD
;
function CalcSum(Par : string) : double;
{
x:=1;
CalcSum:=x;
}
function GetDescription: string;
{
GetDescription:='кту из др. наряда'
}
end.
Не спорю по данному можно произвести расчеты и он появляется, например, в классификаторе алгоритмов, но именно в отчете "Анкетные данные для экспорта реестров"(для выбора алгоритма используется интерфейс 'EXPREESTRLIST') используется все-таки другой OBJ-фейс.
Прошу помощи

Добавлено: 22 май 2008, 05:43
Алексей
Vih

Код: Выделить всё

/*
 ╔═══════════════════════════════════════════════════════════════════════════╗
 ║                                                   (c) корпорация ГАЛАКТИКА║
 ║ Галактика 5.85 : ""                                                       ║
 ║ Объектный интерфейс для работы с Plug-in`ами для электронной формы реестра║
 ╚═══════════════════════════════════════════════════════════════════════════╝
*/

#ifndef __EXPREES_VIH__
#define __EXPREES_VIH__

/*

   ...
   // одна из возможных реализаций
   vipinterface ExpReestr_Val1 implements IExpReestr;
   Не рекомендуется часть после префикса делать больше чем 10 символов

   interface ExpReestr_Val1 cacheable;
   ...

*/
#ifdef ComponentVersion
  #component "Z_PayRep"
#end
#doc
Объектный интерфейс для работы с Plug-in`ами для электронной формы реестра
#end
objinterface IExpReestr;
  #doc
  #end
  function GetValue(Parameter: comp; Parameter2: comp): string;//1-я ссылка на л\с, 2-я на Spplban (получаем значение)
  #doc
  #end
  function GetFlag(Parameter: comp): boolean; // да или нет
  #doc
  получить строковое описание
  #end
  function GetDescription: string;
end;

#endif
пример Z_PAYREP::VAL1

Код: Выделить всё

vipinterface ExpReestr_Val1 implements IExpReestr // для получения оклада сотрудника
#ifdef ATL51
  licensed (free)
#end
;



interface ExpReestr_Val1 'Оклад' EscClose;
create view as
  select
    *
  from
    lschet
  ;

function GetValue(Parameter: comp; Parameter2: comp): string;
{
  if getfirst fastfirstrow lschet where ((Parameter== lschet.nrec))= tsOk
    GetValue := string(lschet.tarif);
  else
    GetValue := '';
}

function getFlag(Parameter: comp): boolean;
{
  getFlag := true;
}

function GetDescription: string;
{
  GetDescription := 'Оклад сотрудника';
}
HandleEvent
  cmInit:
    Abort;
  end;
end.

Добавлено: 22 май 2008, 08:28
Bulat-bash
АЛЕКСЕЙ - огромнейшее вам спасибо!

Добавлено: 28 авг 2008, 12:50
lena_b
Здравствуйте.
У меня аналогичный вопрос.
В зар.плате есть отчет "Состав зар.платы в разрезе начислений и счетов". Там в дополнительных настройках можно добавить пользовательскую колонку, в которой указывается vip-алгоритм. Как сделать так, чтобы там появился свой алгоритм? Т.е. очень нужен текст vih c описанием нужного Obj-интерфейса.
Интерфейс strzar.

С уважением.

Добавлено: 10 сен 2008, 19:15
edward_K
ZarNachislUder.vih ищите
свой фейс обзываете ZarNachislUder_???? , остальное все также как для ведомостей. А еще есть штука при выборе работников - пометка по выбору, где-то в доп.доке в галке было.

Добавлено: 18 сен 2008, 09:17
lena_b
Спасибо, с ZarNachislUder_ попробую, а остальное так же как для каких ведомостей?
ZarNachislUder.vih у меня нету, если есть у кого поделитесь, пожалуйста.
Вторую часть ответа не поняла :( Какая пометка по выбору? Где работники выбираются?

Добавлено: 18 сен 2008, 09:28
RAJAH

Код: Выделить всё

//********************************************************************************
//                                                        (c) корпорация Галактика
// Галактика 7.12
// Режим : Объектный интерфейс для работы с справкой о зарплате в разрезе начисл. и удержаний
//********************************************************************************

#ifdef ComponentVersion
  #component "z_zar"
#end
#doc
Объектный интерфейс для работы со справкой о зарплате в разрезе начисл. и счетов
#end
objInterface IZarNachislUder;
#doc
 в функцию передается Nrec и номер таблицы, возвращает значение для колонки в
 справке по зарплате в разрезе начислений и удержаний
#end
function GetValue(ParNrec : comp; NumbTable :longint ):string;
#doc
функция устанавливает название колонки в справке
#end
function SetColName: string;
#doc
функция возвращает описание интерфейса
#end
function GetDescription: string;
end;

vipInterface ZarNachislUder implements IZarNachislUder
#ifdef ATL51
Licensed(Free)
#end
;

Добавлено: 18 сен 2008, 12:28
lena_b
Спасибо большое!