[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