Печать массива документов
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Пн Окт 10, 2016 14:41  Печать массива документов |
|
Полезность: Нет оценки
|
Здравствуйте. Народ, пожалуйста помогите. Пишу небольшой отчетик. В отчете должны выходить суммы документов из массива документов продукта "Конверсионные операции". Но у меня к сожалению выходить только один документ, а второй не выводить...(((
Код такой (кусок).
conv ::[sale]
begin
locate q in ::[SALE_DOC] all
where q%collection = conv.[ARR_DOCUM];
[WORD].Put(64, 'com_doh', q.[REF_DOC].[SUM]);
exception when no_data_found then
pragma error ('Не найдено конверсионных документов!!!');
end; |
|
 |
nairka1973 Участник
Вступление в Клуб: 22.11.2012
|
Пн Окт 10, 2016 14:54   |
|
Полезность: 1
|
locate находит только одну запись. Попробуйте использовать for |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пн Окт 10, 2016 15:55  Re: Печать массива документов |
|
Полезность: 1
|
cool_dude пишет: | Здравствуйте. Народ, пожалуйста помогите. Пишу небольшой отчетик. В отчете должны выходить суммы документов из массива документов продукта "Конверсионные операции". Но у меня к сожалению выходить только один документ, а второй не выводить...(((
Код такой (кусок).
conv ::[sale]
begin
locate q in ::[SALE_DOC] all
where q%collection = conv.[ARR_DOCUM];
[WORD].Put(64, 'com_doh', q.[REF_DOC].[SUM]);
exception when no_data_found then
pragma error ('Не найдено конверсионных документов!!!');
end; |
Вот так попробуй...
Код: |
for q in ::[SALE_DOC] all
where q%collection = conv.[ARR_DOCUM] loop
[WORD].Put(64, 'com_doh', q.[REF_DOC].[SUM]);
-- Здесь счетчик прикрути, чтобы разные документы в разных ячейках были
end loop;
begin
locate q in ::[SALE_DOC] all
where q%collection = conv.[ARR_DOCUM];
null;
exception when no_data_found then
pragma error ('Не найдено конверсионных документов!!!');
end;
|
|
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Окт 10, 2016 16:58   |
|
Полезность: Нет оценки
|
Евгений, а не проще сначала писать
if conv.[ARR_DOCUM] is null then pragma error ('Не найдено конверсионных документов!!!');
else for q in ::[SALE_DOC] all .......;
end if; |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пн Окт 10, 2016 17:01   |
|
Полезность: Нет оценки
|
yaffil пишет: | Евгений, а не проще сначала писать
if conv.[ARR_DOCUM] is null then pragma error ('Не найдено конверсионных документов!!!');
else for q in ::[SALE_DOC] all .......;
end if; |
Не исключено))), основной вопрос был в замене locate на for
Конечно не красиво, но каков вопрос, такой и ответ... |
|
 |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Вт Окт 11, 2016 13:25  Re: Печать массива документов |
|
Полезность: Нет оценки
|
Матвеев Евгений пишет: | cool_dude пишет: | Здравствуйте. Народ, пожалуйста помогите. Пишу небольшой отчетик. В отчете должны выходить суммы документов из массива документов продукта "Конверсионные операции". Но у меня к сожалению выходить только один документ, а второй не выводить...(((
Код такой (кусок).
conv ::[sale]
begin
locate q in ::[SALE_DOC] all
where q%collection = conv.[ARR_DOCUM];
[WORD].Put(64, 'com_doh', q.[REF_DOC].[SUM]);
exception when no_data_found then
pragma error ('Не найдено конверсионных документов!!!');
end; |
Вот так попробуй...
Код: |
for q in ::[SALE_DOC] all
where q%collection = conv.[ARR_DOCUM] loop
[WORD].Put(64, 'com_doh', q.[REF_DOC].[SUM]);
-- Здесь счетчик прикрути, чтобы разные документы в разных ячейках были
end loop;
begin
locate q in ::[SALE_DOC] all
where q%collection = conv.[ARR_DOCUM];
null;
exception when no_data_found then
pragma error ('Не найдено конверсионных документов!!!');
end;
|
|
Спасибо. У меня получилось... |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|