query($query) ; while ($db->next_record()) { $tot_prodotti = $db->f("TOT_PRODOTTI") ; $filejob = $nomefornitore = $db->f("Nome") ; $cit_prov = $db->f("Citta") . "(" . $db->f("Provincia") . ")" ; $tel_fax_mail = "" ; if ($db->f("Telefono") != "") $tel_fax_mail .= "Tel: " . $db->f("Telefono") ; if ($db->f("Fax") != "") $tel_fax_mail .= " Fax: " . $db->f("Fax") ; if ($db->f("Email") != "") $tel_fax_mail .= " E-mail: " . $db->f("Email") ; /*************************************************************** * scelgo il template da utilizzare in base al numero totale * dei prodotti del produttore scelto * Gestisco ogni singolo caso a se perchè altrimenti ho problemi * con la stampa del footer e con l'andare a pagina nuova ***************************************************************/ if ($tot_prodotti <= 30) { $template = "listino_30.xlt" ; debug (1, "TOT_PRODOTTI = $tot_prodotti ; TEMPLATE = $template") ; $E->XL($template, $pathtemplate, $sheet) ; $idfornitore = $db->f("IdFornitori") ; $E->writerange($sheet, "A2", $nomefornitore); $riga = 6 ; $np = 0 ; $qpd = " select * from $tprodotti where fornitore = '$idfornitore' and esaurito = 0 order by Nome, Annata " ; $dbp->query($qpd) ; while ($dbp->next_record()) { $nomep = $dbp->f("Nome") ; $imballo = ($dbp->f("Confezione") == "" ? "" : "1x" . $dbp->f("Confezione") ) ; $annata = $dbp->f("Annata") ; $prezzo = nfe($dbp->f("PrezzoUnitario")) ; $consegna = $dbp->f("Note") ; if ($np != 0 and $np % 10 == 0) { $riga += 1 ; $np = 0 ; } $E->writerange($sheet, "A$riga", $nomep); $E->writerange($sheet, "F$riga", $annata); $E->writerange($sheet, "G$riga", $imballo); $E->writerange($sheet, "H$riga", $prezzo); $E->writerange($sheet, "I$riga", $consegna); $riga ++ ; $np ++ ; } $riga_footer = 40 ; $E->writerange($sheet, "A$riga_footer", $nomefornitore) ; $riga_footer ++ ; $E->writerange($sheet, "A$riga_footer", $cit_prov) ; $riga_footer ++ ; $E->writerange($sheet, "A$riga_footer", $tel_fax_mail) ; } elseif($tot_prodotti > 30 and $tot_prodotti <= 60) { $template = "listino_60.xlt" ; debug (1, "TOT_PRODOTTI = $tot_prodotti ; TEMPLATE = $template") ; $E->XL($template, $pathtemplate, $sheet) ; $idfornitore = $db->f("IdFornitori") ; $E->writerange($sheet, "A2", $nomefornitore); $riga = 6 ; $np = 0 ; $qpd = " select * from $tprodotti where fornitore = '$idfornitore' and esaurito = 0 order by Nome, Annata" ; $dbp->query($qpd) ; while ($dbp->next_record()) { $nomep = $dbp->f("Nome") ; $imballo = ($dbp->f("Confezione") == "" ? "" : "1x" . $dbp->f("Confezione") ) ; $annata = $dbp->f("Annata") ; $prezzo = nfe($dbp->f("PrezzoUnitario")) ; $consegna = $dbp->f("Note") ; if ($np != 0 and $np % 10 == 0) { $riga += 1 ; $np = 0 ; } if ($riga % 39 == 0) { $np = 0 ; $riga_footer = $riga + 1 ; $E->writerange($sheet, "A$riga_footer", $nomefornitore) ; $riga_footer ++ ; $E->writerange($sheet, "A$riga_footer", $cit_prov) ; $riga_footer ++ ; $E->writerange($sheet, "A$riga_footer", $tel_fax_mail) ; $riga_int = $riga_footer + 2 ; $E->writerange($sheet, "A$riga_int", $nomefornitore); $riga += 9 ; } $E->writerange($sheet, "A$riga", $nomep); $E->writerange($sheet, "F$riga", $annata); $E->writerange($sheet, "G$riga", $imballo); $E->writerange($sheet, "H$riga", $prezzo); $E->writerange($sheet, "I$riga", $consegna); $riga ++ ; $np ++ ; } $riga_footer = 82 ; $E->writerange($sheet, "A$riga_footer", $nomefornitore) ; $riga_footer ++ ; $E->writerange($sheet, "A$riga_footer", $cit_prov) ; $riga_footer ++ ; $E->writerange($sheet, "A$riga_footer", $tel_fax_mail) ; } elseif($tot_prodotti > 60 and $tot_prodotti <= 90) $template = "listino_90.xlt" ; elseif($tot_prodotti > 90 and $tot_prodotti <= 120) $template = "listino_120.xlt" ; elseif($tot_prodotti > 120 and $tot_prodotti <= 150) $template = "listino_150.xlt" ; } } } #Save the current workbook as a Excel file: $E->saveas($filejob, $pathout, "xls") ; $E->closexl() ; unset ($E) ; exit ; for ($ind = 1; $ind <= $max; $ind ++) { if (isset($sttutti) and $sttutti = "si") $st = $ind ; else $st = ${"st$ind"} ; if ((isset($st) and $st != 0)) { $query = "select * from $tfornitori where idfornitori = $st" ; $db->query($query) ; while ($db->next_record()) { $E->runmacro($template, "InserisciSheet") ; $dati ++ ; $sheet = "Dati$dati" ; $pagina = 1 ; $printcond = false ; $nomefornitore = $db->f("Nome") ; $condizioni = $db->f("Condizioni") ; $modalita = $db->f("Modalita") ; $idfornitore = $db->f("IdFornitori") ; if (!isset($condizioni)) $condizioni = "" ; if (!isset($modalita)) $modalita = "" ; /* * Nella prima pagina, questi dati li stampo direttamente */ $E->writerange($sheet, "C2", $nomefornitore); $E->writerange($sheet, "D3", "Listino Prezzi"); $E->writerange($sheet, "I3", "pagina $pagina"); $dbp = new FC_SQL ; $riga = 7 + (38 * ($pagina - 1)) ; $nextrigacond = 7 + (38 * ($pagina - 1)) + 25 ; $query = "select * from $tprodotti where fornitore = '$idfornitore' and esaurito = 0 order by Nome" ; $dbp->query($query) ; while ($dbp->next_record()) { $nomep = $dbp->f("Nome") . " -- " . $dbp->f("Annata") ; $confezione = $dbp->f("Confezione") ; $prezzo = nfe($dbp->f("PrezzoUnitario")) ; $note = $dbp->f("Note") ; if (!isset($confezione)) $confezione = "" ; if (!isset($prezzo)) $prezzo = "" ; if (!isset($note)) $note = "" ; if ($riga == 7 + (38 * ($pagina - 1)) + 25) { $E->runmacro($template, "RigaProdotto") ; $E->writerange($sheet, "A$riga",$nomep) ; $E->writerange($sheet, "F$riga",$confezione) ; $E->writerange($sheet, "G$riga",$prezzo) ; $E->writerange($sheet, "H$riga",$note) ; $pagina ++ ; $E->writerange($sheet, "A1", $riga + 2) ; $E->runmacro($template, "CondMod") ; $riga += 3 ; $E->writerange($sheet, "D$riga", $condizioni); $riga += 2 ; $E->writerange($sheet, "D$riga", $modalita); /********************************************************* * Segnalo che ho stampato le linee condizione e modalità **********************************************************/ $printcond = true ; $riga = $checkriga = 7 + (38 * ($pagina - 1)) ; $nextrigacond = 7 + (38 * ($pagina - 1)) + 25 ; } elseif ($riga == $checkriga) { $val = (38 * ($pagina - 1)) + 1 ; $E->writerange($sheet, "A1", $val) ; $E->runmacro($template, "NuovaPagina") ; $val ++ ; $E->writerange($sheet, "C$val", $nomefornitore); $val ++ ; $E->writerange($sheet, "D$val", "Listino Prezzi"); $E->writerange($sheet, "I$val", "pagina $pagina"); /* * Segnalo che devo ancora stampare le linee condizione e modalità */ $printcond = false ; $E->writerange($sheet, "A1", $riga) ; $E->runmacro($template, "RigaProdotto") ; $E->writerange($sheet, "A$riga",$nomep) ; $E->writerange($sheet, "F$riga",$confezione) ; $E->writerange($sheet, "G$riga",$prezzo) ; $E->writerange($sheet, "H$riga",$note) ; $riga ++ ; } else { $E->writerange($sheet, "A1", $riga) ; $E->runmacro($template, "RigaProdotto") ; $E->writerange($sheet, "A$riga",$nomep) ; $E->writerange($sheet, "F$riga",$confezione) ; $E->writerange($sheet, "G$riga",$prezzo) ; $E->writerange($sheet, "H$riga",$note) ; $riga ++ ; } } if (!$printcond) { /* * Vuol dire che mancano le linee condizione e modalità */ for ($riga; $riga <= $nextrigacond; $riga ++) $E->runmacro($template, "RigaProdottoNoSotto") ; $E->writerange($sheet, "A1", $riga + 1) ; $E->runmacro($template, "CondMod") ; $riga += 2 ; $E->writerange($sheet, "D$riga", $condizioni); $riga += 2 ; $E->writerange($sheet, "D$riga", $modalita); } } // fine while ($db->next_record()) } // fine if ((isset($st) and $st != 0 )) } // fine for ($ind = 1; $ind <= $max; $ind ++) /*************************************************** * Prima di salvare il file elimino lo sheet Dati0 ***************************************************/ $E->runmacro($template, "EliminaSheet") ; #Save the current workbook as a Excel file: $E->saveas($filejob, $pathout, "xls") ; $E->closexl() ; unset ($E) ; header ("Location: http://localhost/GestioneAzienda/ordini/$time.xls") ; ?>