Create labels: the report program (Genero BDL)
A common use of reports is to create a page of labels, such as address labels. Creating labels requires you to create a report design document representing a single label and a report application that prints multiple labels on a page.
Create the report design document
The report design document (.4rp) contains the design for a single label. You can put anything you wish on the label, as long as it fits onto the page.
See Design labels for details on creating the single-label report design document (.4rp).
Update your report application
ON EVERY ROW in the
REPORT block, and it tells the report engine to output multiple labels onto a
single physical page.- In the 
FORMATsection of theREPORTprogram block, output the data needed for the labelON EVERY ROW. - Configure the report engine for labels using Reporting API functions.
fgl_report_selectLogicalPageMappingallows you to specify that this report will create a page of labels.fgl_report_setPaperMarginssets the margins (top, bottom, left, right).fgl_report_configureLabelOutputconfigures the physical layout of the label page using these parameters:- paper Width
 - paper Height
 - label Width (set to null)
 - label Height (set to null)
 - number of labels per row
 - number of labels per column
 
 
Example
This example uses the OrderLabels.4rp report design document from the Reports GRW demo.
In the SimpleReport BDL program, the MAIN program block that configures the report engine is changed as follows:
- Loads OrderLabels.4rp as the Report Design Document
 - The function fgl_report_selectLogicalPageMapping allows you to specify the format of the page as "labels"
 - The function fgl_report_setPaperMargins sets margins using these parameters:
- top margin
 - bottom margin
 - left margin
 - right margin
 
 - Function fgl_report_configureLabelOutput - configures the physical layout of a label page using these
parameters:
- paper Width
 - paper Height
 - label Width
 - label Height
 - number of labels per row
 - number of labels per column
 
 
  -- configure report engine; the functions prefixed fgl that are called here
  -- are part of the Reporting API
  IF fgl_report_loadCurrentSettings("OrderLabels.4rp") THEN   -- load the labels
                                                     -- design document (4rp file)
    -- special settings for labels
    CALL fgl_report_selectLogicalPageMapping("labels")
    CALL fgl_report_setPaperMargins("5mm","5mm","4mm","4mm")
    CALL fgl_report_configureLabelOutput("a4width","a4length",null,null,2,6)
  END IF
  LET handler = fgl_report_commitCurrentSettings() -- commit changes
The rest of the SimpleReport program would remain unchanged. This example would print two labels across and six labels down per page.
Figure: Output of labels on a physical page
