CftClub.ru
Клуб специалистов ЦФТ-Банк

Данные из фин. счетов
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
evgeniy
Участник - экстремал


Вступление в Клуб: 31.03.2008
СообщениеСр Июн 18, 2008 11:49   Данные из фин. счетов Ответить с цитатой
Полезность: Нет оценки
пишу свою первую не большую операцию "Оборотная ведомость по счетам". Возникло два вопроса:

1. Как можно стоя на фин. счете вытащить ФИО директора фирмы, которой придналежит этот счет.
2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.

Question
ssa774
Профи


Вступление в Клуб: 30.11.2007
СообщениеСр Июн 18, 2008 12:10   Re: Данные из фин. счетов Ответить с цитатой
Полезность: Нет оценки
evgeniy пишет:
пишу свою первую не большую операцию "Оборотная ведомость по счетам". Возникло два вопроса:

1. Как можно стоя на фин. счете вытащить ФИО директора фирмы, которой придналежит этот счет.
2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.

Question

В IBSO этих обороток - пруд пруди...
На счете есть клиент-владелец - ссылка на клиента, а у клиента есть массив Должностные лица. Бежим по массиву и вытаскиваем, что нам нужно.
ssa774
Профи


Вступление в Клуб: 30.11.2007
СообщениеСр Июн 18, 2008 12:14   Re: Данные из фин. счетов Ответить с цитатой
Полезность: Нет оценки
evgeniy пишет:

2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.

Question

по клиенту или по счету картотеку ищем? у клиента может же быть несколько счетов. Делаем выбор из продукта РКО, где, например, расчетный счет - наш счет. В продукте есть массив Картотека. Проверяем - пустой или не пустой.
Код:
if массив%size(0)!=0 then есть картотека

Так примерно.
evgeniy
Участник - экстремал


Вступление в Клуб: 31.03.2008
СообщениеСр Июн 18, 2008 12:46   Re: Данные из фин. счетов Ответить с цитатой
Полезность: Нет оценки
Цитата:

В IBSO этих обороток - пруд пруди...
На счете есть клиент-владелец - ссылка на клиента, а у клиента есть массив Должностные лица. Бежим по массиву и вытаскиваем, что нам нужно.


Не совсем понию, как вызвать этот клиент-владелец. Знаю параметр [CLIENT_V], но там ссылки не клиента не видел.
evgeniy
Участник - экстремал


Вступление в Клуб: 31.03.2008
СообщениеСр Июн 18, 2008 12:48   Re: Данные из фин. счетов Ответить с цитатой
Полезность: Нет оценки
ssa774 пишет:
evgeniy пишет:

2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.

Question

по клиенту или по счету картотеку ищем? у клиента может же быть несколько счетов. Делаем выбор из продукта РКО, где, например, расчетный счет - наш счет. В продукте есть массив Картотека. Проверяем - пустой или не пустой.
Код:
if массив%size(0)!=0 then есть картотека

Так примерно.


К примеру, находясь на счете клиента 40702 в фин. счетах, узнать есть ли у этого клиента картотека. Если есть то выдать сумму картотеки.
ssa774
Профи


Вступление в Клуб: 30.11.2007
СообщениеСр Июн 18, 2008 12:56   Re: Данные из фин. счетов Ответить с цитатой
Полезность: 2
evgeniy пишет:
Цитата:

В IBSO этих обороток - пруд пруди...
На счете есть клиент-владелец - ссылка на клиента, а у клиента есть массив Должностные лица. Бежим по массиву и вытаскиваем, что нам нужно.


Не совсем понию, как вызвать этот клиент-владелец. Знаю параметр [CLIENT_V], но там ссылки не клиента не видел.

CLIENT_V - это и есть ссылка на клиента. В Администраторе словаря
встаете на него, два раза нажимаете и проваливаетесь в клиенты. А у клиента(у юридических лиц) уже есть массив должностных лиц.
Например, простая операция в фин.счетах. this - текущий экземпляр. Пройдет, если клиент - юр.лицо.
Код:

for rec in this.[CLIENT_V]->(CL_CORP)[ALL_BOSS]  -- побежали по массиву
loop
 debug_pipe(rec.[RANGE].[NAME],0); -- вывели должность
end loop;

w00per
Профи


Вступление в Клуб: 17.10.2007
СообщениеСр Июн 18, 2008 13:21    Ответить с цитатой
Полезность: 2
А если писать не
Код:
if массив%size(0)!=0 then есть картотека
а
Код:
if массив%size(1) is not null then есть картотека
то работать будет быстрее. Думаю в условиях большого количества счетов будет актуально (заметно).
_________________
I Lie About Everything.
ssa774
Профи


Вступление в Клуб: 30.11.2007
СообщениеСр Июн 18, 2008 13:25    Ответить с цитатой
Полезность: Нет оценки
w00per пишет:
А если писать не
Код:
if массив%size(0)!=0 then есть картотека
а
Код:
if массив%size(1) is not null then есть картотека
то работать будет быстрее. Думаю в условиях большого количества счетов будет актуально (заметно).

оффтоп, но может расскажете, что означают эти числа в скобках.. в документации не видела. Кроме 0 и 1 что еще есть и что означает? Пожалуйста Smile
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеСр Июн 18, 2008 13:35    Ответить с цитатой
Полезность: Нет оценки
ssa774 пишет:
w00per пишет:
А если писать не
Код:
if массив%size(0)!=0 then есть картотека
а
Код:
if массив%size(1) is not null then есть картотека
то работать будет быстрее. Думаю в условиях большого количества счетов будет актуально (заметно).

оффтоп, но может расскажете, что означают эти числа в скобках.. в документации не видела. Кроме 0 и 1 что еще есть и что означает? Пожалуйста Smile

Судя по документации это проверка есть в массиве записи или нет...
1-есть
0-нет
_________________
всегда есть как минимум 2 выхода
w00per
Профи


Вступление в Клуб: 17.10.2007
СообщениеСр Июн 18, 2008 14:19    Ответить с цитатой
Полезность: 3
ssa774 пишет:
w00per пишет:
А если писать не
Код:
if массив%size(0)!=0 then есть картотека
а
Код:
if массив%size(1) is not null then есть картотека
то работать будет быстрее. Думаю в условиях большого количества счетов будет актуально (заметно).

оффтоп, но может расскажете, что означают эти числа в скобках.. в документации не видела. Кроме 0 и 1 что еще есть и что означает? Пожалуйста Smile

расскажу если %size(0), то считается количество записей в массиве, а если %size(n) где n>0, обращение к конкретной записи массива.
Соответственно если n=1 1-я запись отсутствует, то там вообще ничего нет (массив пуст). Я считаю это достаточным условием для отределения в данном случае.
_________________
I Lie About Everything.
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеСр Июн 18, 2008 19:22   Re: Данные из фин. счетов Ответить с цитатой
Полезность: 2
ssa774 пишет:
evgeniy пишет:

2. Как находясь там же в фин. счетах узнать о наличие или отсутствие картотеки по этому клиенту.
Question

Делаем выбор из продукта РКО, где, например, расчетный счет - наш счет. В продукте есть массив Картотека. Проверяем - пустой или не пустой.
Код:
if массив%size(0)!=0 then есть картотека

Так примерно.

Не совсем. В массиве "Картотека" договора РКО может быть пропасть записей, а картотека вся списана. Наверняка в РКО-шных библиотеках есть соответствующие функции, но можно и самому: по финсчету ищем договор РКО, не нашли - не о чем говорить, нашли - цикл_1 по массиву картотек, для каждой найденной записи, у которой ACC_REF.SALDO >0, - цикл_2 по массиву "Документы картотеки", если у записи неоплаченная сумма >0, то картотека есть. А какая именно - анализом целевого назначения внебалансового счета из цикла_1.
Если же хочется получить информацию по клиенту, то нужен еще один, внешний цикл_0 по всем счетам, у которых владелец - этот клиент и счет имеет отношение к RKO (или RKO_CUR)
dnk_dz
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Июн 19, 2008 10:36    Ответить с цитатой
Полезность: 3
Цитата:
Не совсем. В массиве "Картотека" договора РКО может быть пропасть записей, а картотека вся списана. Наверняка в РКО-шных библиотеках есть соответствующие функции, но можно и самому: по финсчету ищем договор РКО, не нашли - не о чем говорить, нашли - цикл_1 по массиву картотек, для каждой найденной записи, у которой ACC_REF.SALDO >0, - цикл_2 по массиву "Документы картотеки", если у записи неоплаченная сумма >0, то картотека есть. А какая именно - анализом целевого назначения внебалансового счета из цикла_1.
Если же хочется получить информацию по клиенту, то нужен еще один, внешний цикл_0 по всем счетам, у которых владелец - этот клиент и счет имеет отношение к RKO (или RKO_CUR)


Для проверки наличия/отсутствия картотеки достаточно посмотреть остаток на любом счете картотек, привязанных к договору РКО.
Код:
begin
   locate k in rko.[CARD_IND] where k.[ACC_REF].[SALDO] != 0;
   -- Есть картотека 1/2
exception when NO_DATA_FOUND then
   -- Нет картотеки
end;
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеЧт Июн 19, 2008 12:57    Ответить с цитатой
Полезность: Нет оценки
dnk_dz пишет:
Для проверки наличия/отсутствия картотеки достаточно посмотреть остаток на любом счете картотек, привязанных к договору РКО.
Код:
begin
   locate k in rko.[CARD_IND] where k.[ACC_REF].[SALDO] != 0;
   -- Есть картотека 1/2
exception when NO_DATA_FOUND then
   -- Нет картотеки
end;

Тоже не совсем Smile
Для К2 и К1огр подход годится, но счета первой картотеки (обычной) открываются в разрезе даты акцепта, поэтому на одном в/б счете могут учитываться документы разных договоров РКО. Соответственно, запись в массиве есть, остаток на счете есть, а картотеки вполне себе нет Wink
ssa774
Профи


Вступление в Клуб: 30.11.2007
СообщениеЧт Июн 19, 2008 12:59    Ответить с цитатой
Полезность: Нет оценки
А нужно ли так глубоко копать? Человек первую операцию пишет, здесь важно объяснить главные принципы, а остальное само придет. 1 картотека, 2 картотека... вопрос не в этом был, ИМХО.
Alex2019
Профи


Вступление в Клуб: 02.07.2007
СообщениеЧт Июн 19, 2008 13:04    Ответить с цитатой
Полезность: Нет оценки
ssa774 пишет:
А нужно ли так глубоко копать? Человек первую операцию пишет, здесь важно объяснить главные принципы, а остальное само придет. 1 картотека, 2 картотека... вопрос не в этом был, ИМХО.

Может и не нужно, это решать тому человеку, но вопрос был "как узнать о наличии/отсутствии картотеки?" Упрощенный вариант может дать ошибочный результат. Поэтому, коль уж даем рекомендации, ответ должен быть корректным. Тоже ИМХО
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru