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
Code, hier editierbar zum Übersetzen:
\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}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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}}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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 '16, 10:53

Snoopy%20EL's gravatar image

Snoopy EL
1142813
Akzeptiert-Rate: 0%

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 '16, 11: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 '16, 11:21) saputello

Ich würde dafür einfach einen weiteren Befehl \subrow definieren, mit dem man dann die zusätzlichen Daten je Firma eingibt:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\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{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*{\subrow}[1]{%
\noalign{\vskip-2ex}% optional
\ExtractData{#1}{\mandname,\app,\daten,\kosten}%
\MandName{\mandname} & \App{\app} & \Daten{\daten} & \Kosten{\kosten} \tabularnewline
}
\newcommand*{\KdName}[1]{#1}
\newcommand*{\KdNr}[1]{#1}
\newcommand*{\MandName}[1]{#1}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Mehr Zeilen je Firma

Permanenter link

beantwortet 25 Apr '18, 11:59

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×257
×2

gestellte Frage: 07 Mär '16, 10:53

Frage wurde gesehen: 5,600 Mal

zuletzt geändert: 25 Apr '18, 11:59

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×