Rechnen mit Writer unter Basedaten

Das Textverarbeitungsprogramm

Moderator: Moderatoren

nullfreizeit
**
Beiträge: 47
Registriert: Mi, 01.02.2006 12:11
Wohnort: OO 2.2.0

Rechnen mit Writer unter Basedaten

Beitrag von nullfreizeit »

Hallo zusammen,

ich kann es mir immer noch nicht erklären und hoffe auf eure Hilfe oder zumindest Tipps zur Problembeseitigung. Ich habe mit Base eine wunderschöne Datenbank mit Mieterdaten (Wohnungnummer, Adresse, m² usw.) und eine mit Gesamtnebenkosten (Grundsteuer, Wasser, Abwasser, Heizung usw.). In einem Writer-Dokument soll nun die Nebenkostenabrechnung mit diversen Verteilerschlüsseln berechnet werden.

Dazu habe ich eine Abfrage die mir die Anschrift und die Daten der Wohnfläche usw. in das Dokument schreibt. Sowas wie "m²" kommt in eine Writer-Tabelle, so dass ich damit später rechnen kann.

In einer 2. Abfrage kommen die Gesamtnebenkosten ins Dokument, auch kein Problem, macht er ohne murren, NUR kann er scheinbar nun nicht mehr rechnen (siehe Screen).

Bevor das Datenfeld gefüllt wird kommt die Meldung "Fehlerhafter Ausdruck" und wenn ich es fülle kommt eine Zahl die vorne und hinten nicht mehr stimmt. Meine Frage, kann Writer mit Datenbankfeldern überhaupt rechnen und wenn ja wie?

Bild

Zur Info: In <Tabelle5.B1> steht "520,00" (Gesamtqm), <Tabelle8.B2> "50,20" (Wohnungsqm) und <Tabelle7.E2> "356" (Abrechnungstage). <D2> sind die eingefügten "1743,12"
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Re: Rechnen mit Writer unter Basedaten

Beitrag von Eia »

nullfreizeit hat geschrieben:Meine Frage, kann Writer mit Datenbankfeldern überhaupt rechnen und wenn ja wie?
Es gibt verschiedene Varianten, im writer zu rechnen. Bei der Variante, die Du wählst - "Tabellenfunktion Rechnen" (F2) - rechnet das Programm nicht mit Datenbankfeldern. Es rechnet einfach mit den Zellinhalten, egal wie die zustandekommen, ob per Serienbrieffeld eingefügt oder von Hand eingegeben.
Ich habe auch schon explizit als "Zeichenformat" formatierte Zahlen in eine Tabelle übernommen, überprüft, dass in Tabelle/Zahlenformat auch "Text" eingestellt war und trotzdem hat eine Summen-Funktion über die betroffenen Zeilen ein richtiges Ergebnis geliefert. Allerdings muss grundsätzlich unter Extras/Optionen/OpenOffice writer/Tabellen die Zahlenerkennung aktiviert sein. Das linksgestellte Gesamtkosten-Feld deutet darauf hin, dass das nicht der Fall ist. Wenn doch, solltest Du - vor dem Übernehmen der Daten - in der Ergebniszelle unter Tabelle/Zahlenformat überprüfen, ob ein Zahlenformat eingestellt ist.

Ich denke auch, ich würde eher versuchen, das Ganze mit Base zu lösen und höchstens die fertige berechneten Werte in den writer zu übernehmen. Du kannst ja in einer Base-Abfrage Tabellen verknüpfen und dort Ergebnisfelder definieren. So richtig viel Erfahrung muss ich aber ehrlicherweise sagen, habe ich auch nicht dazu. Aber bei diesem Aufbau glaube ich, dass es sich lohnen würde, sich in Base einzuarbeiten. Es gibt auch ein Buch von Thomas Krumbein speziell dazu.
mfG
nullfreizeit
**
Beiträge: 47
Registriert: Mi, 01.02.2006 12:11
Wohnort: OO 2.2.0

Beitrag von nullfreizeit »

Hallo wieder mal Eia :wink: ,

unter Extras/Optionen/OpenOffice writer/Tabellen steht unter Eingabe in Tabellen "Zahlenerkennung", "Zahlenformaterkennung" und "Ausrichtung" als aktiviert.

Du hattest recht, dummerweise hatte ich unter Tabelle/Zahlenformat "Text" ausgewählt, aber auch wenn ich da "Zahl" auswähle rechnet er die 15.333,15 € wo eigentlich 115,33 € hinsollte. Durch 100 teilen ist aber keine alternative, da ich wenn ich eine zweite Zelle mit einem Datenfeld in die Formel einbringe noch verwirrendere Zaheln erhalte.

Die Idee mit Base komplett die Zahlen auszurechnen ist mir auch schon gekommen, aber wie arbeite ich mit zwei Tabellen in einer Abfrage.

Hier im Beispiel muss ich aus der Tabelle "Gesamtnebenkosten" das Feld "01_grundst" nehmen. Aus der Tabelle "Mieter" die Felder "qm" (Einzel), "objektqm" (Gesamt) und "abrechnungvon" und "abrechnungbis"

((("01_grundst"/"objektqm")*"qm")/365) * Differenz in Tagen von "abrechnungvon" und "abrechnungbis"
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Beitrag von Eia »

Ich schreib mal auf, wie ich es in Erinnerung habe, habe hier grad keine DB-Dateien. Die Tabellen müssen sich in der gleichen Datenbank befinden. Dann öffnest Du die Datenbank, den Bereich "Abfragen". Du erstellst eine neue Abfrage, z.B. im Entwurfsmodus. Da kannst Du ja dann mehrere Tabellen auswählen. du verbindest sie, indem Du die Schlüsselfelder per Ziehen mit der Maus von einer zur anderen Tabelle zur anderen verbindest.
Ein Rechenfeld erstellst Du, indem Du dort, wo Du normalerweise die Feldnamen einfügst, einfach die Formel schreibst.

Eine Einführung zu Base findest Du hier.
Eine Seite zum Thema "eins-zu-viele-Beziehung", die bei Dir vermutlich zutrifft, findest Du hier

Und vielleicht findest Du beim Stöbern im Forum "Base" auch noch Hinweise.
nullfreizeit
**
Beiträge: 47
Registriert: Mi, 01.02.2006 12:11
Wohnort: OO 2.2.0

Beitrag von nullfreizeit »

Hi Eia,

werde es mal probieren, allerdings weiß ich nicht ob ich die Differenz in Tagen auch einfach durch "DATUMBIS" - "DATUMVON" hinbekomme. Aber ich werde es sehen und bei Problemen hier nachfragen. Danke schonmal für die Anregungen! :idea:
nullfreizeit
**
Beiträge: 47
Registriert: Mi, 01.02.2006 12:11
Wohnort: OO 2.2.0

Beitrag von nullfreizeit »

Leider wie ich vermutet hatte.

Wenn ich 31.12.06 - (Minus) 01.01.06 rechnen will kommt "Wrong Data Type". Wie kann ich dennoch die Differenz in Tagen taggenau errechnen?
nullfreizeit
**
Beiträge: 47
Registriert: Mi, 01.02.2006 12:11
Wohnort: OO 2.2.0

Beitrag von nullfreizeit »

Huch und noch ein Problem was ich nicht lösen kann.

Ich habe die Formel mal abgekürzt um das Problem besser zu sehen.

Das ist das Beispiel:
("Nebenkosten"."01_grundst"/"Mieter"."objektqm") AS "pos_01"

1743,12 / 826,59 = 2,11

Im Taschenrechner und richtigerweise sollte es aber 2,108808478 ergeben. Nur wie sage ich Base das er die Nachkommastellen peinlichst berücksichtigen soll. Denn es ist ein großer Unterschied ob ich später 2,11 oder 2,108808478 mit bspw. 80,20 multipliziere. Immerhin bis zu 10 cent unterschied!
berndkli
*****
Beiträge: 289
Registriert: Di, 12.04.2005 22:05

Beitrag von berndkli »

Hallo
Wie kann ich dennoch die Differenz in Tagen taggenau errechnen?
Das geht mit der Funktion Datediff
Schreibe in einer Abfrage in die Zeile Feld

Code: Alles auswählen

Datediff('dd', "DATUMVON", "DATUMBIS")
Achte auf die unterschiedlichen Hochkommas.

Nur wie sage ich Base das er die Nachkommastellen peinlichst berücksichtigen soll.
Base berücksichtigt die Nachkommastellen, zeigt sie aber in der Standard Spaltenformatierung nicht an.
Klicke in den Spaltenkopf => Spaltenformatierung und ändere die Anzahl Nachkommastellen.

Gruss Bernd
Eddy
********
Beiträge: 2781
Registriert: So, 02.10.2005 10:14

Beitrag von Eddy »

Hallo nullfreizeit,
Im Taschenrechner und richtigerweise sollte es aber 2,108808478 ergeben. Nur wie sage ich Base das er die Nachkommastellen peinlichst berücksichtigen soll. Denn es ist ein großer Unterschied ob ich später 2,11 oder 2,108808478 mit bspw. 80,20 multipliziere. Immerhin bis zu 10 cent unterschied!
es macht auch Sinn, mal in die OO-Hilfe zu schauen. Wenn Du dort das Wort genau eingibst, erhältst Du Hilfe zu Deinem Problem.

Mit österlichen Grüßen

Eddy
nullfreizeit
**
Beiträge: 47
Registriert: Mi, 01.02.2006 12:11
Wohnort: OO 2.2.0

Beitrag von nullfreizeit »

Hallo berndkli, Hallo Eddi,

leider funktioniert das mit den Nachkommastellen auch nicht. Er gibt mir wenn ich vier Nachkommastellen eingebe 2,1100 aus und ich muss bei jeder neuen Abfrage mit zwei Parametern wieder die Formatierung ändern!?!

@Eddi: In der Hilfe steht:
Nachkommastellen
Legen Sie fest, wie viele Dezimalstellen angezeigt werden sollen.

Zum Thema auf- und abrunden hat er nix anzubieten. Nur zum Thema "runden" aber nicht im Bereich Mathe sondern Zeichnen

Das Hilft mir also nicht wirklich weiter, oder du meintest etwas anderes.
Eddy
********
Beiträge: 2781
Registriert: So, 02.10.2005 10:14

Beitrag von Eddy »

Hallo nullfreizeit,

vielleicht solltest Du überlegen, ob sich der Writer für Deine Nebenkostenabrechnung eignet. Trotz allen Rechenfunktionen bleibt er eine Textverarbeitung. Möglicherweise lässt sich Deine Nebenkostenabrechnung in Calc besser verwirklichen.

Zu den Nachkommastellen / Runden:
Im Taschenrechner und richtigerweise sollte es aber 2,108808478 ergeben
Wieso ist Dieser Wert richtig? Bei 14 Nachkommastellen bekomme ich 2,10880847820564 heraus. Wer damit rechnet, bekommt wieder andere Werte. Es reduziert sich hier alles auf die Frage, wann wird gerundet, was ist im Kaufmännischen üblich? Erst wenn das geklärt ist, solltest Du Dir Gedanken machen, wie Du die Genauigkeit in OO bekommst.


Mit nachkommalosen Grüßen

Eddy
berndkli
*****
Beiträge: 289
Registriert: Di, 12.04.2005 22:05

Beitrag von berndkli »

Hallo
Er gibt mir wenn ich vier Nachkommastellen eingebe 2,1100 aus
In der Spaltendefinition der Datentabelle muss auch die entsprechende Anzahl Nachkommastellen eingestellt sein.



Gruss Bernd
nullfreizeit
**
Beiträge: 47
Registriert: Mi, 01.02.2006 12:11
Wohnort: OO 2.2.0

Beitrag von nullfreizeit »

Hallo Eddi,

also als Beispiel: (1734,12/826,59)*95,20 sollte 199,72 ergeben, Base rechnet allerdings 200,87 (in meiner Abfrage "pos_01" genannt)! Das sollte Base schon können.
Calc ist da keine Lösung! Mit Calc kann man rechnen aber keine Rechnung erstellen das wäre keine schöne Angelegenheit.

Code: Alles auswählen

SELECT "Mieter"."objektnr", "Mieter"."qm", "Mieter"."objektqm", "Mieter"."abrv", "Mieter"."abrb", "Nebenkosten"."01_grundst", (( "Nebenkosten"."01_grundst" / "Mieter"."objektqm" )* "Mieter"."qm") AS "pos_01" FROM "Mieter", "Nebenkosten" WHERE ( ( "Mieter"."objektnr" = :ObjektNr AND "Nebenkosten"."objekt" = :Objekt ) )
Hallo berndkli,

ich habe bei allen verwendeten Variabeln von "pos_01" "Zahl" also "numeric" mit 2 Nachkommastellen eingestellt, das durfte kein Problem ergeben, oder?
berndkli
*****
Beiträge: 289
Registriert: Di, 12.04.2005 22:05

Beitrag von berndkli »

Hallo

Wenn du in den numerischen Tabellenfeldern nur 2 Nachkommastellen einstellst hast du das schon von dir beschriebene Problem in der Abfrage
Er gibt mir wenn ich vier Nachkommastellen eingebe 2,1100 aus

Wenn du also in der Abfrage die 2,1088 sehen willst, musst du auch deine numerischen Tabellenfelder auf 4 Nachkommastellen (oder je nach gewünschter Genauigkeit entsprechend höher) setzen.
Base rechnet mit der Genauigkeit der in der Spalten (Feld-) Definition der Datentabelle eingestellten Nachkommastellen.



Gruss Bernd
nullfreizeit
**
Beiträge: 47
Registriert: Mi, 01.02.2006 12:11
Wohnort: OO 2.2.0

Beitrag von nullfreizeit »

Uff, ich danke dir. Das ist aber irgendwie ganz schön eigensinnig. :shock:

Mal ne Frage, wie bekomme ich denn überhaupt hin, dass Base kaufmännisch richtig rechnet?
Antworten