[Linux-Biella] php report

vallinidaniele a libero.it vallinidaniele a libero.it
Ven 7 Apr 2006 09:19:57 CEST


On Thu, 6 Apr 2006 17:35:32 +0200
"FEderico Villa" <villinux a gmail.com> wrote:

> hola a todos!
> 
> Sto affrontando il seguente proplema:
> c'è un piccolo gestionale scritto in PHP su DB Mysql,
> gira su un macchina Debian.
> 
> C'è l'esigenza di creare dei report stampabili, in particolar modo per
> stampare delle fatture (quindi in una fattura c'è bisogno di una
> intestazione, il corpo che si ottiene da query, un piè di pagina con i
> totali della fattura; contanto anche che una fattura può essere su più
> di una pagina).
> Basterebbe creare un PDF nel formato A4.
> 
> Ho girato un po' con Google ma sto andando in pagine che non capisco
> nemmeno se mi sono utili o no.
> Ho trovato qualcosa su PHP Report Generator e altra cosa JasperReport
> + iReport in Java.
> 
> Qualcuno mi può dare qualche consiglio?
> Almeno su cosa mi devo orientare.

Credo che la parte piu' complessa sia strutturare l' SQL per ottenere
l' output degli elementi necessari alla fattura.

Ottenuto l' output ASCII dall' interrogazione al database trasformi
ed impagini nel formato che desideri.

Ti passo un esempio della funzione stampa fattura del il mio programma di
contabilita'.

Nel mio caso anche l' impaginazione viene creata con query SQL ed il
formato risulta quindi totalmente ASCII127.

In questo tempo cosi' sensibile all' apparenza potrebbe apparire una
presentazione rozza ma per le mie modeste necessita' l' output
ASCII127 va benissimo.

L' eseguibile e' in sh, il database mysql.

Sono disponibile per quanto possa aiutarti.


#####   CLIENTI STAMPA FATTURA   ##### 

cs() {
echo > /contab/sql " 
CONNECT dan; 
SELECT *  
FROM giornale 
WHERE codop like 'cf' 
AND conto like 'ac%' 
ORDER BY nrfat desc 
LIMIT 10;"
echo "^[[0m"
mysql -t < /contab/sql
echo " 
^[[0;1;31m >>> ^[[0m numero fattura da stampare^[[0;1;31m"
read nrfat
echo "^[[0m"
echo > /contab/fattura " 
+---------------------------------------+  +--------------------------------+ 
|  AZIENDA  AGRICOLA  VALLINI  DANIELE  |  | fattura documento di trasporto | 
|  prodotti naturali macinati a pietra  |  +--------------+-----------------+ 
|                                       |  |    numero    |      data       | 
| 13846 Biella Vaglio Via Bellavista 7b |  |              |                 |"

echo > /contab/sql " 
CONNECT dan; 
SELECT CONCAT( 
'| tel/fax 015 561180  p.iva 01357390028 |  |     ', 
nrfat, 
'     |   ', 
DATE_FORMAT(datafat, '%d/%m/%Y'), 
'    |') 
FROM clifat1 
WHERE nrfat=$nrfat;"
mysql -N < /contab/sql >>/contab/fattura
echo >> /contab/fattura \
"+---------------------------------------+  +--------------+-----------------+ 
  
 destinazione se diversa:                     destinatario: 
"
echo > /contab/sql " 
CONNECT dan; 
SELECT clifat1.codcli 
FROM clifat1 
WHERE nrfat=$nrfat"
mysql -N < /contab/sql > /contab/tmp
codcli=`cat /contab/tmp`
echo "$codcli"
cat "/contab/clienti/indirizzi/$codcli" >> /contab/fattura
echo >> /contab/fattura " 
"
echo > /contab/sql \
"CONNECT dan; 
SELECT 
magart.descr AS articolo, 
DATE_FORMAT(clifat2.lotto,'%y%m%d') AS lotto, 
clifat2.quant AS nr, 
clifat2.prezzo, 
clifat2.quant*clifat2.prezzo AS subtot, 
clifat2.aliva AS '%iva', 
ROUND(clifat2.quant*clifat2.prezzo*clifat2.aliva/100,2) AS iva 
FROM magart,clifat2 
WHERE magart.id=clifat2.codart 
AND clifat2.nrfat=$nrfat;"
mysql -t < /contab/sql >> /contab/fattura
echo >> /contab/fattura " 
"
echo > /contab/sql " 
CONNECT dan; 
SELECT 
SUM(quant*prezzo) AS imponibili, 
aliva AS aliquota, 
ROUND(sum(quant*prezzo*aliva/100),2) AS iva 
FROM clifat2 
WHERE nrfat=$nrfat 
GROUP BY aliva; 
SELECT 
sum(quant*prezzo) AS 'totale imponibili', 
ROUND(sum(quant*prezzo*aliva/100),2) AS 'totale iva', 
ROUND(sum(quant*prezzo)+sum(quant*prezzo*aliva/100),2) 
AS 'TOTALE FATTURA' 
FROM clifat2 
WHERE nrfat=$nrfat;"
mysql -t < /contab/sql >> /contab/fattura
echo >> /contab/fattura " 
"
echo > /contab/sql " 
CONNECT dan; 
SELECT pagamen As pagamento 
FROM cliana 
WHERE codcli=\"$codcli\""
mysql -t < /contab/sql >> /contab/fattura
echo >> /contab/fattura " 
"
echo > /contab/sql " 
CONNECT dan; 
SELECT 
DATE_FORMAT(datatras,'%d/%m/%Y') AS 'data trasporto', 
causale AS 'causale trasporto', 
nrcolli AS 'nr colli', 
trasp AS trasportatore, 
porto 
FROM clifat1 
WHERE nrfat=$nrfat;"
mysql -t < /contab/sql >> /contab/fattura
echo >> /contab/fattura " 
Vettore                                          firma del Destinatario 
^L"
cat /contab/fattura
cs1
}


-- 

      Vallini Daniele

+-----------------------------------------------------------------------+
| Per lavorare  con efficienza  utilizzo unicamente  Linux  e files nei |
| formati unificati ed affidabili.  Per cortesia quindi non .doc o .xls |
+-----------------------------------------------------------------------+



Maggiori informazioni sulla lista Linux