| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		Programmer Участник - экстремал
 
  Вступление в Клуб: 26.11.2014
  | 
		
			
				 Ср Апр 26, 2017 11:44   Создание объекта через операцию «Добавить. Отпуск» | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Добрый день, уважаемые знатоки. 
 
Вопрос заключается в следующем.
 
При программирование, после создания объекта операцией "Добавить. Отпуск" ТБП "Кадры. Список сотрудников", возникает проблема, не правильно заполняется переменная "Расчет количества дней отпуска" "V_DAY_LEAVE". 
 
В данный гред в поле "Использовать" подставляется количество дней из 
 
"Период работы сотрудника" "Остоток"
 
 
Получается следующим образом "Период отпуска" с 10,04,17 по 12,04,17
 
в днях получается 3 дня и должно быть в 3 в гриде "Использовать" А подставляется Остаток из выбранного Периода работы. Остаток у нас 18 дней. И получается Период отпуска с 10,04,17 по 12,04,17 а дней Использовать 18
 
 
Переменную "V_DAY_LEAVE" в своей процедуре заполняю следующим образом.
 
 
p_DAY_LEAVE(1).[ST_1] := null;
 
p_DAY_LEAVE(1).[ST_2] := null;
 
p_DAY_LEAVE(1).[SUMMA_1] := 5;
 
p_DAY_LEAVE(1).[INTEGER_1] := Date_e - Date_s;
 
p_DAY_LEAVE(1).[ST_3] := null;
 
 
Подскажите пожалуйста, может кто сталкивался с подобного рода проблемой. Как заполнить данную переменную, что бы результат ее отображения был верным?[/img] | 
			 
		  | 
	
	
		  | 
	
	
		yaffil Профи
 
  Вступление в Клуб: 18.08.2011
  | 
		
			
				 Ср Апр 26, 2017 11:56   Re: Создание объекта через операцию «Добавить. Отпуск» | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Programmer пишет: | 	 		  p_DAY_LEAVE(1).[INTEGER_1] := Date_e - Date_s;
 
 | 	  
 
 
А что мешает продебагить Date_e и Date_s ? 
 
Ищите место где эти даты меняются. | 
			 
		  | 
	
	
		  | 
	
	
		Programmer Участник - экстремал
 
  Вступление в Клуб: 26.11.2014
  | 
		
			
				 Ср Апр 26, 2017 12:01   Re: Создание объекта через операцию «Добавить. Отпуск» | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | yaffil пишет: | 	 		   	  | Programmer пишет: | 	 		  p_DAY_LEAVE(1).[INTEGER_1] := Date_e - Date_s;
 
 | 	  
 
 
А что мешает продебагить Date_e и Date_s ? 
 
Ищите место где эти даты меняются. | 	  
 
Ставил. 
 
Все бы было так легко.
 
Разница дат дает мне нужное число. И записывается в данную переменную нужное число.
 
Но вот когда операция создана и подымается на редактирование число уже там совершенно другое. | 
			 
		  | 
	
	
		  | 
	
	
		yaffil Профи
 
  Вступление в Клуб: 18.08.2011
  | 
		
			
				 Ср Апр 26, 2017 12:03   Re: Создание объекта через операцию «Добавить. Отпуск» | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Programmer пишет: | 	 		  | Но вот когда операция создана и подымается на редактирование число уже там совершенно другое. | 	  
 
 
Не бейте сильно, но я не вкурил смысл этой фразы    
 
Если у вас расширение дистрибутивной то, p_DAY_LEAVE(1).[INTEGER_1] там скорее всего пере инициализируется по своему. | 
			 
		  | 
	
	
		  | 
	
	
		Programmer Участник - экстремал
 
  Вступление в Клуб: 26.11.2014
  | 
		
			
				 Ср Апр 26, 2017 13:00   Re: Создание объекта через операцию «Добавить. Отпуск» | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | yaffil пишет: | 	 		   	  | Programmer пишет: | 	 		  | Но вот когда операция создана и подымается на редактирование число уже там совершенно другое. | 	  
 
 
Не бейте сильно, но я не вкурил смысл этой фразы    
 
Если у вас расширение дистрибутивной то, p_DAY_LEAVE(1).[INTEGER_1] там скорее всего пере инициализируется по своему. | 	  
 
 
смысл фразы в следующем. После создания объекта. Я в АРМе нахожу его и подымаю на редактирования F3 и в форме вижу не верное число.
 
 
Можешь подсказать куда копать?
 
Или возможно проблему можно разрешить, если исследовать операцию "Изменить. Отпуск" "EDIT_LEAVE". | 
			 
		  | 
	
	
		  | 
	
	
		Trei Участник со стажем
 
  Вступление в Клуб: 11.08.2013
  | 
		
			
				 Ср Апр 26, 2017 14:20    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Информации недостаточно, чтобы делать предположения.  Что за операция? Ваша, или расширение к дистрибутивной? 
 
Ищите в коде, чудес не бывает, начните с дебага перед вставкой, посмотрите, что в итоге вы пишете в реквизиты создаваемого экземпляра. | 
			 
		  | 
	
	
		  | 
	
	
		Programmer Участник - экстремал
 
  Вступление в Клуб: 26.11.2014
  | 
		
			
				 Ср Апр 26, 2017 14:28    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Trei пишет: | 	 		  Информации недостаточно, чтобы делать предположения.  Что за операция? Ваша, или расширение к дистрибутивной? 
 
Ищите в коде, чудес не бывает, начните с дебага перед вставкой, посмотрите, что в итоге вы пишете в реквизиты создаваемого экземпляра. | 	  
 
Операция как и написал дистрибутивная.
 
Отладки ставил. При создании операции, количество дней в пайпе правильное. Но когда подымаю объект на редактировать F3 то дни стоят в гриде не верные. 
 
Какую еще информацию необходимо представить? Скажите пожалуйста. | 
			 
		  | 
	
	
		  | 
	
	
		yaffil Профи
 
  Вступление в Клуб: 18.08.2011
  | 
		
			
				 Ср Апр 26, 2017 14:40    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Programmer пишет: | 	 		  Отладки ставил. При создании операции, количество дней в пайпе правильное. Но когда подымаю объект на редактировать F3 то дни стоят в гриде не верные. 
 
Какую еще информацию необходимо представить? Скажите пожалуйста. | 	  
 
 
Странно это слышать от программера с 14го года как на форуме зареганного
 
Вы себя то слышите вообще?
 
 
 	  | Programmer пишет: | 	 		  
 
При создании операции, количество дней в пайпе правильное. Но когда подымаю объект на редактировать F3 то дни стоят в гриде не верные. | 	  
 
 
Если открыть посмотреть вызываемую операшку, то сразу же в дефолте видим:
 
if P_WORK_PER is not null then
 
			idx := 1;
 
			V_DAY_LEAVE.delete;
 
			For d in P_WORK_PER.[PLAN_DAY] loop
 
				V_DAY_LEAVE(idx).[ST_1] := d.[KIND_LEAVE].[NAME];
 
				V_DAY_LEAVE(idx).[ST_3] := d.[KIND_LEAVE];
 
				V_DAY_LEAVE(idx).[ST_2] := to_char(d.[AMOUNT],'999999990.00');				
 
				V_DAY_LEAVE(idx).[INTEGER_1] := trunc(d.[AMOUNT],0);
 
				V_DAY_LEAVE(idx).[SUMMA_1] := 0;
 
				idx := idx+1;
 
			End Loop;
 
			&debug('После обработки отпусков',3) | 
			 
		  | 
	
	
		  | 
	
	
		Programmer Участник - экстремал
 
  Вступление в Клуб: 26.11.2014
  | 
		
			
				 Ср Апр 26, 2017 14:55    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | yaffil пишет: | 	 		  
 
Странно это слышать от программера с 14го года как на форуме зареганного 
 
 Вы себя то слышите вообще? 
 
 | 	  
 
 
Что конкретно, не понятно!? 
 
И что я должен услышать?
 
   | 
			 
		  | 
	
	
		  | 
	
	
		nairka1973 Участник
 
  Вступление в Клуб: 22.11.2012
  | 
		
			
				 Ср Апр 26, 2017 17:38    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| У меня, когда меняю период отпуска, то и "использовать" меняется | 
			 
		  | 
	
	
		  | 
	
	
		Programmer Участник - экстремал
 
  Вступление в Клуб: 26.11.2014
  | 
		
			
				 Ср Апр 26, 2017 17:38    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| Ребята, проблему решил. Всех благодарю за помощь. | 
			 
		  | 
	
	
		  | 
	
	
		 |