X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=reporting%2Fincludes%2Fexcel_report.inc;h=996d290c42338960b9c7794f0ac69009f06401bc;hb=c944c47bce4750f3906857cf22a15b83a67572e3;hp=4fd129b7926f246e61394ac3aa66927488c23eb9;hpb=49d2702ed98abe7a564a4abb4c8c5fa225f362e8;p=fa-stable.git diff --git a/reporting/includes/excel_report.inc b/reporting/includes/excel_report.inc index 4fd129b7..996d290c 100644 --- a/reporting/includes/excel_report.inc +++ b/reporting/includes/excel_report.inc @@ -29,6 +29,8 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook var $bottomMargin = 0; var $lineHeight; var $leftMargin = 0; + var $pageWidth; // dummy + var $rightMargin; // dummy var $cols; var $params; @@ -53,12 +55,13 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook var $formatHeaderRight; var $formatFooter; var $formatAmount = array(); + var $headerFunc; var $sheet; function FrontReport($title, $filename, $size = 'A4', $fontsize = 9, $orientation = 'P', $margins = NULL, $excelColWidthFactor = 6.5) { - global $comp_path, $dateseps, $page_security; + global $dateseps, $page_security; if (!$_SESSION["wa_current_user"]->can_access_page($page_security)) { display_error(_("The security settings on your account do not permit you to print this report")); @@ -69,16 +72,16 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook $this->title = $title; $this->lineHeight = 12; $this->endLine = 760; - $this->fontSize = $fontsize; + $this->SetFontSize($fontsize); $this->oldFontSize = 0; - $this->y = 1; + $this->y = 0; $this->currency = ''; $this->excelColWidthFactor = $excelColWidthFactor; $rtl = ($_SESSION['language']->dir == 'rtl'); $this->code = strtolower($_SESSION['language']->encoding); $this->filename = $filename.".xls"; $this->unique_name = uniqid('').".xls"; - $this->path = $comp_path.'/'.user_company(). '/pdf_files'; + $this->path = company_path(). '/pdf_files'; $this->Spreadsheet_Excel_Writer_Workbook($this->path."/".$this->unique_name); //$this->setCountry(48); if ($this->code != "iso-8859-1") @@ -166,9 +169,16 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook $this->formatFooter =& $this->addFormat(); $this->formatFooter->setTop(2); $this->formatFooter->setTopColor('gray'); + $this->SetHeaderType("header"); } + /* + Set header handler + */ + function SetHeaderType($name) { + $this->headerFunc = $name; + } // Check a given name to see if it's a valid Excel worksheet name, // and fix if necessary function worksheetNameGenerator($name) @@ -206,6 +216,11 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook function Font($fontname = '', $style = 'normal') { } + + function SetFontSize($size) + { + $this->fontSize = $size; + } function Info($params, $cols, $headers, $aligns, $cols2 = null, $headers2 = null, $aligns2 = null) @@ -237,7 +252,6 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook function Header() { - $this->y = 0; $tcol = $this->numcols - 1; $this->sheet->setRow($this->y, 20); for ($i = 0; $i < $this->numcols; $i++) @@ -524,6 +538,7 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook function TextCol($c, $n, $txt, $corr=0, $r=0, $border=0, $fill=0, $link=NULL, $stretch=0) { + $txt = html_entity_decode($txt); if ($this->aligns[$c] == 'right') $this->sheet->writeString($this->y, $c, $txt, $this->formatRight); else @@ -550,13 +565,14 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook { if (!$conv) $txt = date2sql($txt); - list($year, $mo, $day) = explode("-", $txt); + list($year, $mo, $day) = explode("-", $txt); $date = $this->ymd2date((int)$year, (int)$mo, (int)$day); $this->sheet->writeNumber($this->y, $c, $date, $this->formatDate); } function TextCol2($c, $n, $txt, $corr=0, $r=0, $border=0, $fill=0, $link=NULL, $stretch=0) { + $txt = html_entity_decode($txt); $this->sheet->writeString($this->y, $c, $txt, $this->formatLeft); if ($n - $c > 1) $this->sheet->mergeCells($this->y, $c, $this->y, $n - 1); @@ -630,7 +646,13 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook { $this->y += $l; } - + + function NewPage() + { + if (method_exists($this, $this->headerFunc)) // draw predefined page layout if any + $this->{$this->headerFunc}(); + } + function ymd2Date($year, $mon, $day) // XLS internal date representation is a number between 1900-01-01 and 2078-12-31 { // if we need the time part too, we have to add this value after a decimalpoint. $mo = array(0,31,28,31,30,31,30,31,31,30,31,30,31); @@ -673,6 +695,7 @@ class FrontReport extends Spreadsheet_Excel_Writer_Workbook function End($email=0, $subject=null, $myrow=null, $doctype = 0) { + ++$this->y; for ($i = 0; $i < $this->numcols; $i++) $this->sheet->writeBlank($this->y, $i, $this->formatFooter); $this->sheet->mergeCells($this->y, 0, $this->y, $this->numcols - 1);