Solved

rave , page margins -code based report

Posted on 2011-03-22
11
1,279 Views
Last Modified: 2012-05-11
can I set with rave the page margins ?  


(eg. the foot is cutrrently set to close to the paper boarder)
0
Comment
Question by:BdLm
11 Comments
 
LVL 24

Expert Comment

by:jimyX
ID: 35188498
You control the margins by using SectionTop, SectionLeft, SectionRight & SectionBottom.
So you can try and put PrintFooter() under this line:

SectionBottom := 10;
0
 
LVL 8

Author Comment

by:BdLm
ID: 35188551
unit is pixel ?
0
 
LVL 8

Author Comment

by:BdLm
ID: 35188694

i play around ...  but the command does not seem to be effective ....
///
///   support :  http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_26902682.html?cid=239#a35188192
///

procedure TMainForm.LibRvSystemPrintFooter(Sender: TObject);
begin



   With Sender as TBaseReport do
    begin
      //...
      PrintFooter('Page : '+ IntToStr(CurrentPage), pjCenter); // or pjLeft/pjRight

      //...
    end
end;



function TMainForm.LibRvSystemPrintPage(Sender: TObject;
  var PageNum: Integer): Boolean;
begin
   With Sender as TBaseReport do
    begin
      //...

      SectionTop := 30 ;
      SectionLeft:= 30;
      SectionRight   := 30;
      SectionBottom  := 30;


      //...
    end
end;

Open in new window

0
 
LVL 19

Assisted Solution

by:Thommy
Thommy earned 31 total points
ID: 35188805
You can set the margins as follows:

with BaseReport do begin
  Margin Left := 0.5;
  Margin Right := 0.5;
  Margin Top := 0.5;
  Margin Bottom := 0.5;
  Orientation := poPortrait;
end;

0
 
LVL 24

Assisted Solution

by:jimyX
jimyX earned 94 total points
ID: 35188833
The measures are inches. Set the ruler to inches then when you set SectionBottom to 10 then the bottom of the page will be at 10 on that ruler. So it did not work out for you because 30 is out of the page's border. The maximum you can set is 11.

Try this way:
function TMainForm.LibRvSystemPrintPage(Sender: TObject;
  var PageNum: Integer): Boolean;
begin
   With Sender as TBaseReport do
    begin
      SectionTop := 1.5;
      SectionBottom := 10;
      PrintFooter('Page : '+ IntToStr(CurrentPage), pjLeft);
    end
end;

Open in new window

0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 8

Author Comment

by:BdLm
ID: 35192698

is there a drawing showing the difference between margin and sectionTop, sectionBottom ....

0
 
LVL 8

Author Comment

by:BdLm
ID: 35192893
problem solving progress :

---------------------------------
///
///   support :  http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_26902682.html?cid=239#a35188192
///   procedure :  Pass

procedure TMainForm.LibRvSystemPrintFooter(Sender: TObject);
begin

   With Sender as TBaseReport do
    begin

      PrintFooter('Page : '+ IntToStr(CurrentPage), pjCenter); // or pjLeft/pjRight

    end
end;

///
///  support  http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_26902799.html
///
///  margin setting, orientation and Section do not seem to be functional !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
///  procedure : fail

function TMainForm.LibRvSystemPrintPage(Sender: TObject;
  var PageNum: Integer): Boolean;
begin
   With Sender as TBaseReport do
    begin
      //...

      SectionTop := 2 ;
      SectionLeft:= 2;
      SectionRight   := 2;
      SectionBottom  := 2;

      MarginLeft := 0.5;
      MarginRight := 0.5;
      MarginTop := 0.5;
      MarginBottom := 0.5;

      Orientation := poLandscape;

      //...
    end
end;
0
 
LVL 32

Expert Comment

by:ewangoya
ID: 35195346

You can find your margins from RpDev.Waste property
Left := RpDev.Waste.Left / RpDev.XDPI;
    Top := RpDev.Waste.Top / RpDev.YDPI;
    Right := RpDev.Waste.Right / RpDev.XDPI;
    Bottom := RpDev.Waste.Bottom / RpDev.YDPI;

Open in new window

0
 
LVL 24

Assisted Solution

by:jimyX
jimyX earned 94 total points
ID: 35196234
Please could you use the event OnPrint:
function TMainForm.LibRvSystemPrint(Sender: TObject;
  var PageNum: Integer): Boolean;
begin
   With Sender as TBaseReport do
    begin
      SectionTop := 2 ;
      SectionBottom  := 10.5;
      PrintFooter('Page : '+ IntToStr(CurrentPage), pjCenter);
    end
end;

Open in new window


Orientation will not work in the Print events. If you want to change the orientation, set it either at the object inspector or using the TRvSystem property (RvSystem.SystemPrinter.Orientation) but the most important thing is to set it before executing the report:
procedure TForm1.Button1Click(Sender: TObject);
begin
  RvSystem1.SystemPrinter.Orientation := poLandScape;
  RvSystem1.Execute;
end;

Open in new window

0
 
LVL 8

Author Comment

by:BdLm
ID: 35238779
is there a way to change all units from inches to mm ?
0
 
LVL 24

Accepted Solution

by:
jimyX earned 94 total points
ID: 35238809
Click on the RvSystem and from the object inspector go to SystemPrinter and set the property Units to unMM.

By code:
RvSystem1.SystemPrinter.Units := unMM;
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now