Control Bin

TECH TIP: Selecting Paper Bins for Each Page

Sometimes you may want to print the first page of a report to the manual bin and then print the remaining pages to the default bin.

You can use the Report.OnStartPage event to set the bin for any page.

Example:

procedure TForm1.ppReport1OnStartPageEvent(Sender:TObject);
var
  lsBinName: String;

begin

  if ppReport1.AbsolutePageNo = 1 then
    lsBinName := ppReport1.PrinterSetup.BinNames[3]
  else
    lsBinName := ppReport1.PrinterSetup.BinNames[1];


  ppReport1.Engine.Page.PrinterSetup.BinName := lsBinName;  


end;

Note: The above example assumes the manual bin is 4th in the list (remember its a 0 based index). To account for different print drivers, you could search for the ‘manual’ bin in code by performing a search on the printer’s available bin names:

for liBin := 0 to ppReport1.PrinterSetup.BinNames.Count-1 do
  if Pos('manual', ppReport1.PrinterSetup.BinNames[liBin]) > 0 then
    begin
      lsBinName := ppReport1.PrinterSetup.BinNames[liBin];
      break;

    end;