Ваши комментарии
А в скрипте есть возможность прочитать № графика из параметров вида?
Для расчета по-среднему с помощью класса 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
Спасибо.
Заработал алгоритм.