Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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 выхода |
|
 |
|