Hallo liebe Gemeinde,

ich benötige mal wieder ein wenig Hilfe. Und zwar geht es um ein Abrechnungsdokument siehe diesem Beispiel:

Open in Online-Editor
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage[paper=a4paper,left=20mm,right=20mm,top=15mm,bottom=15mm]{geometry}
\usepackage[pdftex]{graphicx}
\usepackage{longtable}
\usepackage{pgffor}

\def\ExtractData#1#2{% #1 Liste der Werte, #2 Liste der Makros
\def\ccc{i}%
\foreach \data in {#1} {% Hilfsmakros \auxi, \auxii, \auxiii...
    \expandafter\xdef\csname aux\ccc\endcsname{\data}%
    \xdef\ccc{\ccc i}% 
}%
\xdef\ccc{i}%
\foreach \macro in {#2} {% speichern in den bereitgestellten Makros
    \expandafter\xdef\macro{\csname aux\ccc\endcsname}%
    \xdef\ccc{\ccc i}%
}%
}

\def\row#1#2#3{%
\ExtractData{#1}{\kdname}%
\ExtractData{#2}{\kdnr}%
\ExtractData{#3}{\mandname,\app,\daten,\kosten}%
%------------------ 
\textbf{\KdName{\kdname}}   \\
Kundennr.: \KdNr{\kdnr}     \\
\MandName{\mandname}    & \App{\app}    & \Daten{\daten}    & \Kosten{\kosten}  \tabularnewline
}

\newcommand*{\KdName}[1]{#1}
\newcommand*{\KdNr}[1]{#1}
\newcommand*{\MandName}[1]{#1}
\newcommand*{\App}[1]{#1}
\newcommand*{\Daten}[1]{#1}
\newcommand*{\Kosten}[1]{#1}

\newenvironment{abrechnung}
{\setlength{\tabcolsep}{0pt}%
\begin{longtable} 
    {@{}p{0.35\textwidth}p{0.25\textwidth}p{0.25\textwidth}p{0.1\textwidth}}   
    \multicolumn{2}{c}{}                        &                               &                   \tabularnewline[2ex]
    \textbf{Kunde}          & \textbf{App}      & \textbf{Übertragende Daten}   & \textbf{Kosten}   \tabularnewline[2ex]
    \hline
    \noalign{\vskip 2mm}
    \endhead
}
{
    \tabularnewline[-1ex]\hline\noalign{\vskip 2mm}      
\end{longtable}
 }

\begin{document}    
{\huge Abrechnung} \hfill

\begin{abrechnung}
    \row{Firma1}{2133}{Mandant1, App1, 96, {1,92}}      \\
    \row{Firma2}{10409}{Mandant1, App1, 181, {3,62}}    \\
    \row{Firma3}{67568}{Mandant1, App1, 240, {4,80}}    \\
\end{abrechnung}

\end{document}

Soweit funktioniert auch alles. Nun verhält es sich aber so, dass es pro Firma eben auch mehrere Datensätze zu mehreren Mandanten geben kann, ich bekäme also beispielsweise so etwas übergeben:

Open in Online-Editor
\row{Firma3}{67568}{Mandant1, App1, 240, {4,80}}{Mandant2, App1, 120, {2,40}}{Mandant3, App2, 60, {1,20}}

Da ich aber im Vorfeld nicht weiß, wieviele Datensätze vorhanden sind, stehe ich jetzt vor dem Problem, dass ich diese mit dem oberen Beispiel nicht so einfach auslesen und die Tabelle einfügen kann. Kann mir jemand an dieser Stelle weiterhelfen? Bin ich vielleicht sogar auf dem Holzweg und/oder gibt es einen besseren/andern Weg um dies zu lösen?

Für Hilfe wäre ich dankbar und ich hoffe, dass ich alles verständlich erklärt habe.

Viele Grüße und besten Dank schon mal.

gefragt 07 Mär, 04:53

Snoopy%20EL's gravatar image

Snoopy EL
10410
Akzeptiert: 75%

1

Befehle mit variable Anzahl obligatorischer Argumente sind schwierig.

Warum nicht weitere \row-Befehle dafür generieren? Ggf. kann man dann in \row auch testen, ob das erste Argument unverändert geblieben oder alternativ leer ist und ggf. die Ausgabe dann anders machen. Wie die Ausgabe sein soll, ist in der Frage ohnehin nicht angegeben. Anders gesagt: Ja, ich denke, Du bist auf dem Holzweg.

Man könnte alternativ weitere Daten zu derselben Firma auch mit einer neuen Anweisung \addrow ergänzen.

Für sauber ausgerichtete Zahlen würde ich übrigens S-Spalten (mit siunitx) empfehlen.

(07 Mär, 05:16) saputello

Laut den »Tipps zum Verfassen«, die rechts neben dem Eingabefeld für neue Fragen angezeigt werden, solltest Du übrigens auf "Hallo", "Grüße" und "Danke" verzichten.

(07 Mär, 05:21) saputello
Sei der Erste, der diese Frage beantwortet!
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×185
×2

Frage gestellt: 07 Mär, 04:53

Frage wurde angeschaut: 484 Mal

Zuletzt aktualisiert: 07 Mär, 05:21