Probleme mit der longtable

Tabellen und Grafiken erstellen und anordnen


fabian

Probleme mit der longtable

Beitrag von fabian »

Hi,

ich habe ein Problem und zwar habe ich eine Rechnung in der die einzelnen Positionen in einen Tabelle(Longtable) angezeigt werden. Geht auch soweit nur bin ich jetzt auf ein Problem gestoßen das auftritt wenn eine Zeile größer ist als eine A4 Seite.
Also z.B wenn man eine Rechnung macht in der 100 mal ein Artikel verkauft wird der dann auch 100 verschiedene Seriennummern hat

Pos | Art.Nr | Artikel | Seriennummer...

1 | 22 | Handy | 12321321321323
..............................| 12321321321322
..............................| ...
..............................| bis 100

dann passt diese Tabellen Zeile nicht mehr auf eine A4 Seite und versucht dann immer die Tabelle auf die nächste Seite zu machen bis alles absturzt

hier mal einen Ausschnit aus dem latex document.



\begin{longtable}{p{5mm} p{16mm} >{\RaggedRight}p{45mm} p{8mm} R{13mm} R{26mm} R{22mm} r}

	% Kopfzeile der Tabelle
		\normalsize{\Position}							&
		\normalsize{\ProductNumber}					&
		\normalsize{\Product}							&
		\normalsize{\Amount}								&
		\normalsize{\Tax}								&
		\normalsize{\NetPrice (\currency)}			&
		\normalsize{\SinglePrice (\currency)}		&
		\normalsize{\TotalPrice (\currency)}		\\
		\midrule
	\endfirsthead

	% Tabellenkopf nach dem Umbruch
		\normalsize{\Position}							&
		\normalsize{\ProductNumber}					&
		\normalsize{\Product}							&
		\normalsize{\Amount}								&
		\normalsize{\Tax}								&
		\normalsize{\NetPrice (\currency)}			&
		\normalsize{\SinglePrice (\currency)}		&
		\normalsize{\TotalPrice (\currency)}		\\
		\midrule 
		& & \multicolumn{4}{r}{ \CarryOver }	&	\\
	\endhead

		% Fuss der Teiltabellen
		&	\multicolumn{4}	{r}	{  }		&		\\
	\endfoot

	% Das Ende der Tabelle
		&	\multicolumn{4}	{r}	{  }		&		\\
	\endlastfoot


	<?foreach positions?>
		%===================================================
		%==> Position <?pos?>
		%===================================================
		\rowcolor{<?odd_or_even?>}	% Nimmt die Werte odd oder even an! (Kommt vom TexWrapper)
		\ifthenelse{\equal{<?pos?>}							{}}	{}	{<?pos?>}													&		% Laufende Positionsnummer
		\ifthenelse{\equal{<?product_number?>}				{}}	{}	{\tiny{<?product_number?>}}							&		% Artikelnummer
		\ifthenelse{\equal{<?product_description?>}				{}} 	{}	{\small \RaggedRight{<?product_description?>} \newline }			% Produkttitel																				
		\ifthenelse{\equal{<?product_serial_number?>}	{}}	{}	{\small \textbf{<?product_serial_number?>}}		&		% Seriennummer
		\ifthenelse{\equal{<?amount?>}						{}}	{}	{<?amount?>}												&		% Menge
		\ifthenelse{\equal{<?product_tax_class?>}						{}}	{}	{<?Tax?>}	&		% TaxClass		
		\ifthenelse{\equal{<?taxfree_selling_price?>}	{}}	{}	{\trynumprint{<?taxfree_selling_price?>}}			&		% Nettoverkaufspreis
		\ifthenelse{\equal{<?tax_selling_price?>}			{}}	{}	{\trynumprint{<?tax_selling_price?>}}				&		% Bruttoverkaufspreis
		\ifthenelse{\equal{<?total_tax_selling_price?>}	{}}	{}	{\trynumprint{<?total_tax_selling_price?>}}						% Zeilensumme
		\\
		%===================================================
		%==> EOF Position <?pos?>
		%===================================================
	<?end positions?>

% Ende der zentralen Tabelle
\end{longtable}
Ich hoffe ihr könnt mir weiterhelfen,

mit freundlichen Grüßen

fabian

Beitrag von fabian »

Was ich vieleicht noch erwähnen sollte ich rufe die Tabelle mit
\LTXtable{\textwidth}{tabelle.tex}
auf

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

longtable und ltxtable können schlicht nicht innerhalb von Tabellenzeilen umbrechen. Daraus resultiert dann auch, dass eine Tabellenzeile maximal eine Seite umfassen kann. Bei größeren Einträgen kann man allenfalls veruschen, damit zu tricksen, dass man sie manuell in mehrere Tabellenzeilen aufteilt.

Ich habe ehrlich gesagt keine Ahnung, ob es andere Pakete gibt, die seitenübergreifende Tabellen mit seitenübergreifenden Tabellenzeilen ermöglichen.

BTW: Da Du in Deiner Tabelle keine X-Spalten verwendest, brauchst Du das ltxtable-Paket dafür auch nicht. Damit hättest Du auch ganz einfach ein tatsächlich vollständiges Minimalbeispiel (← dies ist ein geprüfter Link mit relevanten Informationen!) machen können. Mit dem Code-Schnippsel kann ich jedenfalls gar nichts anfangen. Ich schließe daraus allenfalls, dass das Ding irgendwie automatisch generiert wird. Dann sollte man schlicht dem Generator beibringen nach x-Seriennummern eine weitere Position aufzumachen.

Antworten