Lex_83
17-06-2014, 10:09
Hallo,
ich habe ein Problem bei der Kombination zwischen Datatool und numprint.
Das zugehörige Minimalbeispiel sieht wie folgt aus:
\documentclass[accentcolor=tud1c]{tudreport}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english, ngerman]{babel}
\usepackage{datatool}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{wasysym}
\usepackage{ltxtable}
\usepackage{eurosym}
\usepackage{ragged2e}
\usepackage{numprint}
\usepackage{xstring}
\nprounddigits{2}
\begin{document}
\DTLsetseparator{;}
\DTLloaddb{t2g}{Mappe1.csv}
\vspace*{5mm}
\LTXtable{1\linewidth}{tabelle.tex}
\DTLsumcolumn{t2g}{Preis}{\cmd}
\numprint{\cmd}
\end{document}
Tabelle.tex sieht so aus:
\begin{longtable}{|c|c|l|X|r|r|r|}\hline
Pos. & Anz. & Artikelnr. & Beschreibung & Preis (St.) & Rabatt & Preis
\DTLforeach*{t2g}
{\pos=Pos.,\anz=Anz.,\artnr=Artikelnr.,\besch=Besc hreibung,\pps=Preis/Stück,\rab=Rabatt,\preis=Preis}%
{\\\hline
\pos & \anz & \artnr & \besch & \numprint{\pps} & \rab\,\%& \numprint{\preis}}\\\hline
\end{longtable}
Funnktioniert soweit auch alles ganz gut, außer wenn die Zahlen in der Preisspalte in Summe größer als 4-stellig werden. Steht in der Csv z.B.
12000
100
100
schreibt er als Preise in der Tabelle
12 000,00
100,00
100,00
Aber
\numprint{\cmd} ergibt dann 12,20, da er wohl das 1000-Trennzeichen als Dezimaltrennzeichen wertet - nachdem er die Summe gebildet hat. Dafür spricht auch, dass bei einer Eingabe wie
12000,01
100
100
ein Fehler ausgegeben wird "Zwei Dezimaltrennzeichen vorhanden". Kommentiert man
\numprint{\cmd} aus stellt er die Tabelle aber richtig dar. Bei den einzelnen Werten kommt er mir der 1000 Trennzeichendefinition also klar aber nach Bildung der Summe nicht mehr.
Hat jemand eine Idee wie man dieses fixen kann?
Danke und Gruß
Axel
ich habe ein Problem bei der Kombination zwischen Datatool und numprint.
Das zugehörige Minimalbeispiel sieht wie folgt aus:
\documentclass[accentcolor=tud1c]{tudreport}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english, ngerman]{babel}
\usepackage{datatool}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{wasysym}
\usepackage{ltxtable}
\usepackage{eurosym}
\usepackage{ragged2e}
\usepackage{numprint}
\usepackage{xstring}
\nprounddigits{2}
\begin{document}
\DTLsetseparator{;}
\DTLloaddb{t2g}{Mappe1.csv}
\vspace*{5mm}
\LTXtable{1\linewidth}{tabelle.tex}
\DTLsumcolumn{t2g}{Preis}{\cmd}
\numprint{\cmd}
\end{document}
Tabelle.tex sieht so aus:
\begin{longtable}{|c|c|l|X|r|r|r|}\hline
Pos. & Anz. & Artikelnr. & Beschreibung & Preis (St.) & Rabatt & Preis
\DTLforeach*{t2g}
{\pos=Pos.,\anz=Anz.,\artnr=Artikelnr.,\besch=Besc hreibung,\pps=Preis/Stück,\rab=Rabatt,\preis=Preis}%
{\\\hline
\pos & \anz & \artnr & \besch & \numprint{\pps} & \rab\,\%& \numprint{\preis}}\\\hline
\end{longtable}
Funnktioniert soweit auch alles ganz gut, außer wenn die Zahlen in der Preisspalte in Summe größer als 4-stellig werden. Steht in der Csv z.B.
12000
100
100
schreibt er als Preise in der Tabelle
12 000,00
100,00
100,00
Aber
\numprint{\cmd} ergibt dann 12,20, da er wohl das 1000-Trennzeichen als Dezimaltrennzeichen wertet - nachdem er die Summe gebildet hat. Dafür spricht auch, dass bei einer Eingabe wie
12000,01
100
100
ein Fehler ausgegeben wird "Zwei Dezimaltrennzeichen vorhanden". Kommentiert man
\numprint{\cmd} aus stellt er die Tabelle aber richtig dar. Bei den einzelnen Werten kommt er mir der 1000 Trennzeichendefinition also klar aber nach Bildung der Summe nicht mehr.
Hat jemand eine Idee wie man dieses fixen kann?
Danke und Gruß
Axel