powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Reprt Form
9 сообщений из 9, страница 1 из 1
Reprt Form
    #36434807
ЛюдмилаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FoxPro 9 SP1. Немогу разобраться - при распечатки отчета который занимает более 1 листа.
Хотела чтобы принтер, распечатав 1-ую стр. приостанавливал печать - давая возможность перевернуть лист (воспользоваться обратной стороной листа). Ну типа Messageb('Вставьте сл. лист и нажмите ОК'). Помогите пожалуйста.
...
Рейтинг: 0 / 0
Reprt Form
    #36434998
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюдмилаМFoxPro 9 SP1. Немогу разобраться - при распечатки отчета который занимает более 1 листа.
Хотела чтобы принтер, распечатав 1-ую стр. приостанавливал печать - давая возможность перевернуть лист (воспользоваться обратной стороной листа). Ну типа Messageb('Вставьте сл. лист и нажмите ОК'). Помогите пожалуйста.

Отчего не помочь. Я делаю так - есть некая таблица, которую надо вывести по REPORT FORM. Кол-во записей в ней может быть любым. Вначале вычисляется, сколько записей влезет на первый лист отчета. Выводится этот первый лист отчета, выдается MESSAGEBOX('Выводить следующий лист ?'). Затем вычисляется, сколько записей влезет на второй лист отчета. Выводится этот второй лист отчета, выдается MESSAGEBOX('Выводить следующий лист ?'). И так далее, все это в цикле, выход из которого либо по отказу юзера от следующего листа, либо по концу печати последнего листа. Т.е. для печати каждого листа вначале выбираем нужные записи для него и выдаем свой отдельный REPORT FORM. А после этой команды спрашиваем юзера о продолжении печати.
...
Рейтинг: 0 / 0
Reprt Form
    #36435098
ЛюдмилаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо! воспользовавшись ответом получилось следующее:
1. Вычисляем кол-во страниц в отчете
report form myReport.frx noconsole
nPageTotal=_PAGETOTAL
2. Создаем цикл
For n=1 to nPageTotal
report form myReport.frx RANGE n,n PREVIEW
...........................
Next
3. Опция RANGE в режиме просмотра действует только при SET REPORTBEHAVIOR 90

Вычислить программно кол-во строк умещающихся на страницу не смогла, пожалуйста намекните.
...
Рейтинг: 0 / 0
Reprt Form
    #36435208
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюдмилаМ,

Напечатайте несколько страниц и посмотрите, сколько строк влезает... или они у вас могут быть разной высоты?
...
Рейтинг: 0 / 0
Reprt Form
    #36435306
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюдмилаМБольшое спасибо! воспользовавшись ответом получилось следующее:
1. Вычисляем кол-во страниц в отчете
<далее skipped>


Без эмоций (я на своем реальном примере) :

- Мы знаем, сколько строк влазит на ПЕРВЫЙ лист отчета (там, к примеру, большая шапка отсета). Допустим 6 строк.
- Делаем report1, который будет вызываться для печати первого листа (на эти 6 строк).
- Мы знаем, сколько строк влазит на ВТОРОЙ (вплоть до ПРЕДПОСЛЕДНЕГО листа) лист отчета (там уже нет никаих шапок и подвалов). Допустим 15 строк.
- Делаем report2, который будет вызываться для печати второго-предпоследнего листа (на эти 15 строк).
- Мы знаем, сколько строк влазит на ПОСЛЕДНИЙ лист отчета (там может быть большой подвал). Допустим 7 строк.
- Делаем report3, который будет вызываться для печати последнего листа (на эти 7 строк).
Ну, и все дела. Оформляем это в виде цикла с анализом номера листа (без всякого пока участия REPORT FORM) и запускаем этот цикл. А вот уж он (внутри себя) будет анализировать свой счетчик и вызывать тот report, который должен выполняться в данный момент (report1, report2, report3).
Я уж и не знаю, как обьяснять далее. Мой рабочий код очень большой и будет вам непонятен.
...
Рейтинг: 0 / 0
Reprt Form
    #36435489
ЛюдмилаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, и строки могут быть разными и сосчитать можно самой, но хотелось бы поручить это ответственное дело машине.
Да еще дело втом, что в моём случае на печать идет через previev и пока желаемого результата нету.
...
Рейтинг: 0 / 0
Reprt Form
    #36435656
reware
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюдмилаМДа, и строки могут быть разными и сосчитать можно самой, но хотелось бы поручить это ответственное дело машине.
Да еще дело втом, что в моём случае на печать идет через previev и пока желаемого результата нету.

Я-таки (без иронии) не понял вашего раздражения.
Если лично вы можете сосчитать записи, то у вас есть трудности поручить это машине ?
Насчет второго акта вашего возмущения :
Код: plaintext
1.
2.
3.
4.
IF <ваше условие>
   report form MyFrx NOCONSOLE PREVIEW
ELSE
   report form MyFrx TO PRINTER NOCONSOLE
ENDIF

А в чем, собственно, проблема ?
...
Рейтинг: 0 / 0
Reprt Form
    #36437514
ЛюдмилаМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
reware,

Никакого раздражения - нахожусь в состоянии творческого процесса!
ситуация:
- без каких-либо условий попадаем в многостраничный отчет в режим просмотра;
- сверяем там некоторые цифры (ну, например с наличностью в кассе);
- если чтото не так выходим из просмотра (SYS(2040)='1');
- если всё ОК печатаем (SYS(2040)='2') постранично с возможностью перевернуть лист, а не автоматом - весь целиком;
А вот эскиз:
n=2 && кол-во страниц
m='2' && Sys(2040)
* главное проникнуть в цикл, далее эти переменные поменяются в самом myReporte на реальные
Do While n>1 and m='2'
report form myReport Range _Pageno,_Pageno to printer nodialog Previev
* по-моему сама элегантность
??????????????????????????????
enddo
А чтоже получится на практике - пойду тестировать
...
Рейтинг: 0 / 0
Reprt Form
    #36437552
ЛюдмилаМ,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yes! вышеизложенная Элегантность сработала!
сразу попадаем в Previev, просматриваем, IF что не так - выходим, Else печатаем!
Всё происходит в цикле - печать по одной стр. (и сколько на ней строк - нам до-лампочки)
без каких-либо Messagebox-ов, до конца отчета или пока сам не откажешься.
Спасибо Всем!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Reprt Form
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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