104 lines
4.2 KiB
PHP
104 lines
4.2 KiB
PHP
<?php require_once('../Connections/dbaseconn.php'); ?>
|
|
<?php
|
|
ob_start(); // Inizia il buffering dell'output
|
|
require '../../vendor/autoload.php';
|
|
|
|
use PhpOffice\PhpWord\PhpWord;
|
|
use PhpOffice\PhpWord\IOFactory;
|
|
|
|
// Collegati al database
|
|
$conn = new mysqli($servername, $username, $password, $database);
|
|
|
|
if ($conn->connect_error) {
|
|
die("Connection failed: " . $conn->connect_error);
|
|
}
|
|
|
|
// Recupera il uniquecode dal GET
|
|
$uniquecode = $_GET['uniquecode'];
|
|
|
|
// Query per ottenere i dati
|
|
$sql = "SELECT material_category, parameter, unit_of_measure, additional_requirement_note
|
|
FROM rslxls
|
|
WHERE uniquecode = '$uniquecode'
|
|
ORDER BY material_category";
|
|
|
|
$result = $conn->query($sql);
|
|
|
|
// Crea una nuova istanza di PHPWord e imposta l'orientamento della pagina in landscape
|
|
$phpWord = new PhpWord();
|
|
$section = $phpWord->addSection(array('orientation' => 'landscape'));
|
|
|
|
// Se ci sono risultati
|
|
if ($result->num_rows > 0) {
|
|
// Aggiungi un titolo al documento
|
|
$section->addText('Report for Unique Code: ' . htmlspecialchars($uniquecode), array('bold' => true, 'size' => 16));
|
|
|
|
// Variabile per tracciare la categoria attuale
|
|
$currentCategory = null;
|
|
|
|
while ($row = $result->fetch_assoc()) {
|
|
// Se la categoria cambia, crea una nuova tabella per la categoria
|
|
if ($currentCategory !== $row['material_category']) {
|
|
$currentCategory = $row['material_category'];
|
|
|
|
// Aggiungi uno spazio bianco prima della tabella del material_category
|
|
$section->addTextBreak(1);
|
|
|
|
// Aggiungi una tabella solitaria per il material_category con sfondo blu scuro e testo bianco
|
|
$categoryTable = $section->addTable(array('borderSize' => 1, 'borderColor' => '000000', 'cellMargin' => 50));
|
|
$categoryTable->addRow();
|
|
$categoryTable->addCell(12000, array('bgColor' => '000080'))->addText(htmlspecialchars($currentCategory), array('bold' => true, 'color' => 'FFFFFF', 'size' => 14), array('alignment' => 'center'));
|
|
|
|
// Aggiungi uno spazio bianco dopo la tabella del material_category
|
|
$section->addTextBreak(1);
|
|
|
|
// Crea una tabella per i parametri della categoria
|
|
$table = $section->addTable(array('borderSize' => 1, 'borderColor' => '000000', 'cellMargin' => 50));
|
|
$table->addRow();
|
|
$table->addCell(2000, array('bgColor' => 'E6E6FF'))->addText("Parameter", array('bold' => true));
|
|
$table->addCell(1500, array('bgColor' => 'E6E6FF'))->addText("Unit", array('bold' => true));
|
|
$table->addCell(1000, array('bgColor' => 'E6E6FF'))->addText(""); // Colonna vuota
|
|
$table->addCell(3000, array('bgColor' => 'E6E6FF'))->addText("Test method reference", array('bold' => true));
|
|
}
|
|
|
|
// Gestisci il valore della colonna additional_requirement_note e codifica i caratteri speciali
|
|
$additionalNote = !empty($row['additional_requirement_note'])
|
|
? htmlspecialchars($row['additional_requirement_note'])
|
|
: 'N/A';
|
|
|
|
// Aggiungi una riga per i dati
|
|
$table->addRow();
|
|
$table->addCell(2000)->addText(htmlspecialchars($row['parameter']));
|
|
$table->addCell(1500)->addText(htmlspecialchars($row['unit_of_measure']));
|
|
$table->addCell(1000)->addText(""); // Colonna vuota
|
|
$table->addCell(3000)->addText($additionalNote);
|
|
}
|
|
|
|
// Aggiungi uno spazio bianco alla fine del documento
|
|
$section->addTextBreak(1);
|
|
} else {
|
|
$section->addText("No records found for uniquecode: " . htmlspecialchars($uniquecode));
|
|
}
|
|
|
|
// Salva il file e invialo al browser per il download
|
|
$filename = "RSL_Report_$uniquecode.docx";
|
|
|
|
// Imposta le intestazioni per il download del file
|
|
header("Content-Description: File Transfer");
|
|
header('Content-Disposition: attachment; filename="' . $filename . '"');
|
|
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
|
|
header('Content-Transfer-Encoding: binary');
|
|
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
|
header('Expires: 0');
|
|
|
|
// Pulisci il buffer di output per evitare problemi
|
|
ob_clean();
|
|
// Salva il file nel buffer e invialo al browser
|
|
$objWriter = IOFactory::createWriter($phpWord, 'Word2007');
|
|
$objWriter->save("php://output");
|
|
exit();
|
|
?>
|
|
|
|
|
|
|