- Questo topic ha 4 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 15 anni, 12 mesi fa da .
-
Topic
-
Salve,
utilizzo (fino a ieri con molta soddisfazione) il pacchetto “datatool” per redigere delle note spesa di rimborso all’azienda per cui lavoro.
Ho preparato un file .tex per creare le note spesa in automatico a partire da un file CSV.
L’ultima volta che ho utilizzato questo codice:
`
\documentclass[a4paper,11pt,pdftex]{article}
\usepackage[italian]{babel}
\usepackage[latin1]{inputenc}
\usepackage{eurosym}
\usepackage{helvet}
\usepackage{ifpdf}
\usepackage{datatool}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{multicol}
\usepackage{rccol}
\newcolumntype{e}[1]{R[.][,]{#1}}
\usepackage{boldline}
\usepackage{booktabs}
\pagestyle{empty}\addtolength\textwidth{2cm}
\setlength\hoffset{-0.5cm}
\addtolength\textheight{2cm}
\setlength\topmargin{0cm}
\setlength\marginparwidth{0cm}
\setlength\oddsidemargin{0cm}\newcommand{\databasefilename}{nj.csv}
\newcommand{\customer}{cliente Blah Blah S.p.A.}
\ifpdf
\usepackage[pdftex]{graphicx}
\pdfpagewidth=\paperwidth
\pdfpageheight=\paperheight
\pdfinfo{
/Author (Io)
/Title (Nota spese \customer)
/CreationDate (D:20100906120000)
/Subject (Nota spese)
/Keywords (fisco;tasse;rimborso;fattura)
}
\else
\usepackage[dvips]{graphicx}
\fi
\usepackage{pdfpages}
\begin{document}
\usefont{OT1}{phv}{m}{n}\selectfont
\renewcommand{\familydefault}{\sfdefault}\vspace*{-3.0cm}
Nota spese per missione per conto BLAH s.r.l. c/o \customer.
\vspace{0.5cm}
\DTLsetseparator{,}
\DTLloaddb[noheader,keys={Data,Nome,Missione,Descrizione,Importo},%
headers={Data,,,Descrizione,Importo}]{dati}{\databasefilename}
%\renewcommand{\dtldisplayafterhead}{\toprule}
%\DTLdisplaydb{dati}
\def\tautost{0}
\def\tvitto{0}
\def\talloggio{0}
\def\tcarbu{0}
\def\tautopers{0}
\def\taltro{0}
\def\ttaxi{0}
\def\tmater{0}
\def\grandtotal{0}\begin{center}
\begin{tabular}{p{0.15\textwidth}p{0.35\textwidth}e{4}{2}}
\toprule
%\rowcolor[gray]{0.8}
Data & Descrizione & \multicolumn{1}{r}{Importo (\euro)} \\
\midrule
\DTLforeach{dati}{\Data=Data,\Descrizione=Descrizione,\Importo=Importo}%
%{\Data & \Descrizione & \textsf{\Importo} \\} \\
{\Data & \Descrizione & \Importo \\} \\
\bottomrule\end{tabular}
\end{center}\DTLforeach[\DTLisieq{\Descrizione}{autostrada}]{dati}{%
\Data=Data,\Descrizione=Descrizione,\Importo=Importo}{%
\DTLgadd{\tautost}{\Importo}{\tautost}}\DTLforeach[\DTLisieq{\Descrizione}{vitto}]{dati}{%
\Data=Data,\Descrizione=Descrizione,\Importo=Importo}{%
\DTLgadd{\tvitto}{\Importo}{\tvitto}}\DTLforeach[\DTLisieq{\Descrizione}{alloggio}]{dati}{%
\Data=Data,\Descrizione=Descrizione,\Importo=Importo}{%
\DTLgadd{\talloggio}{\Importo}{\talloggio}}\DTLforeach[\DTLisieq{\Descrizione}{auto personale}]{dati}{%
\Data=Data,\Descrizione=Descrizione,\Importo=Importo}{%
\DTLgadd{\tautopers}{\Importo}{\tautopers}}\DTLforeach[\DTLisieq{\Descrizione}{carburante}]{dati}{%
\Data=Data,\Descrizione=Descrizione,\Importo=Importo}{%
\DTLgadd{\tcarbu}{\Importo}{\tcarbu}}\DTLforeach[\DTLisieq{\Descrizione}{taxi}]{dati}{%
\Data=Data,\Descrizione=Descrizione,\Importo=Importo}{%
\DTLgadd{\ttaxi}{\Importo}{\ttaxi}}\DTLforeach[\DTLisieq{\Descrizione}{materiali}]{dati}{%
\Data=Data,\Descrizione=Descrizione,\Importo=Importo}{%
\DTLgadd{\tmater}{\Importo}{\tmater}}\DTLforeach[\DTLisieq{\Descrizione}{altro}]{dati}{%
\Data=Data,\Descrizione=Descrizione,\Importo=Importo}{%
\DTLgadd{\taltro}{\Importo}{\taltro}}\DTLgaddall{\grandtotal}{\tvitto,\talloggio,\tautost,\tautopers,\tcarbu,\ttaxi,\tmater,\taltro}
\vspace{0.5cm}
\begin{center}
\begin{tabular}{p{0.4\textwidth}r}
\toprule
\rowcolor[gray]{0.8}
Tipo spesa & Importo totale (\euro) \\
\midrule
Vitto & {\tvitto} \\
Alloggio & {\talloggio} \\
Pedaggi stradali & {\tautost} \\
Rimborso kilometrico & {\tautopers} \\
Carburante & {\tcarbu} \\
Taxi & {\ttaxi} \\
Materiali & {\tmater} \\
Altro & {\taltro} \\
\midrule
{\bfseries Totale} & {\bfseries\grandtotal} \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
`con questo file CSV chiamato “nj.csv”:
`
2010/09/04,pincopallo,”blablabla”,TAXI,93.21
2010/09/03,pincopallo,”blablabla”,TAXI,18.53
2010/09/03,pincopallo,”blablabla”,VITTO,9.70
2010/09/03,pincopallo,”blablabla”,TAXI,10.20
2010/08/24,pincopallo,”blablabla”,TAXI,26.10
2010/08/30,pincopallo,”blablabla”,TAXI,22.09
2010/08/24,pincopallo,”blablabla”,ALTRO,65.89
2010/08/24,pincopallo,”blablabla”,TAXI,13.18
2010/08/23,pincopallo,”blablabla”,TAXI,25.00
2010/09/04,pincopallo,”blablabla”,VITTO,9.60
2010/09/04,pincopallo,”blablabla”,VITTO,1.70
2010/08/23,pincopallo,”blablabla”,TAXI,74.67
2010/08/24,pincopallo,”blablabla”,VITTO,6.40
2010/08/30,pincopallo,”blablabla”,VITTO,55.10
2010/08/23,pincopallo,”blablabla”,VITTO,45.06
2010/09/03,pincopallo,”blablabla”,VITTO,44.21
2010/08/23,pincopallo,”blablabla”,VITTO,2.60
2010/08/23,pincopallo,”blablabla”,VITTO,27.86
2010/08/23,pincopallo,”blablabla”,TAXI,40.30
2010/08/23,pincopallo,”blablabla”,ALTRO,1113.03
2010/09/03,pincopallo,”blablabla”,ALTRO,1225.95
2010/09/03,pincopallo,”blablabla”,ALTRO,66.13
2010/08/31,pincopallo,”blablabla”,VITTO,22.29
2010/08/31,pincopallo,”blablabla”,TAXI,24.81
2010/09/04,pincopallo,”blablabla”,TAXI,21.50
2010/08/31,pincopallo,”blablabla”,ALLOGGIO,209.09
2010/09/04,pincopallo,”blablabla”,ALLOGGIO,162.48
2010/09/03,pincopallo,”blablabla”,ALLOGGIO,155.56
2010/09/04,pincopallo,”blablabla”,ALTRO,11.10
2010/08/24,pincopallo,”blablabla”,ALLOGGIO,136.8
`
ho riscontrato un comportamento tutt’ora per me inspiegabile. Infatti, basta cambiare il numero dell’ultima riga ultima colonna nel file (136.8) in 16.8 o in 100.8 per veder scomparire l’errore di compilazione che pdflatex ravvisa con il file CSV originale.
Qualcuno mi sa spiegare il motivo?
Grazie a chi ci volesse perdere un po’ di tempo (e a chi ne ha già perso leggendo questo post).Gianluca
- Devi essere connesso per rispondere a questo topic.