Tabellen-Handling auf einer Rechnung

27/08/2009 - 19:25 von Peter Schütt | Report spam
Hallo,
ich möchte in einer Rechnung folgendes machen:

In der obigen Tabelle (5-spaltig) (Artikeltable) gibt es:

Anzahl | Artikelnummer | Artikelname | Einzelpreis | Gesamtpreis

wobei der Gesamtpreis natürlich berechnet wird.

In den üblichen Rechnungsvorlagen gibt in dieser Tabelle so an die 10 Zeilen
und unten ist eine Zeile mit der Summe.
Das sieht doof aus, wenn nur ein oder zwei Artikel auf der Rechnung sind.

Von daher habe ich die Summe in eine Extratabelle (Endbetragtable)
ausgelagert, die ich unterhalb der Artikeltable gesetzt habe.

Mein Ziel war nun, daß in der Artikeltabelle nur zwei Zeilen sind und bei
Bedarf man mit der Tab-Taste immer weiter geht und so zusàtzliche Zeilen
erzeugen kann.
Dabei gibt es zwei Probleme:
In der neuen Zeile im Gesamtpreis gibt es keine Formel mehr und in der
Endbetragtable stimmt die Summenberechnung nicht mehr.

Das habe ich nun mit einem Makro gelöst, daß ich an das "Speichern",
"Speichern als" und "Drucken"-Event gehàngt habe.

Die Lösung scheint zu funktionieren, obwohl sie mir recht kompliziert
vorkommt.

Ich möchte Euch um Kommentare zu meiner Lösung bitte und um Hinweise, ob es
vielleicht einfacher geht.

Ciao
Peter Schütt

P.S. Hier das Makro:

REM ***** BASIC *****

sub Main
Dim Doc As Object
Dim TextTables As Object
Dim Table As Object
Dim ArtikelTable As Object
Dim EndbetragTable As Object
Dim I As Integer
Dim CellName As String
Dim Cell As Object

Doc = StarDesktop.CurrentComponent
TextTables = Doc.getTextTables()
For I = 0 to TextTables.count - 1

Table = TextTables(I)
if Table.Name = "Artikel" then
ArtikelTable = Table
end if
if Table.Name = "Endbetrag" then
EndbetragTable = Table
end if
Next I
rem Fehlende Summen ergànzen
For I = 2 to ArtikelTable.getRows.getCount
CellName = Chr(64 +5) & I
Cell = ArtikelTable.getCellByName(CellName)
Cell.Formula = "<A" & I &">*<D" & I &">"
Next I


rem Endbetragsumme
CellName = Chr(64 +3) & 1
Cell = EndbetragTable.getCellByName(CellName)
Cell.Formula = "sum(<Artikel.E2:E" & (ArtikelTable.getRows.getCount) & ">)"
end sub

www.pstt.de

Die E-Mail-Adresse funktioniert, kann aber u.U. in Zukunft mal abgeschaltet
werden. Ohne "_remove_this_" wird sie auch in Zukunft noch funktionieren.
 

Lesen sie die antworten

#1 Volker Kohaupt
27/08/2009 - 20:31 | Warnen spam
Peter Schütt schrieb:

Die Lösung scheint zu funktionieren, obwohl sie mir recht kompliziert
vorkommt.

Ich möchte Euch um Kommentare zu meiner Lösung bitte und um Hinweise, ob es
vielleicht einfacher geht.



Ich habe das Makro jetzt nicht aus probiert, da ich der Meinung bin wenn
es nach deinen Vorstellungen funktioniert, lehn dich zurück und freu
dich :>)
Natürlich könnte man das Teil jetzt auseinander nehmen da und dort
verfeinern, zusàtzliche Kommentare einfügen und noch strukturieren, aber
auch nur wenn eine Notwendigkeit vorliegt.

Ich wünsche dir viel Spaß mit dem Makro.

Viele grüße von Volker und dem Pinguin.

PC 1 : Linux openSUSE 11.0
PC 2 : Linux openSUSE 11.1
Server: Linux openSUSE 11.0 ohne X

Ähnliche fragen