powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / определение размера отчета
13 сообщений из 13, страница 1 из 1
определение размера отчета
    #39985912
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

печатаем тн, ттн и всякие счета из отчета. Возникает часто ситуация, когда подписи на одной странице, записи на другой, хотя вроде и место есть.
Подскажите, как можно определить, сколько страниц займет отчет, и как-то им управлять. Просто посчитать количество строк в таблице не вариант, одна строка в таблице может быть 2 и 3, а то и 4 строки в отчете, заранее увидеть мы это не можем. Может можно посчитать строки в отчете или как-тот еще решить?
...
Рейтинг: 0 / 0
определение размера отчета
    #39986217
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn,

Прогоняешь отчет в NULL

Код: sql
1.
REPORT FORM Myreport NOCONSOLE TO NULL



выясняешь сколько страниц, сколько строк итп.
...
Рейтинг: 0 / 0
определение размера отчета
    #39986239
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist,

Приветствую!

это с помощью ReportListener надо?
и как строки в details посчитать?
...
Рейтинг: 0 / 0
определение размера отчета
    #39986271
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn,

Делал просто:

1. В курсоре, который выводишь на печать нумеруешь записи, recno не подходит, поскольку может быть активный индекс

2. Перед отчетом создаешь курсор LineInPage (Page int, Lines int).

3. Пишешь ф-ию примерно такого содержания:

Код: sql
1.
2.
3.
4.
5.
FUNCTION LineInPage

	insert into LineInPage (Page, Lines) values (  _PageNo, MyCursor.Lines)

RETURN .t.



4. В отчете в Group/Detail footer (это как отчет устроен) на закладке General в поле On Exit прописываешь ф-ию =LineInPage()

После того как отчет будет прогнан в Null можешь узнать сколько страниц в отчете и сколько строк на каждой странице.
...
Рейтинг: 0 / 0
определение размера отчета
    #39986291
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist,

Отлично, буду пробовать.
Но вот строки так не посчитать, потому что в курсоре строка - это запись, а в отчете эта запись может на три строки расползтись.
Вот такие "физические" строки нельзя в отчете посчитать?
...
Рейтинг: 0 / 0
определение размера отчета
    #39986298
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn,

Проверь, я не помню проблем записями на странице.
...
Рейтинг: 0 / 0
определение размера отчета
    #39986349
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist
DmitryKn,

Прогоняешь отчет в NULL

Код: sql
1.
REPORT FORM Myreport NOCONSOLE TO NULL



выясняешь сколько страниц, сколько строк итп.


Доброго дня,

при "прогоне" окошки проскакивают на экране, как их подавить?
...
Рейтинг: 0 / 0
определение размера отчета
    #39986354
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DmitryKn
PaulWist
DmitryKn,

Прогоняешь отчет в NULL

Код: sql
1.
REPORT FORM Myreport NOCONSOLE TO NULL



выясняешь сколько страниц, сколько строк итп.


Доброго дня,

при "прогоне" окошки проскакивают на экране, как их подавить?


Нашел:
REPORT FORM Myreport NOCONSOLE TO NULL NODIALOG

стало как-то тормознее правда..
...
Рейтинг: 0 / 0
определение размера отчета
    #39986357
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема чтобы посчитать страницы или чтобы подписи на отдельном листе не выходили?

Если второе, то почитай эти топики .
...
Рейтинг: 0 / 0
определение размера отчета
    #39986512
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Спасибо, разбираюсь..
...
Рейтинг: 0 / 0
определение размера отчета
    #39986868
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопросы, наверное, чисто академические.

для определения числа страниц отчета я выполняю

REPORT FORM Myreport NOCONSOLE TO NULL

тут, кстати, вопрос - правильно NULL или NUL ?

итак, выполняю.

В самом отчете у меня есть условие в нескольких полях print when : _pageno <>_pagetotal

Сколько раз я прогоняю отчет?
...
Рейтинг: 0 / 0
определение размера отчета
    #39986880
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подсчет с помощью

REPORT FORM Myreport NOCONSOLE TO NULL NODIALOG

уж очень сильно тормозит, причем независимо от размера отчета. Есть ли еще какие решения?
...
Рейтинг: 0 / 0
определение размера отчета
    #39987087
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В древнем примере Владимира Максимова есть:
авторЗадача решается предварительным прогоном отчета в файл.

Да, конечно, можно вообще не указывать источник назначения, т.е. дать команду:

REPORT FORM PageCnt.frx NOCONSOLE

Однако в этом случае FoxPro под размером страницы понимает размер экрана, который в свою очередь зависит от разрешения (640х480, 800х600 и т.п.). Т.е. в общем случае, полученное таким образом количество страниц не совпадет с реальным количеством страниц при печати.

В принципе, в данном случае можно сделать и предварительный прогон в специальное системное устройство NUL (именно так, с одним "L")

REPORT FORM PageCnt.frx noconsole TO NUL

В этом случае не будет создано никаких временных файлов. Однако я не проверял правильность определения количества страниц в этом случае при разных разрешениях экрана.



Насколько это актуально?

На практике - установлено по умолчанию SET REPORTBEHAVIOR 80,
работает хорошо команда
REPORT FORM PageCnt.frx NOCONSOLE , но из примера следует, что могут образовываться некие временные файлы и счет по экрану.

Команда
REPORT FORM PageCnt.frx noconsole TO NUL - не работает вообще

Команда
REPORT FORM PageCnt.frx noconsole TO NULL - на i7 очень долго обрабатывает даже одностраничный.


Насколько правильно использовать
REPORT FORM PageCnt.frx NOCONSOLE

и может быть, еще контроль печати из просмотра?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / определение размера отчета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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