powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Oracle Reports 6i, подписи на след. странице
10 сообщений из 10, страница 1 из 1
Oracle Reports 6i, подписи на след. странице
    #36589010
Здравствуйте!
Oracle Reports 6i: есть такая проблема - в конце бухгалтерского отчета имеются подписи. Отчет представляет собой обычный табличный отчет из n записей. Кол-во записей, естественно, неизвестно. Ширина рамки - переменная, т.е. строки отчеты по ширине все разные, может даже так быть, что на всю страницу - 1 строка. Необходимо, чтобы подписи не оказывались на пустой странице одни, без хотя бы одной строки отчета.
Пробовала и анкером прицеплять, и совйства рамок по-всякому менять - не получается.
Может, кто-нибудь подскажет правильное решение?
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #36604471
R@mon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ольга (Самара)без хотя бы одной строки отчета
а как по вашему "должны себя вести" подписи если данные отчета закончились как раз в конце листа?
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #36604982
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To R@mon:

"По хорошему" - последняя строка таблицы с данными (если там таблица) должна быть перенесена на последний лист вместе с подписями.

To Ольга (Самара):

Точно не знаю. Но такой изврат изображенный на Report'ах видел. Т.ч. эксперементировать с анкерами.

На мой взгляд - такое требование сильно изврат. На такие требования (внедрение OeBS), _лично_ мне удавалось убедить заказчиков что это лишнее.

В пред. конторе, всегда делали возможность экспорта отчетов в Word, что бы пользователь, если ему особо нужно, мог отчет подредактировать.
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #36605058
безумство
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как вариант, если запрос не тяжелый, выбирать в основную кучу все кроме последней строчки, а последнюю строчку выбирать отдельно в отдельную рамку и печатать ее на последней странице
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #36611508
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мой удачный прием -

1) при помощи свойств
Base Printing On = Anchoring Object
Keep with Anchoring Object = Yes
мы легко (не помню точно как!!) добиваемся того, что последняя строка отчета обязательно и
гарантированно уйдет на последнею (новую) страницу ЕСЛИ не хватает места, что бы поместить все объекты этой строки на последней странице)

2) Завожу спец_поле ( типа как ... select 1 as n_row. ..) , которое содержит значение = 1. На уровне отчета создаю поле суммирования (max_row) = которое гарантированно возвращает абсолютное кол-во строк именно в той рамке - где надо контролировать вывод последней строки.

В итоге мы точно знаем = номер строки и общее кол-во строк в отчете.

3) А теперь внимание - финт. Подпись к отчету я помещаю в свою рамку, и эту рамку помещаю именно внутри рамки где строка отчета. В итоге, все подписи выводятся (тупо) после каждой строки отчета. Это очень важно - что бы подпись вылазила на каждой строке отчета.

4) Теперь ставим триггер форматирования на рамку с подписями
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
function M_10FormatTrigger return boolean is
begin
  if :NB_ROW < :max_row then
       return (false);
  else
       return (TRUE);
  end if;     
  return (TRUE);
end;

В результате, (так как мы всегда знаем общее число строк в отчете и номер текущей строки) = мы
запрещаем выводить подписи на всех строках отчета, кроме как последней. Что и требовалось!!

Тут то все и САМО срабатывает, на последней строке репорт пытается вывести подпись, она не лезет, и последняя строка утягивается на новый лист. Вместе с подписью. Так как наша подпись = это вообще то объекты принадлежавшие строке отчета.
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #36623773
UK0IAI, ни фига себе способ!
попробую
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #36624226
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга (Самара)UK0IAI, ни фига себе способ!
попробую
Попробуйте, токо я забыл сказать что поле NB_ROW = есть поле суммирования, что установлено там - где группа рамки строк. Ну в это поле, грубо, есть нарастающий тотал. Короче это поле, что автоматом генерит сумму по полю = численно равному 1 = что дает (само) де факто номер строки. (Вам надо знать номер строки и сравнивать его с макс_кол-вом_строк = max_row)
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #36868759
Helfer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выше предложенный способ дает сбои -- из моей практики. Репортс сначала форматирует страницу, а потом пытается вместить её на страницу. Если не получается, то тут и траблы. На last-1 репортс скажет, что это последняя страница для фрейма подписи и отрисует подписи. А потом ещё раз и на последней станице.
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #36875005
Фотография UK0IAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HelferВыше предложенный способ дает сбои -- из моей практики. Репортс сначала форматирует страницу, а потом пытается вместить её на страницу. Если не получается, то тут и траблы. На last-1 репортс скажет, что это последняя страница для фрейма подписи и отрисует подписи. А потом ещё раз и на последней станице.
Наверно мы не много друг друга не поняли. Строим отчет, так, что бы на каждой строке табличной части отчета = выводилась рамка с подписями. Видим визуально, что подписи лезут на каждой строке... И подавляем вывод фрейма с подписями чисто логическими путем = разрешаем токо на последней строке (так мы знаем номера текущей строки и общее ко-во строк. А триггер срабатывает на каждой строке).

Репорт выводит строки и проверяет лезет не лезет. Ели нет - последняя строка переносится на последнею страницу. Если строка такая маленькая вся... то подписи гарантировано встанут на место. А вот если ВСЕГО ОДНА строка + рамка с подписями никак не лезут на 1 лист - то тут я пас. Что будет то будет. Такого еще не было...

рс. надо ручками разносить строку на некие стринговые строки и выводить их.. по той же схеме. Типа через буферную временную таблицу.. где строки содержат фрагменты строки из БД.
...
Рейтинг: 0 / 0
Oracle Reports 6i, подписи на след. странице
    #37337153
denis_takeda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:NB_ROW < :max_row then


Номер текущей строки (то, что у вас NB_ROW) можно посчитать и по-другому.
например так
Код: plaintext
1.
2.
select rownum, id, name from (
select id, name from customers c 
order by c.name )
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Oracle Reports 6i, подписи на след. странице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]