Получение выписки по счёту
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Дек 06, 2012 10:46  Получение выписки по счёту |
|
Полезность: Нет оценки
|
Что я делаю не так? Пытаюсь попасть в выписку по счёту
x.C_VIPISKA - это реквизит счёта x.[ARC_MOVE]
Код: |
for (select y(y%id :C_ID
,y.[DATE] :C_DATE
,y.[DOC].[DOCUMENT_NUM] :C_NUM_DOC
)in ::[RECORDS]all
where y%collection=x.C_VIPISKA
and y.[DATE]<=P_ENDDATE
and y.[DATE]>=P_BEGDATE
)loop
[EXCEL].Write(i,2,to_char(y.C_DATE,'DD.MM.YYYY'),false,false,10,'Times New Roman','CT');
[EXCEL].Write(i,3,y.C_NUM_DOC);
i:=i+1;
end loop;
|
|
|
 |
Chekan Участник со стажем
Вступление в Клуб: 29.11.2012
|
Чт Дек 06, 2012 11:50  Re: Получение выписки по счёту |
|
Полезность: Нет оценки
|
yaffil пишет: | Что я делаю не так? Пытаюсь попасть в выписку по счёту
x.C_VIPISKA - это реквизит счёта x.[ARC_MOVE]
Код: |
for (select y(y%id :C_ID
,y.[DATE] :C_DATE
,y.[DOC].[DOCUMENT_NUM] :C_NUM_DOC
)in ::[RECORDS]all
where y%collection=x.C_VIPISKA
and y.[DATE]<=P_ENDDATE
and y.[DATE]>=P_BEGDATE
)loop
[EXCEL].Write(i,2,to_char(y.C_DATE,'DD.MM.YYYY'),false,false,10,'Times New Roman','CT');
[EXCEL].Write(i,3,y.C_NUM_DOC);
i:=i+1;
end loop;
|
|
x.C_VIPISKA - откуда? ты описал подзапрос? |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Дек 06, 2012 11:56   |
|
Полезность: Нет оценки
|
Это loop по таблице фин. счета ::[AC_FIN]
Код: |
for (select x(x%id :C_ID
,x.[ARC_MOVE] :C_VIPISKA
) in ::[AC_FIN] |
|
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Дек 06, 2012 12:20   |
|
Полезность: Нет оценки
|
а что мешает сделать выборку так:
Код: | for (select y(y%id :C_ID
,y.[DATE] :C_DATE
,y.[DOC].[DOCUMENT_NUM] :C_NUM_DOC
)in ::[RECORDS], (::[AC_FIN] ) all
where y%collection=x.[ARC_MOVE]
and y.[DATE]<=P_ENDDATE
and y.[DATE]>=P_BEGDATE
)loop
[EXCEL].Put(i,2,to_char(y.C_DATE,'DD.MM.YYYY'),false,false,10,'Times New Roman','CT');
[EXCEL].Put(i,3,y.C_NUM_DOC);
i:=i+1;
end loop;
[EXCEL].Print_Array; |
_________________ всегда есть как минимум 2 выхода |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Дек 06, 2012 12:27   |
|
Полезность: Нет оценки
|
Спасибо, сейчас попробую. Просто хотелось для шапки идти по счетам, а потом вложенным loop по выписке.
Чтобы было типа:
По счету ... за период ...
Вх на дату запрос ...
Дата открытия ..
Собственно выписка
----------------------
По счету ... а период ...
Вх на дату запрос ...
Дата открытия ..
Собственно выписка
... |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Дек 06, 2012 12:57   |
|
Полезность: 1
|
запоминаешь обрабатываемый счет, и сравниваешь с обрабатываемой строкой. отличается в в шапку не отличается другие действия.
А 2 цикла это медленно.
вариант c 2-я циклами
Код: | for acc in ::[AC_FIN]
loop
for (select y(y%id :C_ID
,y.[DATE] :C_DATE
,y.[DOC].[DOCUMENT_NUM] :C_NUM_DOC
)in acc.[ARC_MOVE]
where y.[DATE]<=P_ENDDATE
and y.[DATE]>=P_BEGDATE
)loop
[EXCEL].Put(i,2,to_char(y.C_DATE,'DD.MM.YYYY'),false,false,10,'Times New Roman','CT');
[EXCEL].Put(i,3,y.C_NUM_DOC);
i:=i+1;
end loop;
end loop;
[EXCEL].Print_Array; |
_________________ всегда есть как минимум 2 выхода |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Дек 06, 2012 13:38   |
|
Полезность: Нет оценки
|
Alexsey пишет: |
вариант c 2-я циклами
|
В такой конструкции как и у меня в первоначальном варианте тоже пустая выписка выводится, хотя счёт поднимается тот который надо, в эта дату документы тоже в выписки присутствуют.
Может где то надо крыж какой поставить? |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Дек 06, 2012 13:45   |
|
Полезность: 1
|
косячок с интервалами ?
1)как в дистр. коде
select r(count(r%id))
in ::[RECORDS] all
where r%collection = Coll
and r.[DATE] >= StartDate
and r.[DATE] < EndDate+1
into nRetVar;
2)или trunc с обеих сторон |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Дек 06, 2012 13:46   |
|
Полезность: Нет оценки
|
Alexsey пишет: | а что мешает сделать выборку так:
|
Нарисовал простое представление по данному селекту, результат отрицательный - данных за этот день по счёту нет
Компилятор предупреждает: типы ::[RECORDS] и ::[AC_FIN] несовместимы.
Как правильно по счёту залезть в выписку? |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Дек 06, 2012 13:52   |
|
Полезность: Нет оценки
|
vtar пишет: | косячок с интервалами ?
1)как в дистр. коде
select r(count(r%id))
in ::[RECORDS] all
where r%collection = Coll
and r.[DATE] >= StartDate
and r.[DATE] < EndDate+1
into nRetVar;
2)или trunc с обеих сторон |
Угу, точно. СПС. Хотя странно оба типа объявлена как дата без времени. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Дек 06, 2012 13:54   |
|
Полезность: Нет оценки
|
yaffil пишет: | Хотя странно оба типа объявлена как дата без времени. |
в оракле все даты с временем  |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Дек 06, 2012 13:57   |
|
Полезность: Нет оценки
|
Зачем тогда у ЦФТ 2 типа в словаре?
Чтоб жизнь малиной не казалась.  |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|