PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechnung mit LaTeX (Zwischensumme/Summe in Longtable)



tomiondrums
05-10-2008, 10:16
Hi!
Ich brüte schon seit langem über einem, für mich sehr komplexen Problem:
Es geht dabei um eine Art Non-Standard-Rechnungs-Software. Die Rechnungen die dabei rauskommen sollen, sehen aber trotzdem im Endergebnis einer normalen Rechnung sehr ähnlich. Ich verwende bislang dazu einfach die letter-Class und einige eigene kleinere Erweiterungen, die wiederum auf dem longtable-Paket aufbauen.

Das Unschöne daran ist, daß mit longtable zwar Seitenumbrüche in Tabellen möglich sind, nur weiß ich leider nicht, wie man dann erreicht, daß die Zwischensumme einer bestimmten Spalte vor der Unterbrechung ausgegeben wird. Die Vorausberechung davon ist denkbar schwierig, weil man ja nicht weiß, wo LaTeX dann letzendlich die Unterbrechung reinmacht. Wie man das mit "Fortsetzung nächste Seite..." regelt hab ich allerdings schon raus...

Noch dazu wärs ganz nett, wenn man die Gesamtsummen dann irgendwie abgreifen könnte und für's Endergebnis verwenden könnte.

Die zweite Sache, die ich gerne erreichen würde, wäre eine feste Spaltenbreite bei gleichzeitiger Festlegung der Ausrichtung, also am Besten r{20mm}, sodaß beim Überschreiten der Textbreite auch in der Tabellenzelle ein Zeilenumbruch an der richtigen Stelle gemacht wird.

Ich hoffe, mir kann da jemand helfen...
Danke schonmal!
MfG
Tom

PS: Nach schon fertigen Rechnungs"vorlagen" hab ich schonmal im Web gesucht - die können aber alle entweder nicht, was ich brauche oder sehen schlimm aus oder kosten viel, viel Geld und ich konnte sie deswegen nicht näher in Augenschein nehmen...

voss
05-10-2008, 10:23
Das Unschöne daran ist, daß mit longtable zwar Seitenumbrüche in Tabellen möglich sind, nur weiß ich leider nicht, wie man dann erreicht, daß die Zwischensumme einer bestimmten Spalte vor der Unterbrechung ausgegeben wird. Die Vorausberechung davon ist denkbar schwierig, weil man ja nicht weiß, wo LaTeX dann letzendlich die Unterbrechung reinmacht. Wie man das mit "Fortsetzung nächste Seite..." regelt hab ich allerdings schon raus...

Noch dazu wärs ganz nett, wenn man die Gesamtsummen dann irgendwie abgreifen könnte und für's Endergebnis verwenden könnte.

Die zweite Sache, die ich gerne erreichen würde, wäre eine feste Spaltenbreite bei gleichzeitiger Festlegung der Ausrichtung, also am Besten r{20mm}, sodaß beim Überschreiten der Textbreite auch in der Tabellenzelle ein Zeilenumbruch an der richtigen Stelle gemacht wird.


r{20mm} ist nichts anderes als \newcolumntype{r}[1]{...}. (Paket array)
Mit der Definition vor endfoot kannst du auch die Zwischenzähler ausgeben, diese
müssen allerdings immer global gesetzt werden, da inenrhalb eienr Tabellenzelle
alles lokal ist. Und mit endlastfoot kannst du die Gesamtsumme bilden.

Herbert

tomiondrums
05-10-2008, 10:32
Danke schonmal für die Info! Leider bin ich in LaTeX, auch wenn ich's mittlerweile schon eine Weile verwende, noch nicht so fit, daß ich das mit den Zählern in konkreten Code klopfen könnte. endfoot und endlastfoot verwende ich schon, nur wie ich die Zähler abgreifen kann, weiß ich nicht...
Ich hoffe jetzt nicht penetrant zu wirken, aber ich müsste dabei nochmal um eure Hilfe bitten.


Danke!

paole
02-12-2008, 10:29
moin allerseits und erste Grüße an das Forum.

Auch ich versuche mich gerade an dem Schreiben einer Rechnung mit Ausgabe via longtable. Das Berechnen der einzelnen Positionen geschieht über fp und einzelne Makros.

Ich habe dafür ein Makro mit Übergabeparametern definiert, das eine Multiplikation von zwei Werten ausführt. Über alle Ergebnisse soll zum Schluss eine Summe gebildet werden.

Das Hauptproblem dabei ist, dass ein renewcommand innerhalb einer Tabellenzelle nicht den Inhalt des globalen Makros verändert, d.h. die berechneten Werte sind außerhalb einer Zelle nicht mehr vorhanden ... was mir eine Summenbildung über alle Positionen vermiest.

Ein Ausweg ist, die Positionen ausserhalb der Tabelle berechnen zu lassen, nur leider bekomme ich dann die einzelnen Zellen immer direkt ausgegeben (was "misplaced alignment"-Fehler produziert, da ich mich ja ausserhalb einer Tabellenumgebung befinde). Gibt es eine Möglichkeit, die Ausgabe eines Makros zu verhindern, nur die Inhalte in ein 2. Makro zu übernehmen und dann später gezielt das 2. Makro aufzurufen?


Ich bin für jede Hilfe dankbar :o

paole
10-12-2008, 13:11
moin noch mal.

Ich habe dafür ein Makro mit Übergabeparametern definiert, das eine Multiplikation von zwei Werten ausführt. Über alle Ergebnisse soll zum Schluss eine Summe gebildet werden.

Das Hauptproblem dabei ist, dass ein renewcommand innerhalb einer Tabellenzelle nicht den Inhalt des globalen Makros verändert, d.h. die berechneten Werte sind außerhalb einer Zelle nicht mehr vorhanden ... was mir eine Summenbildung über alle Positionen vermiest.


Für alle, die es interessiert: ich habe das Problem lösen können. Um innerhalb einer Tabelle Makros neu zu definieren hilft folgender Befehl:

\global\edef\myCmd{lorem}

paole
10-12-2008, 13:16
Das Unschöne daran ist, daß mit longtable zwar Seitenumbrüche in Tabellen möglich sind, nur weiß ich leider nicht, wie man dann erreicht, daß die Zwischensumme einer bestimmten Spalte vor der Unterbrechung ausgegeben wird. Die Vorausberechung davon ist denkbar schwierig, weil man ja nicht weiß, wo LaTeX dann letzendlich die Unterbrechung reinmacht.
Vielleicht hilft dir das (http://newsgroups.derkeiler.com/pdf/Archive/De/de.comp.text.tex/2007-05/msg00860.pdf) hier.

Noch dazu wärs ganz nett, wenn man die Gesamtsummen dann irgendwie abgreifen könnte und für's Endergebnis verwenden könnte.
Siehe vorigen Post.

paole
12-12-2008, 05:38
und abschließend zum thema das ganze noch mal komplett: http://www.gearz.de/?load=howto&ex=LaTeX&entry=rechnung