ColumnFooter в FR3
Здравствуйте!
Знакомлюсь с FR. Очень приятный продукт. Но вот одну проблемку решить не могу.
Очень хочется, что-бы ColumnFooter после последнего MasterData отрисовывался не внизу страницы, а сразу после. Посмотрел в FR252 - тама работает, и вроде без дополнительного кодирования. Может чего не досмотрел?
Спасибо
Знакомлюсь с FR. Очень приятный продукт. Но вот одну проблемку решить не могу.
Очень хочется, что-бы ColumnFooter после последнего MasterData отрисовывался не внизу страницы, а сразу после. Посмотрел в FR252 - тама работает, и вроде без дополнительного кодирования. Может чего не досмотрел?
Спасибо
Комментарии
var
LastTop:extended;
На Masterdata1 в событии прописывешь
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
LastTop:=MasterData1.Top;
end;
В Мемо1 (который лежит на MasterData1)
procedure Memo1OnBeforePrint(Sender: TfrxComponent);
begin
Lasttop:=LastTop+Memo1.Height;
end;
В событии PageFooter1 для каждой Мемы прописываешь новую координату
procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
Memo2.Top:=Lasttop-PageFooter1.Top+2;
Memo3.Top:=Lasttop-PageFooter1.Top+2;
end;
"2" - из за обрамления
М.б. есть способ и полегче, только я пока не нашел
В английских ньюсах уже было письмо на это тему.
Без ответа
// переменная содержащая верхнюю координату, ее где нибудь инициализировать 0 на всякий случай
var LastTop:extended;
var nbAllLines:integer; // В эту переменную нужно подставить количество строчек всего по накладной (вычислить)
procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
begin
Lasttop:=MasterData1.top+MasterData1.Height;
// Ниже алгоритм нужен для того чтобы, если подвал накладной не влезает на страницу внизу то "форсировать" новую страницу и отобразить на ней хотя бы одну строчку из накладной
if (nbAllLines-1=<Line#>)and(LastTop>=460) then
begin
Engine.NewPage;
end;
end;
procedure PageFooter1OnBeforePrint(Sender: TfrxComponent);
begin
// Изменить текущую координату "движка"
if lastTop<>0 then
Engine.Cury:=Lasttop;
end;
Аналогично, наверное, можно применить и к ColumnFooter
Получилось и с ColumnFooter-ом, только появилась одна доп проблемка. Если меняем "движок", то меняется не только расположение ColumnFooter, но и следующий за ним PageFooter съезжает вверх.
Надеюсь в 3.03, где как я понял это исправили, все получится.