Example 27

Description

It is possible to join multiple columns in a row to be printed as one.
That can be used to create subtitles that do need more space than is available in a column.
In this example the second data row joins all columns to print a subtitle.

Output

<?php

include_once "../src/Report.php";

use Adi\ReportLib as ReportLib;

// Create report instance
//  default format A4, portrait with margins left = 20mm, top = 10mm, right = 10mm and bottom = 10mm
$report = new ReportLib\Report();

// Get ref to the report body
$body = $report->getBody();

// Add the table
$table = $body->AddTable();

// Add four columns to the table
$table->addColumn("frametype", "Frame type", 40.0);
$table->addColumn("container", "Container type", 30.0, 'C');
$table->addColumn("description", "Description", 60.0);
$table->addColumn("number", "Number", 20.0, 'R');


// Add a data row to the table with the column widths
$row = new ReportLib\TableRow('D');
$row->setText("frametype", "width 40mm");
$row->setText("container", "width 30mm");
$row->setText("description", "width 60mm");
$row->setText("number", "width 20mm");
$table->addDataRow($row);


// Add a data row as title for the width row
$row = new ReportLib\TableRow('T');
$row->setText("frametype", "From the next row on there is the real data. There is a join from the first to the last column.");
$row->setJoinStart(0);
$row->setJoinEnd(3);
$table->addDataRow($row);


// Add a data row to the table
$row = new ReportLib\TableRow('D');
$row->setText("frametype", "LineFrame");
$row->setText("container", "No");
$row->setText("description", "This frame type represents a line on the report.");
$row->setText("number", "1");
$table->addDataRow($row);

// Add a second data row to the table
$row = new ReportLib\TableRow('D');
$row->setText("frametype", "SerialFrame");
$row->setText("container", "Yes");
$row->setText("description", "This is a frame container for a series of frames which will be printed one after the other.");
$row->setText("number", "2");
$table->addDataRow($row);

// Add a third data row to the table
$row = new ReportLib\TableRow('D');
$row->setText("frametype", "TextFrame");
$row->setText("container", "No");
$row->setText("description", "A simple frame type to print text.");
$row->setText("number", "3");
$table->addDataRow($row);

// Produce the output of the report
//  uses the same params as TCPDF (F = File, I = Preview etc.)
$report->output(__DIR__ . "/example_027.pdf", 'I');