Business::ReportWriter - A Business Oriented ReportWriter.


Business::ReportWriter - A Business Oriented ReportWriter.


  use Business::ReportWriter::Pdf;
  my $rw = new Business::ReportWriter::Pdf();
  $rw->process_report($outfile, $report, $head, $list);


Business::ReportWriter is a tool to make a Business Report from an array of data. The report output is generated based on a XML description of the report.

The report is written to a file.

Method calls

$obj = new()
Creates a Report Writer Object.

$obj->process_report($outfile, $report, $head, $list)
Creates a PDF Report and writes it to the file named in $outfile.

$report is a hash reference to the Report Definition. $head is a hash containing external data (also called Page Data). $list is a reference to the array that contains the report data.

Data Description


A hash reference describing the wanted output. Contains these sections:


Hash with report wide information. Possible entries:

locale - eg us_EN, da_DK...

papersize - A4, Letter...


A hash defining the line breaks / report totals. Hash key is the name of
the field to totl, pointing to a new hash containing

order Sort order of break, starting from 0. Must be unique.

font Font used for the break line. Font is a hash containing face and size.

format printf-like format string.

text Print text for the total line. Any word beginning with a $ character will be replaced with the corresponding field name.

xpos Horisontal position of the text.

total Array telling which fields are to be totalled.

There are two special break names:

_page will result in a total for each page and _total will give a grand total at the end of the report.


Array of hashes describing all fields in the body area of the report.
Each element can contain

font Same as in the breaks section.

name Field name - corresponds to the hash in the Data List.

text Same as in the breaks section.

xpos Same as in the breaks section.

align Alignment of field. Possible values are left, center, right.

format Same as in the breaks section.

function A perl function to replace the field as output. Any word beginning with a $ character will be replaced by a field.

depends A perl expression. If true, the field will be printed, if false it will not. Any word beginning with a $ character will be replaced by a field.


Hash describing the report outside the body area. Entries are

header - a hash describing the header. There can be a font entry and then there's an array containing text elements, each of which can contain depends, function, text, align, xpos and ypos. These elements do what you'd expect them to. sameline will allow you to skip xpos and let it inherit ypos from the previous entry- very useful if there is a depends entry.

logo Telling where to find the logo and where to place it.

Contains a hash with key logo including an array with image descriptions. Name is the file name including path information, x an y gives upper left corner and scale indicates which factor to scale the image with.


A hash describing the body area (where the report list will go). Contains

font (well known by now), ypos telling upper edge of the body and heigth


A hash entry with key width telling line width and a hash with key boxes
containing an array describing ``line graphics'' or boxes. Each box is
defined with the values topx, topy, bottomx and bottomy.

Page Data

A hash reference to data that can be used in the page region of the report. pagenr is automatically included and updated.

List Data

Array of hash. Each array element represents one line in the final report. The hash keys can be referenced in the report definition.


 Business::ReportWriter::OOCalc, Business::ReportWriter::Pdf


Copyright (C) 2003-2006 Kaare Rasmussen. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Kaare Rasmussen <kar at>

 Business::ReportWriter - A Business Oriented ReportWriter.