PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Konfliket zwischen datatoll und numprint



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

Lex_83
18-06-2014, 11:36
Ich habe eine Lösung gefunden, falls jemand auch dieses Problem haben sollte.

Ein einfaches


\DTLsetnumberchars{}{,} ändert die entsprechenden Separatoren und alls läuft.

Gruß,
Axel