Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Масштабироваеие отчета / 11 сообщений из 11, страница 1 из 1
28.09.2009, 14:51
    #36220553
ArDo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
День добрый.
А оно вообще возможно, как на принтере: столько-то штук на листе, и снаружи указать сколько - 1-2-4-8... ?
Спасибо.
...
Рейтинг: 0 / 0
28.09.2009, 15:09
    #36220609
Масштабироваеие отчета
ArDoДень добрый.
А оно вообще возможно, как на принтере: столько-то штук на листе, и снаружи указать сколько - 1-2-4-8... ?
Спасибо.А на принтере ли? Или таки в драйвере принтера? Ну так там и указывайте.
...
Рейтинг: 0 / 0
28.09.2009, 15:21
    #36220644
ArDo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
Через драйвер принтера подразумевает постоянное вмешательство пользователя, а надо автоматом
...
Рейтинг: 0 / 0
28.09.2009, 15:28
    #36220669
ArDo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
И вдогон, количество копий тоже не помешало бы!
...
Рейтинг: 0 / 0
29.09.2009, 11:37
    #36222150
ArDo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
Ну с настройками поринтера в принципе разобрался: все они пишутся в первой строке отчета в поле Expr. Все, кроме количества страниц на лист!
Так что вопрос по прежнему актуален!
Спасибо.
...
Рейтинг: 0 / 0
29.09.2009, 16:14
    #36223116
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
Код: plaintext
REPORT FORM MyReport.frx TO PRINTER PROMPT PREVIEW

При нажатии на иконку принтера в окне предварительного просмотра возникнет диало с пользователм, где можно указать все необходимые настройки

Можно изменять FRX на лету, но это не лучшая стратегия. Ведь пользоваться одним и тем же отчетом будут несколько человек. Если одному нужна 1 копия, а другому 2, как будешь "разруливать"?

Количество копий можно сделать просто в цикле дав нужное количество команд REPORT. Номера листов задаются через опцию RANGE в команде REPORT.
...
Рейтинг: 0 / 0
30.09.2009, 10:52
    #36224410
ArDo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
С количеством копий вопрос не животрепещет. REPORT в цикле работает лет уж несколько. Просто хотелось решения более изящного. Но все равно спасибо.

А вот вопрос с масштабированием...
Грубо говоря ситуация такая: есть некий отчет в 4 колонки, рамки, таблички, шрифты, раскраска... пользователю надо сделать его в 3 колонки и все пропорционально увеличить... или в 2 и увеличить еще больше... и все 3 варианта должны работать параллельно.

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

В принципе, можно поиграться классом ReportListener метод Render. Это для VFP9. Но, как мне кажется, более разумным и простым решением будет сделать несколько отчетов с разным количеством столбцов.
...
Рейтинг: 0 / 0
30.09.2009, 13:46
    #36225027
ArDo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
ВМ, извини за дибильный вопрос, а где он, я его в проекте не нахожу?
...
Рейтинг: 0 / 0
30.09.2009, 14:56
    #36225293
pitermax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
в help все написано, если у тебя 9-ка
...
Рейтинг: 0 / 0
30.09.2009, 15:43
    #36225466
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Масштабироваеие отчета
ArDoВМ, извини за дибильный вопрос, а где он, я его в проекте не нахожу?
В VFP9 был серьезно переработан движок отчетов. В целом, остался как был, но в некоторых ключевых точках была предотавлена возможность посмотреть сформированный объект для печати и, если необходимо, внести в сформированный объект некоторые изменения.

Делается это при помощи нового базового класса, введенного в VFP9. Он и называется ReportListener. Соответственно, можно делать классы-наследники от этого базового класса и перекрывать его методы своим кодом.

Чтобы переключится на новую технологию формирования отчета либо используют настройку

Код: plaintext
SET REPORTBEHAVIOR  90 

либо непосредственно в команде REPORT указывают опцию OBJECT

Следующий пример показывает, как можно сдвинуть ВСЕ объекты отчета вниз на 10 мм. Координаты и размеры указываются в единицах, которые равны 1/960 дюйма. 1 дюйм = 25,4 мм

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
LOCAL loListener
loListener = CREATEOBJECT("ListenerTest")
loListener.ListenerType =  1 
REPORT FORM MyReport.frx OBJECT loListener

DEFINE CLASS ListenerTest AS ReportListener

   PROCEDURE Render(nFRXRecNo, nLeft, nTop, nWidth, nHeight,;
       nObjectContinuationType, cContentsToBeRendered, GDIPlusImage) 

      DODEFAULT(nFRXRecNo, nLeft, nTop +  10  / ( 25 . 4 / 960 ), nWidth, nHeight, ;
               nObjectContinuationType, cContentsToBeRendered, ;
               GDIPlusImage)

      NODEFAULT  
  ENDPROC  
    
ENDDEFINE  

Для подавления печати объекта, надо просто в методе Render оставить только NODEFAULT.

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


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