| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		Kozyrev Участник - экстремал
 
  Вступление в Клуб: 03.09.2007
  | 
		
			
				 Чт Апр 24, 2008 12:05   Модификация представления | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Существует представление: 
 
Кредиты частным лицам -> Кредиты физ. лицам.
 
 
В нем существует ссылка на фактические операции.
 
 
Как можно добавить в представление колонку с датой последнего гашения?
 
 
Добавил колонку типа даты, указал источник A10_1.C_DATE ("Дата" операции из массива "Фактические операции").
 
 
Как теперь наложить условие на вид операции и на то, что необходима дата именно последнего гашения?
 
 
Подскажите, пожалуйста, как дейтсвовать!
 
 
Заранее спасибо! | 
			 
		  | 
	
	
		  | 
	
	
		Alexsey Эксперт
 
  Вступление в Клуб: 06.09.2007
  | 
		
			
				 Чт Апр 24, 2008 12:27   Re: Модификация представления | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				 	  | Kozyrev пишет: | 	 		  Существует представление: 
 
Кредиты частным лицам -> Кредиты физ. лицам.
 
 
В нем существует ссылка на фактические операции.
 
 
Как можно добавить в представление колонку с датой последнего гашения?
 
 
Добавил колонку типа даты, указал источник A10_1.C_DATE ("Дата" операции из массива "Фактические операции").
 
 
Как теперь наложить условие на вид операции и на то, что необходима дата именно последнего гашения?
 
 
Подскажите, пожалуйста, как дейтсвовать!
 
 
Заранее спасибо! | 	  
 
я так понял что тебе нужна последняя запись из массива...
 
 
глянь эту функцию
 
 
 	  | Код: | 	 		  -- расчет процентов с даты последней записи в журнале фактических операций
 
::[PR_CRED].[LIB_EXT].recalc_prc_date(Cred, OnDate, VidDebt); | 	  
 
 
либо выборку из::[PR_CRED].[CALC_PRC] строка в теле операции примерно 141-я
 
 
 	  | Код: | 	 		  -- Вычислить дату фиксации процентов
 
for ( select FO( nvl(FO.[END_DATE], FO.[DATE]) : C_DATE)
 
                 in oCred.[LIST_PAY]
 
               where FO.[OPER].[TAKE_DEBT].[DEBT] = P_DEBT
 
               -- не учитываем необработанные операции
 
                 and not (FO.[SUMMA] is null)
 
                 and not FO.[NEED_RECALC_PRC]
 
               order by FO.[DATE] desc
 
         ) loop
 
            d_Fix := FO.C_DATE;
 
            exit;
 
         end loop; | 	  
 
 
я думаю это поможет найти как раз таки поледнюю запись, а из нее несложно получить дату.. _________________ всегда есть как минимум 2 выхода | 
			 
		  | 
	
	
		  | 
	
	
		Kozyrev Участник - экстремал
 
  Вступление в Клуб: 03.09.2007
  | 
		
			
				 Чт Апр 24, 2008 13:27    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| Alexsey, а куда нужно вписывать указанный выше текст в представлении? | 
			 
		  | 
	
	
		  | 
	
	
		Alexsey Эксперт
 
  Вступление в Клуб: 06.09.2007
  | 
		
			
				 Чт Апр 24, 2008 13:29    | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				 	  | Kozyrev пишет: | 	 		  | Alexsey, а куда нужно вписывать указанный выше текст в представлении? | 	  
 
мне лично, кажется что проще запихнуть этот текст в какую нить локальную библиотеку и оттуда уже вызвать... по крайней мере я бы сделал именно так, либо писать на PL+ представление _________________ всегда есть как минимум 2 выхода | 
			 
		  | 
	
	
		  | 
	
	
		Kozyrev Участник - экстремал
 
  Вступление в Клуб: 03.09.2007
  | 
		
			
				 Чт Апр 24, 2008 14:02    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Цитата: | 	 		  | я так понял что тебе нужна последняя запись из массива... | 	  
 
Точнее сказать, нужна последняя операция гашения процентов. | 
			 
		  | 
	
	
		  | 
	
	
		Alexsey Эксперт
 
  Вступление в Клуб: 06.09.2007
  | 
		
			
				 Чт Апр 24, 2008 14:10    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				тогда FOR подходит как нельзя лучше.. ибо Р_DEBT  и есть задолженность _________________ всегда есть как минимум 2 выхода | 
			 
		  | 
	
	
		  | 
	
	
		timochev Эксперт
 
  Вступление в Клуб: 02.07.2007
  | 
		
			
				 Чт Апр 24, 2008 14:16    | 
				     | 
			 
			
				Полезность: 2 
  | 
			 
			
				 	  | Kozyrev пишет: | 	 		  | Точнее сказать, нужна последняя операция гашения процентов. | 	  
 
Есть близкая по смыслу функция ::[PR_CRED].[L_ALEX].GetDataPayPROC
 
Только в этой функции автор еще и плановые операции смотрит в случае, если фактические не найдены. | 
			 
		  | 
	
	
		  | 
	
	
		Alexsey Эксперт
 
  Вступление в Клуб: 06.09.2007
  | 
		
			
				 Чт Апр 24, 2008 14:23    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | timochev пишет: | 	 		   	  | Kozyrev пишет: | 	 		  | Точнее сказать, нужна последняя операция гашения процентов. | 	  
 
Есть близкая по смыслу функция ::[PR_CRED].[L_ALEX].GetDataPayPROC
 
Только в этой функции автор еще и плановые операции смотрит в случае, если фактические не найдены. | 	  
 
прикольная функция.. получается вызываешь ее и получаешь готовую дату.. только в условии надо подправить какая именно задолженность интересует _________________ всегда есть как минимум 2 выхода | 
			 
		  | 
	
	
		  | 
	
	
		Kozyrev Участник - экстремал
 
  Вступление в Клуб: 03.09.2007
  | 
		
			
				 Чт Апр 24, 2008 14:25    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Цитата: | 	 		  | проще запихнуть этот текст в какую нить локальную библиотеку и оттуда уже вызвать... | 	  
 
Как можно вызвать операции в представлении? | 
			 
		  | 
	
	
		  | 
	
	
		Alexsey Эксперт
 
  Вступление в Клуб: 06.09.2007
  | 
		
			
				 Чт Апр 24, 2008 14:28    | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				 	  | timochev пишет: | 	 		  Если представление простое, то добавляем колонку, а в поле "Источник данных" пишем вызов функции в формате PL\SQL.
 
Если вьюха PL+, то в списке запрашиваемых полей просто в формате PL+ пишем вызов функции. | 	  
 
выглядеть будет примерно так:
 
 	  | Код: | 	 		  | Z$PR_CRED_L_ALEX.GetDataPayPROC(A1_1.ID,/*PL+*/::[SYSTEM].[OP_DATE]/*PL-*/) | 	 
  _________________ всегда есть как минимум 2 выхода
  Последний раз редактировалось: Alexsey (Чт Апр 24, 2008 14:35), всего редактировалось 3 раз(а) | 
			 
		  | 
	
	
		  | 
	
	
		timochev Эксперт
 
  Вступление в Клуб: 02.07.2007
  | 
		
			
				 Чт Апр 24, 2008 14:29    | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				Если представление простое, то добавляем колонку, а в поле "Источник данных" пишем вызов функции в формате PL\SQL.
 
Если вьюха PL+, то в списке запрашиваемых полей просто в формате PL+ пишем вызов функции. | 
			 
		  | 
	
	
		  | 
	
	
		Kozyrev Участник - экстремал
 
  Вступление в Клуб: 03.09.2007
  | 
		
			
				 Пн Апр 28, 2008 10:19    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Точнее сказать:
 
 	  | Код: | 	 		  
 
Z$PR_CRED_L_ALEX.GetDataPayPROC(A1_1.ID,sysdate)
 
 | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		Alexsey Эксперт
 
  Вступление в Клуб: 06.09.2007
  | 
		
			
				 Пн Апр 28, 2008 10:21    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Kozyrev пишет: | 	 		  Точнее сказать:
 
 	  | Код: | 	 		  
 
Z$PR_CRED_L_ALEX.GetDataPayPROC(A1_1.ID,sysdate)
 
 | 	 
  | 	  
 
sysdate это системная дата не зависящая от опердня.. хотя кому как удобнее _________________ всегда есть как минимум 2 выхода | 
			 
		  | 
	
	
		  | 
	
	
		Kozyrev Участник - экстремал
 
  Вступление в Клуб: 03.09.2007
  | 
		
			
				 Пн Апр 28, 2008 10:43    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Код: | 	 		  | /*PL+*/::[SYSTEM].[OP_DATE]/*PL-*/ | 	  
 
Не проходит... | 
			 
		  | 
	
	
		  | 
	
	
		Alexsey Эксперт
 
  Вступление в Клуб: 06.09.2007
  | 
		
			
				 Пн Апр 28, 2008 10:45    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Kozyrev пишет: | 	 		   	  | Код: | 	 		  | /*PL+*/::[SYSTEM].[OP_DATE]/*PL-*/ | 	  
 
Не проходит... | 	  
 
странно... хотя и не удивлен.. _________________ всегда есть как минимум 2 выхода | 
			 
		  | 
	
	
		  | 
	
	
		 |