Ваши комментарии

Спасибо.

Заработал алгоритм.

А в скрипте есть возможность прочитать  № графика из параметров вида?

Для расчета по-среднему с помощью класса KCalcSredn  задействован метод  InitSredn,

который требует, при обращении к нему, указать номер строки в матрице.

В результате чего приходится разноску из таблицы делать два раза.

В инструкции это выглядит так:

    1.4 Чистим поле ”Признак разноски” и разносим (F6) в ЛС виды для расчета среднего.

           (в ЛС должны добавиться новые виды НУ с датами начала и конца действия).                1.5 Рассчитываем (Alt_F4) среднее за день и суммы оплаты ”по-среднему” для разноски                 в  ЛС.

    1.6 Чистим поле ”Признак разноски” и разносим (F6) в ЛС результаты расчетов.

           (в ЛС у новых видов НУ должны заполниться: РВ, Сумма, БЗ).


Видно, что пункт 1.4 лишний, и если бы метод  InitSredn требовал не номер строки в матрице

а дату начала действия вида,  то оба пункта разноски (1.4, 1.6) можно было бы схлопнуть 

в один. 

Насколько я понимаю,  номер строки в матрице используется как раз для того чтобы найти

дату начала действия вида на основании которой определяется период для расчета 

среднего.

Возможно ли добавить такой метод в класс  KCalcSredn?

Если имеется в виду следующее:

  char tn[91], ls1[255];
  sprintf(tn,"%.90s",static_cast_to_string(tab)); FreeSpaceString(tn,3,""); double tabn =  atof(tn);
  lsname(Find_Full_TN(tabn),ls1); FreeSpaceString(ls1,3,""); lsread(ls1,0); 

то ЛС читается.

Может быть есть какой-нибудь пример с разноской из скрипта?

Вопрос по другому методу.

В методе InitByPointer что за таблица имеется в виду в параметре Adr?

Синтаксис:     void InitByPointer ( long Adr, unsigned FlagClear );

Параметры:   Adr - адрес для инициализации таблицы

Получается, что перед использованием этого метода (InitSredn) расчетчик  должен во всех ЛС вручную добавить вид для среднего?

Вопрос связан с тем, что уже несколько лет на предприятии для определенных условий сумма отпуска рассчитывается через таблицу с помощью метода (Sredn.InitOtp(DateBeg,0);)  и уже потом разносится в ЛС с открытием вида отпуска и проставлением символов в табеле.

Вот и для "по-среднему" расчетчики просили сделать такую же таблицу.

Во втором методе способа расчета по-среднему  (InitByPointer)  что за таблица имеется в виду в параметре  Adr?

Синтаксис:    void InitByPointer ( long Adr, unsigned FlagClear );

Параметры:

Adr - адрес для инициализации таблицы

При инициализации расчета «по-среднему», что имеется в виду под  "номер рассчитываемой строки" т.е. - откуда брать значение для int crow? 


void InitSredn (int crow, int kod_alg, Date DateBeg, unsigned Flag );

Параметры:

crow - номер рассчитываемой строки

Вроде бы сработало,  разбираемся как это можно использовать.



Сервис поддержки клиентов работает на платформе UserEcho