AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.07.2009, 10:51   #1  
im-juli is offline
im-juli
Участник
 
2 / 10 (1) +
Регистрация: 06.07.2009
Кто нибудь смотрел новую Демо базу по Зарплате?
Не могу ввести Страховой стаж в карточке сотрудника.
Если ввожу СТРАХОВОЙ стаж дата начало, то страховой стаж на дату лет не считает.
Страховой стаж на дату лет ввести не даёт. все обнуляется.
В Navision я чайник и только начинаю изучать.
Может ,что делаю не так?
Помогите пожалуйста.
Старый 06.07.2009, 13:39   #2  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от im-juli Посмотреть сообщение
Кто нибудь смотрел новую Демо базу по Зарплате?
Не могу ввести Страховой стаж в карточке сотрудника.
Если ввожу СТРАХОВОЙ стаж дата начало, то страховой стаж на дату лет не считает.
Страховой стаж на дату лет ввести не даёт. все обнуляется.
В Navision я чайник и только начинаю изучать.
Может ,что делаю не так?
НЕ отвечу, а немного добавлю - не днях объединял обе демо-базы RU и почему-то код НЕ совпедает на "пересекающихся" объектах
Старый 14.07.2009, 14:20   #3  
Константин! is offline
Константин!
Участник
 
180 / 10 (1) +
Регистрация: 13.04.2005
Адрес: Казань
Цитата:
Сообщение от RedFox Посмотреть сообщение
НЕ отвечу, а немного добавлю - не днях объединял обе демо-базы RU и почему-то код НЕ совпедает на "пересекающихся" объектах
Ага в код добавили условие в результате чего он вообще работать не будет:

Когда вводим Страховой стаж на дату лет срабатывает ф-я TestInsuranceServ
вот ее код

Код:
HumanResSetup.GET;
HumanResSetup.TESTFIELD("Min Insurance Serv Start Date");
IF ("Insurance Empl. Starting Date" <> 0D) AND (HumanResSetup."Min Insurance Serv Start Date" <> 0D) THEN BEGIN
  CalcInsurServ(HumanResSetup."Min Insurance Serv Start Date","Insurance Empl. Starting Date",
				TmpYear,TmpMonth,TmpDay,0,0,0);
  IF "Insurance Empl. (Years)" > TmpYear THEN
	"Insurance Empl. (Years)" := TmpYear;
  IF "Insurance Empl. (Months)" > TmpMonth THEN
	"Insurance Empl. (Months)" := TmpMonth;
  IF "Insurance Empl. (Days)" > TmpDay THEN
	"Insurance Empl. (Days)" := TmpDay;
END;
в этом коде вызывается ф-я CalcInsurServ в которую передаться последние три параметра равные нулю, потом на основе этих нулей вычисляют параметр DayAgo который будет равен нулю и с помощью нового условия успешно обходят основное тело ф-и где вычисляться возвращаемые параметры.

Код:
CalcInsurServ(StartingDate : Date;CurrentDate : Date;VAR YearsQty : Integer;VAR MonthsQty : Integer;VAR DaysQty : Integer;YearStart : Integer;MonthsStart  : Integer;DaysStart  : Integer)
DayAgo := YearStart * 12 * 30 + MonthsStart * 30 + DaysStart;

IF DayAgo <> 0 THEN BEGIN //ДОБАВИЛИ УСЛОВИЕ
  StartingDateNew := CALCDATE('<-' + FORMAT(DayAgo) + 'D>',StartingDate);

  IF StartingDateNew <> 0D THEN BEGIN
	DaysQty := CurrentDate - StartingDateNew;
	MonthsQty := ROUND(DaysQty / 30, 1.0, '<');
	DaysQty := DaysQty - MonthsQty * 30;
  END;
  IF MonthsQty > 12 THEN BEGIN
	YearsQty := ROUND(MonthsQty / 12 ,1.0, '<');
	MonthsQty := MonthsQty - YearsQty * 12;
  END;
END;
Может вместо нулей надо передовать "Insurance Empl. (Years)", "Insurance Empl. (Months)", "Insurance Empl. (Days)"
Старый 15.07.2009, 00:36   #4  
im-juli is offline
im-juli
Участник
 
2 / 10 (1) +
Регистрация: 06.07.2009
Если изменить параметры, то стаж лет , мес , дней ввсети получается. Но при этом стаж на дату (рабочую) лет, мес, дней получается очень странный.
Не понимаю почему Insurance Empl. Starting Date - OnValidate() не сделана в духе Total Empl. Starting Date - OnValidate()
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:09.