Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.19;
Скачать: CL | DM;

Вниз

Проблема с изменением ориентации страницы в отчете   Найти похожие ветки 

 
madmech ©   (2009-05-22 19:57) [0]

Использую FastReport4, в котором хочу изменять ориентацию страницы с портретной на альбомную в случае определенного размера кросс-таба, выходящего за границы страницы, для чего использую следующий скрипт:
var DBCrossWidth: extended;
procedure EnumReportOnStartReport(Sender: TfrxComponent);
begin
 if Engine.FinalPass then                                                    
   if DBCrossWidth > 680 then
     Page1.Orientation := poLandscape;            
end;

procedure Enum_DBCrossOnAfterPrint(Sender: TfrxComponent);
begin
 DBCrossWidth := Enum_DBCross.Width;  
end;

Как не сложно догадаться, использую двухпроходной отчет, при запуске которого на первом шаге я запоминаю (заношу в спец. переменную) ширину кросс-таба, а на втором в случае необходимости изменяю ориентацию страницы. Но! Так должно происходить по теории. :) А на деле ровным счетом ничего не происходит. В чем проблема?


 
KilkennyCat ©   (2009-05-22 21:20) [1]


> Enum_DBCrossOnAfterPrint

это случайно не переводится как "после печати"? тогда, наверное, надо сунуть листик обратно.


 
madm   (2009-05-22 22:02) [2]

http://www.sql.ru/forum/actualthread.aspx?tid=666261


 
AndreyV ©   (2009-05-22 22:41) [3]

Да на втором проходе можно ли менять - поплывёт же всё - вычисленные суммы по страницам для вывода в заголовках, например, и т.п.. Проверять не хочется.


 
Нат   (2009-05-22 23:54) [4]

printer.Orientation:=poLandscape;
frReport1.ShowReport ;


 
madmech ©   (2009-05-24 13:12) [5]

KilkennyCat, а ведь точно: событие вызывается после печати таблицы. :)
madm, и что?
AndreyV, и что Вы предлагаете?
Нат, мне ориентацию надо менять ВНУТРИ отчета, в самом скрипте.

Вопрос с пояснением еще раз всем: на этапе разработки я еще не знаю, каковы окажутся размеры таблицы. Это станет известно после формирования отчета. Поэтому вопрос переформулирую следующим образом: в какой момент становится известна ширина кросс-таба? В каком обработчике лучше заносить ширину таблицы в переменную? В каком обработчике лучше менять ориентацию? Теперь, думаю, задача стала более понятной и доступной.


 
AndreyV ©   (2009-05-24 13:42) [6]

> [5] madmech ©   (24.05.09 13:12)

Задача была понятна из [0]. В ФР4 не пробовал решить с бесконечной шириной и или длинной и печатью с разбивкой. Повторю, в ФР4.



Страницы: 1 вся ветка

Текущий архив: 2009.07.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
2-1243162261
Dr.Andrew
2009-05-24 14:51
2009.07.19
Как перевести на делфи строку int s=length/sizeof(short)?


2-1243158685
KiLLiR
2009-05-24 13:51
2009.07.19
Отображение времени в DBGrid (подгрузка из access)


2-1243284846
TStas
2009-05-26 00:54
2009.07.19
Как переименовать папку?


2-1243149942
fedor12345
2009-05-24 11:25
2009.07.19
Как реализовать вставку строку в StringGrid перед другой строкой


15-1242478890
ПЛОВ
2009-05-16 17:01
2009.07.19
Удаленное управление Линуксом из Винды. Чем?