powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Печать многостраничного документа
9 сообщений из 9, страница 1 из 1
Печать многостраничного документа
    #32251939
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

Каким образом заставить Report в случае когда Summary и последняя запись в Detail не помещаются _вместе_ на текущей странице перенести их на следующую ?
...
Рейтинг: 0 / 0
Печать многостраничного документа
    #32251989
ЗВН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В седьмом Не нашел

для себя решил просто их пронумеровать
Код: plaintext
 "Page "  + ALLTRIM(STR(_PAGENO))


есть еще варианты с Внешними репортами
типо Excel тан можно самому выбирать

Ну вообще про встроенный репорт
трабл:
как распечатать по номеру страницы, когда нужна вторая,а их 75, например
Или надо разрешить копировать в буфер

Сори!
...
Рейтинг: 0 / 0
Печать многостраничного документа
    #32252537
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Glory

Я сделал на VFP6 специальный проект примеров для решения ряда задач генератора отчетов и выложил его на nsvisual.com, но сейчас этот сайт недоступен. Могу скинуть его тебе, если нужно (мой e-mail открыт в профиле).

В данном случае суть решения заключается в том, чтобы "склеить" последнюю запись отчета и подвал.

-) Вместо полосы Summary следует использовать подвал группировки по специальной группе, значение которой вообще не меняется на протяжении всего отчета. Для этой цели делается внешняя группа по константе (можно в качестве признака группировки написать число "1") или по функции EOF()

-) Необходимо ДО выполнения отчета вычислить признак последней записи отчета (EOF() не подойдет, поскольку примет значение .T. ПОСЛЕ печати последней записи, а необходимо в момент печати). В качестве признака может выступать физический номер записи (Recno()) или значение поля.

-) Содержимое полосы Detail дублируется в подвале этой группы непосредственно перед итогами

-) В самой полосе Detail на каждый объект устанавливается условие печати (Print When) - не печатать, если выполнился признак последней записи отчета.

Если у отчета есть несколько групп, то полоса Detail дублируется только в самой внутренней Group Footer (той, что ближе всего к Detail).

Недостатком такого решения является избыточное пустое пространство на предпоследней странице отчета (не напечатанная полоса Detail)

2 ЗВН

Это был вопрос? Тогда я не понял о чем
...
Рейтинг: 0 / 0
Печать многостраничного документа
    #32252672
sergej57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДАННУЮ ПРОБЛЕМУ Я РЕШАЛ СЛЕДУЮЩИМ ОБРАЗОМ:

-ЭКСПЕРИМЕНТАЛЬНО ОПРЕДЕЛЯЛ ПРИ ПРОЕКТИРОВАНИИ КОЛИЧЕСТВО ЗАПИСЕЙ, ПОМЕЩАЕМЫХ НА 1 ЛИСТЕ С УЧЕТОМ РАЗМЕЩЕНИЯ И ИТОГОВЫХ СУММ И ПОДПИСЕЙ НА 1 ЛИСТЕ, НА ВТОРОМ НА 1 И 2 ЛИСТАХ, С УЧЕТОМ ТОГО, ЧТО СУММА И ПОДПИСЬ ПОМЕСТЯТСЯ НА 2 ЛИСТЕ, ;
- РАЗРАБАТЫВАЮ ФОРМЫ ОТЧЕТА - ТИТУЛЬНЫЙ С ИТОГОМ, ТИТУЛЬНЫЙ БЕЗ СУММЫ, ПРОМЕЖУТОЧНЫЙ БЕЗ ИТОГОВ И ПРОМЕЖУТОЧНЫЙ С СУММАМИ И ПОДПИСЯМИ
- ЗАТЕМ В ЗАВИСИМОСТИ ОТ КОЛ-ВА ЗАПИСЕЙ ВЫБИРАЮ ВАРИАНТ РАСПЕЧАТКИ,
РАЗБИВАЮ ИТОГОВУЮ БАЗУ НА ЧАСТИ С УЧЕТОМ ПОЛНОГО ЗАПОЛНЕНИЯ ЛИСТОВ , ИСПОЛЬЗУЮ ОПРЕДЕЛЕННЫЕ ФОРМЫ ОТЧЕТА И ПЕЧАТАЮ.
СВОБОДНОГО МЕСТА НА ЛИСТАХ НЕТ. ВОЗМОЖНО КАЖЕТСЯ ВНАЧАЛЕ
СЛОЖНО, ЗАТО ГАРАНТИРОВАННЫЙ ПЕРЕНОС ХОТЯ- БЫ ОДНОЙ СТРОКИ НА НОВУЮ ВМЕСТЕ С ПОДПИСЯМИ И ИТОГАМИ.
ПРЕДЛОЖЕННЫЙ СПОСОБ С ИСПОЛЬЗОВАНИЕМ ГРУППИРОВКИ, КАК ПРАВИЛО, ОСТАВЛЯЕТ СВОБОДНОЕ МЕСТО В КОНЦЕ ЛИСТА,ЧТО НЕ ДОПУСТИМО В ФИНАНСОВЫХ ДОКУМЕНТАХ.
УДАЧИ!!!
...
Рейтинг: 0 / 0
Печать многостраничного документа
    #32252717
Фотография Андрей Давыдов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не в тему но:

Зачем мучаться с фоксовым рапортом, когда можно выводить в Excel.
ИМХО: Более менее сложный отчет слепить это гемор полный.
Пока протыкаешь все поля - полдня пройдет.
...
Рейтинг: 0 / 0
Печать многостраничного документа
    #32252778
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если человек спрашивает значит так надо... ИМХО глупо учить такого профи как Glory...
...
Рейтинг: 0 / 0
Печать многостраничного документа
    #32252857
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ВладимирМ
Спасибо большле - все получилось.

2sergej57
Да, на сложных отчетах с многими группировками так и будет. Но для отчета без группировки очень даже приемлимо.

2Андрей Давыдов
А нужно это когда идет массовая печать счетов. Когда их количество переваливает за сотню любой более менее здравый пользователь не захочет править их а попытается свалить это на программера.
...
Рейтинг: 0 / 0
Печать многостраничного документа
    #32253117
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ВладимирМ В общем, все правильно.

Но я в FPD делал проще, причем в моем случае если при печати последней записи на странице остается достаточно места, последняя запись и подвал печатаются на этой же странице. В VFP не делал, так что может быть, мой метод не сработает. Если будете проверять и обнаружите, что срабатывает, черкните сюда свой комментарий, pls (жду также заслуженных восторженных возгласов ;-))!

1. Как и рекомендовано, определял до начала отчета признак последней записи.
2. Создавал фиктивную группу (абсолютно не содержащую объектов!) по условию выполнения печати последней записи.
3. Все, связанное с Summary, оставлял в Summary.
4. Подсчитывал суммарное количество строк в Summary и PgFoot плюс одна строка на печать последней строки (Detail - если каждая строка была в рамочке, то плюс две строки). Получал, например, 27.
5. Открывал свойства фиктивной группы и снимал все галки - с "New Page", "Swap Page Header", "Swap Page Footer", "Reprint Header", "Reset Page Number". А в "# of rows following by header" записывал полученное ранее число 27. При этом, если последняя запись - т.е. новая группа - печатается менее чем за 27 строк от конца страницы, Fox ее сам переносит на новую страницу.

Соответственно, шапка таблицы была в PgHead.
Соответственно, количество строк на странице должно быть больше, чем 27+количество в Title+количество в PgHead ;-)
...
Рейтинг: 0 / 0
Печать многостраничного документа
    #32253571
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с генератором отчетов в FPD не очень много работал. Но судя по описанию, его логика работы отличается от логики работы в VFP.

Особенности работы генератора отчетов в VFP

1) Если полоса Summary в гордом одиночестве печатается на последней странице, то не будет печати Page Footer на этой последней страницы.

2) Нет такого понятия как "# of rows following by header". Ты просто раздвигаешь соответствующую полосу на нужную высоту.

3) Расчет места необходимого для печати определяется для каждой полосы. Т.е. вполне допустима ситуация когда на одной странице напечатана полоса Detail, а Group Footer на следующей странице. В результате, опираться на высоту фиктивной Group Footer, для предотвращения печати полосы Detail не получится. При расчете места для печати Detail он просто не учитывается :(

4) В FoxPor for Windows появилась возможность печати строк неопределенной длины. Т.е. при создании отчета она занимает одну строку, а при реальной печати - столько строк, сколько необходимо. Это значит, что в общем случае невозможно определить сколько строк (какой высоты) будет данная конкретная полоса деталировки в отчете.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Печать многостраничного документа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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