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

кол-во рабочих дней по подразделению.

Добавлено: 01 мар 2007, 10:37
Alexander
Как узнать кол-во рабочих дней по подразделению.? нашел только по табелю...! И заодно общее кол-во дней в месяце.

Добавлено: 10 мар 2007, 03:13
Screw
Дайте определение "рабочих дней по подразделению", пожалуйста.

Добавлено: 14 мар 2007, 09:54
Alexander
одно подразделение работает 5 дней в неделю, второе-6, третье - круглосуточно без выходных(производственный цикл). Отсюда нужно считаеть и ко-во рабочих дней... Можно ли?

Добавлено: 17 мар 2007, 01:53
Screw
Прошу прощения за задержку с ответами.
Каким образом в системе указывается... режим работы подразделения?

Добавлено: 19 мар 2007, 11:00
Alexander
да вот я и спрашиваю: есть ли? :-)
хотя уже не актуально по-другому сделал, но все же? :-)

Добавлено: 12 май 2007, 01:12
Screw
Нет, штатного средства нету. Разве что внешние атрибуты прикрутить... Но это неудобный способ.

Добавлено: 14 май 2007, 08:00
hope
А как же поле "График" в настройке подразделения? Ведь в нем и задается график работы подразделения.

Добавлено: 01 июл 2007, 04:59
Screw
Это может сработать! Для работы с графиком понадобится нижеследующее:

GrafFunc.vih:

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

#ifndef _GRAFFUNC_INCLUDED_
#define _GRAFFUNC_INCLUDED_

#ifdef ComponentVersion
#component "Z_Calendar"
#end

#doc
  Объектный интерфейс для доступа к общесистемным графикам.
#end
objinterface IGrafikFunctions;
  #doc
    Возвращает количество рабочих часов между датами по данному
    графику.</brief>

    <p>В параметре PrRec передается nrec графика, в D1 и D2 - начальная и
    конечная даты диапазона.</p>
  #end
  function RabChasBetweenDates(prrec: comp; d1: date; d2: date): double;

  #doc
    Возвращает количество часов по графику, приходящихся на заданную
    дату.</brief>

    <p>В параметре PrRec передается nrec графика, в PrDate - дата.</p>
  #end
  function RabChasOnDate(prrec: comp; prdate: date): double;

  #doc
    Возвращает количество рабочих минут между датами по данному
    графику.</brief>

    <<p>В параметре PrRec передается nrec графика, в D1 и D2 - начальная и
    конечная даты диапазона.</p>

  #end
  function RabMinBetweenDates(prrec: comp; d1: date; d2: date): double;

  #doc
    Возвращает количество минут по графику, приходящихся на заданную
    дату.</brief>

    <p>В параметре PrRec передается nrec графика, в PrDate - дата.</p>
  #end
  function RabMinOnDate(prrec: comp; prdate: date): double;

  #doc
    Возвращает количество рабочих смен между датами по данному графику.</brief>

    <p>В параметре PrRec передается nrec графика, в D1 и D2 - начальная и
    конечная даты диапазона.</p>

  #end
  function RabSmenBetweenDates(prrec: comp; d1: date; d2: date): longint;

  #doc
    Возвращает количество рабочих смен по графику, приходящихся на заданную
    дату.</brief>

    <p>В параметре PrRec передается nrec графика, в PrDate - дата.</p>
  #end
  function RabSmenOnDate(prrec: comp; prdate: date): longint;

  #doc
    Возвращает количество рабочих дней между датами по данному
    графику.</brief>

    <p>В параметре PrRec передается nrec графика, в D1 и D2 - начальная и
    конечная даты диапазона.</p>
  #end
  function RabDayBetweenDates(prrec: comp; d1: date; d2: date): longint;

  #doc
    Возвращает 1, если на заданную дату приходится рабочий день, или 0 в
    противном случае.</brief>

    <p>В параметре PrRec передается nrec графика, в PrDate - дата.</p>
  #end
  function RabDayOnDate(prrec: comp; prdate: date): longint;

  #doc
    Рассчитывает количество рабочих, вечерних, ночных часов и часов разрывов
    между сменами по графику за данный период. Возвращает true в случае
    удачного завершения, иначе - false.</brief>

    <p>В параметре PrRec передается nrec графика, в Dt1 и Dt2 - начальные и
    конечные даты и время диапазона. Количество рабочих часов возвращается в
    res_Day, вечерние - в res_Evning, ночные - в res_Night, часы разрывов между
    сменами - в res_raz. Параметр res_din зарезервирован для дальнейшего
    использования.</p>
  #end
  function AllChasBetweenDateTime(
    prrec: comp;
    dt1: datetime; dt2: datetime;
    var res_Day, res_Evning, res_Night, res_raz, res_din: double): boolean;
end;

vipinterface GrafikFunctions implements IGrafikFunctions
#ifdef ATL51
  licensed(Free)
#end
;
#end


Добавлено: 25 мар 2008, 17:25
varvara
Не могу посчитать количество дней по графику. Подключила приведенный выше .vih.
Функция RabDayBetweenDates возвращает 0.
kol_dn:=graf.RabDayBetweenDates(nrec_,dat1,dat2)
nrec_ - нрек таблицы klrejim.
В чем может быть причина?