Управление персоналом

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

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

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

Управление персоналом

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

Есть ли функция, которая бы считала среднесписочную численность сотрудников по подразделению?
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Нет. Но есть методы для расчета с/с по человеку. Устроит?
Виталий
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

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

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

Screw
скажите, а что такого отчета в Галактике вообще нет?

как там насчет функции? :)
Screw
Слесарь-системщик
Сообщения: 304
Зарегистрирован: 29 мар 2005, 17:49
Откуда: р.Беларусь, Унитарное предприятие "ТОП СОФТ"
Контактная информация:

Сообщение Screw »

Содержимое IApnCalculator.obj

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

//------------------------------------------------------------------------------
//                                                      (с) корпорация Галактика
// Галактика 7.12 - Заработная плата
// Описание obj-интерфейса расчета среднесписочной численности
//------------------------------------------------------------------------------

#ifndef _IAPNCALCULATOR_OBJ_INCLUDED_
#define _IAPNCALCULATOR_OBJ_INCLUDED_

#ifdef ComponentVersion
  #component "Z_WT"
#end

#doc
  Объектный интерфейс калькулятора среднесписочной численности
#end
objinterface IAveragePayrollNumberCalculator;
  #doc
    Возвращает среднюю продолжительность рабочего дня OnDay.
  #end
  function GetWorkingDayAverageTime(OnDay: byte): double;

  #doc
    Возвращает среднесписочную для лицевого счета с nrec = PersonalAccountRef
    за период с PeriodBeginning по PeriodEnding.
  #end
  function GetNumber(PersonalAccountRef: comp; PeriodBeginning, PeriodEnding: date): double;
end;

#end
Содержимое ApnCalculator.vih

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

//------------------------------------------------------------------------------
//                                                      (с) корпорация Галактика
// Галактика 5.8 - Заработная плата
// Декларация vip-интерфейса расчета среднесписочной численности
//------------------------------------------------------------------------------

#ifndef _APNCALCULATOR_VIH_INCLUDED_
#define _APNCALCULATOR_VIH_INCLUDED_

#include IApnCalculator.obj

#ifdef ComponentVersion
  #component "Z_WT"
#end

vipinterface AveragePayrollNumberCalculator implements IAveragePayrollNumberCalculator
#ifdef ATL51
  licensed(free)
#end
;
#end
Если не ошибаюсь, перед вызовом метода GetNumber нужно было загрузить табель работника с помощью функции LoadWorkingTable (перед использованием табельных функций нужно вызвать InitWorkingTable, по окончании работы с ними - DoneWorkingTable) . Период для выборки должен попадать в границы календарного месяца.
Понятно, что калькулятор рассчитывает ССЧ для одного отдельно взятого лицевого счета. Чтобы получить ССЧ по некоторому подразделению, придется обойти все его лицевые счета и подсуммировать их ССЧ.
Виталий
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

Screw
спасибо, это работает :cool:
Печалит только одно, что временной период должен быть в пределах календарного месяца... т.к. загрузка табеля делается за определенный месяц.

Просто ССЧ зачастую требуется с начала года на определённую дату.

Может быть можно загрузить сразу несколько табелей за вес год, например в цикле от 1 до 12 и потом расчитать ССЧ уже за нужный период?
Ответить