Hallo,

ich habe mich auch schon gefragt, ob /warum nicht die entsprechenden
sql-Möglichtkeiten existieren
(meine ersten Tests waren nicht erfolgreich):

so oder ähnliche sollte es doch unter einer standard sql-DB möglich sein
oder?

SELECT.....    sum("honorar", "Fahrkosten")  AS "gesamtNetto"
"gesamtNetto"*1.14 AS gesamtBrutto FROM ....

Die Frage ist also ob das die eingebaute DB kann und/oder ob bei den
eingebundenen DB's (z.B. ACCESS oder mysql) die Treiber das zulassen...

oder wenigstens bei gebundenen Formularen (soweit bin ich noch nicht)
berechnete Felder möglich sind


die Makro-Lösung mag funktionieren, aber ist meiner Meinung nach doch nur
ein unzureichendes Workarround

weis jemand mehr?


Karl (kgs-ks)


-----Ursprüngliche Nachricht-----
Von: Michael Braun [mailto:[EMAIL PROTECTED]
Gesendet: Dienstag, 19. Dezember 2006 13:25
An: users@de.openoffice.org
Betreff: Re: [de-users] Berechnung in Datenbank Base


Hallo Olaf,

>
> ich habe mir mit der Datenbank von OOo ein Tool gestrickt, dass ich
> ähnlich schon mal unter Access laufen hatte. Ich will Vertrags und
> Rechnungsdaten mit den Kundendaten verlinken. Klappt auch alles Super,
> außer den Berechnungen.
>
> Ich will dass das Feld [MwSt] sich selbstständig aus den Feldern
> ([Honorar] + [Fahrtkosten]) + MwSt.Prozent ergibt.
> Das Feld [Gesmtbetrag] soll sich dann aus [Honorar] + [Fahrtkosten] +
> [MwSt] errechnen.
>
warum willst du die MwST in der Datenbank speichern, wenn du sie für
jeden Datensatz erneut berechnen kannst?
Das macht aus meiner Sicht nur Sinn, wenn es sich dabei
  a) nur um einen Vorgabewert für ein Formularfeld handelt, in welchem
du die MwST ggf. korrigieren möchtest
  b) die Rechnung einfach den Wert der MwST aufweisen soll.

Bei a) würde ich ein Macro verwenden, welches immer wenn ein neuer
Datensatz erstellt wird aufgerufen wird und den Wert in das Feld schreibt.
Bei b) fällt mir leider auch nur eine Makrolösung ein, welches den Text
eines Formularfeldes ohne verbundenes Feld einer Datenquelle beim Laden
eines Datensatzes anpasst.

Für a) erstellst du ein OOo Makro mit dem Inhalt:
oForm=ThisComponent.DrawPage.Forms.getByName("Formularname")
REM Die nächsten Zeilen sinngemäß ergänzen, es gibt bestimmt auch noch
eine Variante ohne Formularfeld an den Honorar/Fahrkosten/MwST%-Wert zu
kommen, aber die fällt mir gerade nicht ein.
honorar = oForm.getByName("fHonorar").boundField.getFloat();
fahrkosten = ...
mwstprozent = ...
mwst = (honorar + fahrkosten) * mwstprozent
oForm.getByName("Elementname").boundField.updateFloat(mwst)

und weist es dem Formularereignis "beim Laden" und "Datensatzwechsel"
zu. (evtl. kannst du "beim Laden" auch weg lassen.)

Ich kann es hier leider gerade nicht testen, beim Problemen kannst du
auch mal in http://www.oooforum.org (Englisch) gucken.

Für b) eigentlich ganz ähnlich, nur dass du das boundField for
updateFloat weglässt und ggf. kein updateFloat existiert, dann müsstest
du nach String umwandeln und die Methode updateString verwenden.

Hat jemand eine andere Idee, wie man ein Feld (nur lesen) mit
berechneten Werten in OOo erzeugen kann?
Ansonsten wäre dies vielleicht ein Feature Request wert, in Access ist
sowas wirklich ganz easy. Jedenfalls für Berichte.

Mit freundlichen Grüßen,
  Michael Braun

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an