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

Печать массива документов

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение
Предыдущая тема :: Следующая тема  
Автор Сообщение
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;

Спасибо. У меня получилось...
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение Часовой пояс: GMT + 3
Страница 1 из 1

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