BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Berechnete Felder: Quelle und Ergebniss beides in die Datenbanktabelle

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
ogan
Beiträge: 20
Registriert: Mi 15. Jul 2020, 11:31

Berechnete Felder: Quelle und Ergebniss beides in die Datenbanktabelle

Beitrag von ogan » Di 21. Jul 2020, 10:45

Hallo

Ein Beispiel: Im Formular habe ich (neben vielen anderen Feldern) jeweils ein Feld für Anzahl 1000er Noten, Anzahl 500er Noten, Anzahl 100er Noten. Diese werden eingegeben. Dann habe ich jeweils ein Betragfeld wo der Betrag ausgerechnet wurde Anzahl 1000er* 1000. Die ausgerechnete Summe möchte ich in der Datenbanktabelle haben womit das Formular verbunden ist, da ich das auch für weitere Berechnungen brauche. Das ausrechnen mache ich mit einem Makro. Soweit ich sehe muss ich die Anzahlfelder auch in die gleiche Tabelle in der Datenbank schreiben, da jedes Feld im Formular eine Datenquelle haben muss und das kann ja nur die Datenquelle von diesem Formular sein, da ich nicht mehrere Datenquellen mit dem gleichen Formular verbinden kann. Und ich muss mir ja auch die eingegebenen Werte merken. Auch wenn ich sage dass ich die berechneten Felder nicht in die Datenbank schreiben, will diese Felder brauchen ja auch eine Datenquelle. Gibt es einen Weg das anders zu machen ? Weil so ist das ja eine redundante Information in der Tabelle.

Gruss
ogan

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Berechnete Felder: Quelle und Ergebniss beides in die Datenbanktabelle

Beitrag von RobertG » Di 21. Jul 2020, 12:02

Hallo ogan,

erkläre doch bitte etwas einfacher, was Du erreichen willst. Ein kleines Beispiel bringt das schon. Berechnungen kannst Du grundsätzlich auch über Abfragen regeln. Wenn Du aber während der Eingabe in einem aktuellen Datensatz bereits das Ergebnis stehen haben willst, dann geht das nur über Makros.

Formularfelder benötigen keine Verbindung zur Datenbank, um das Ergebnis einer Berechnung anzuzeigen, die Du mit Makros erledigst.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

ogan
Beiträge: 20
Registriert: Mi 15. Jul 2020, 11:31

Re: Berechnete Felder: Quelle und Ergebniss beides in die Datenbanktabelle

Beitrag von ogan » Mi 22. Jul 2020, 08:51

Hallo Robert

Ich habe ein Feld anzah1000. Da gibt der Benutzer z.b. 2 ein. Dann habe ich ein Feld Betrag1000. Hier soll dann automatisch der Wert 2*1000 = 2000 hineinkommen. ( das ist nur ein Beispiel. Ich habe auch z.b. den Fall wo ein Feld die Summe von 3 anderen Feldern sein soll) Ich bin mir nicht ganz sicher, ich glaube ich will während der Eingabe in einem aktuellen Datensatz bereits das Ergebnis stehen haben. Oder spätestens wenn ich speichern drücke. Aber ich brauche das Feld Betrag1000 auch für die Berechnung von einem folgenden Feld was die Summe von mehreren Felder ist. Und ich will alle Werte immer sehen wenn ich über die Datensätze navigiere. Eine Frage ist soll ich die Felder anzah1000 und Betrag1000 in die gleiche Tabelle speichern. Kann ich es vermeiden z.b. die anzah1000 in die Datenbank zu speichern, aber dann kann ich es mir ja nicht merken, höchstens aus dem wert Betrag1000 wieder reproduzieren.

Du sagst Formularfelder brauchen keine Verbindung zur Datenbank um das Ergebnis einer Berechnung anzuzeigen das ich mit Makros erledige: Mit was muss ich dann das Formularfeld verbinden. Unter Eigenschaften Daten muss ich ja eine Datenquelle eingeben. Wenn nicht bekomme ich ein Fehler in dem Makro wenn ich auf das Formularfeld zum Schreiben oder Lesen zugreife.

Gruss
Ogan

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Berechnete Felder: Quelle und Ergebniss beides in die Datenbanktabelle

Beitrag von RobertG » Mi 22. Jul 2020, 10:51

Hallo Ogan,

grundsätzlich noch einmal: Berechnungen gehören nicht als fester Wert in eine Tabelle. Die werden über Abfragen durchgeführt. Sonst hast Du nur scheinbar voneinander abhängige Felder. Du könntest dann den Ursprungswert ändern aber die berechneten Werte nicht. Der Multiplikationswert z.B. gehört in die Abfrage. Und wenn der sich eventuell noch ändert, dann in eine Tabelle wie "Einstellungen".

Du musst das Formularfeld mit nichts verbinden. Vermutlich versuchst Du nicht das Formularfeld auszulesen und den Wert des Feldes zu ändern, sonder über das bound.field das damit verbundene Datenbankfeld. Das geht natürlich nur, wenn da ein Datenbankfeld dran hängt. Wenn Du direkt das Felkd mit "Text" oder "Value" oder "CurrentValue" ausliest, dann passt das schon.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

ogan
Beiträge: 20
Registriert: Mi 15. Jul 2020, 11:31

Re: Berechnete Felder: Quelle und Ergebniss beides in die Datenbanktabelle

Beitrag von ogan » Mi 22. Jul 2020, 13:34

Hallo Robert

ich habe ein Makro beispiel wo ein Feld aus 2 anderen berechnet wird. (Habe es übrigens nach dem Handbuch
Beispiel_Direktberechnung_im Formular.odb gemacht mit dem unterschied dass ich anstatt einer Abfrage mit einer Tabelle verbinde)

oFeldBargeldAbend.BoundField.UpdateDouble(oFeldBestandAktuell.getCurrentValue - oFeldTresorAbgang.getCurrentValue)

wenn die Formularfelder nicht mit einer Quelle verbunden sind was muss ich da z.b anstatt BoundField.UpdateDouble schreiben. Habs mit nur UpdateDouble probiert da kommt eine Fehlermeldung. Mit Value gibts auch eine Fehlermeldung. Mit CurrentValue gibts keine Fehlermeldung aber es passiert nichts.

Gruss
Ogan

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Berechnete Felder: Quelle und Ergebniss beides in die Datenbanktabelle

Beitrag von RobertG » Mi 22. Jul 2020, 14:55

Hallo Ogan,

BoundField geht natürlich nicht, weil da kein Feld hinter sitzt. Wie wäre es mit "Text". "Value" dürfte bei einem numerischen Feld keine Fehlermeldung ergeben. Schau einmal nach, wie die Meldung genau lautet.

Ich überprüfe immer mit xray, welche Eigenschaften da verfügbar sind. Und Text ist eine der Standardeigenschaften für das, was auf der Benutzeroberfläche erscheint.

In der Beispieldatenbank ist das ganz bewusst eine Abfrage, auf die sich das Formular bezieht. Der GUI macht das nichts aus, dass die Felder, die sie anscheinend mit UpdateDouble beschreibt, gar nicht tatsächlich existieren. In der Abfrage werden dort abhängig von dem Feld "Preis" und dem Feld "Anzahl" gleich mehrere Rechnungen durchgeführt. Die Ergebnisse aus Abfrage und Makro sind da identisch.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

ogan
Beiträge: 20
Registriert: Mi 15. Jul 2020, 11:31

Re: Berechnete Felder: Quelle und Ergebniss beides in die Datenbanktabelle

Beitrag von ogan » Mo 27. Jul 2020, 08:49

Hallo Robert

Habe es mit Text versucht, es gibt keine Fehlermeldung aber es passiert auch nichts.

Habe es mit XRay installiert. Am ersten Tag hat es einwandfrei funktioniert. Am zweiten Tag waren unter XRay plötzlich die Makros nicht mehr sichtbar. Und es kam eine Fehlermeldung bezüglich dem basic Verzeichniss unter user weiss nicht mehr genau wie es lautete. Habe das XRay vereichniss unter user/basic gelöscht und neu installiert. Es kam eine Fehlermeldung bezüglich dem Modul4 und es waren auch keine Makro unter Modul4. Nach mehrmaligem wiederholen des Vorgangs und neustart des Rechners habe ich es hingekriegt das XRay ohne Fehlermeldung installiert wurde und die Makros auch da waren. Jetzt habe ich das folgende Problem: wenn ich mit XRay ein objekt inspiziere sehe ich alle Eigenschaften. Wenn ich aber auf einen der eigenschaften klicke kommt die Fehlermeldung :

Basic Laufzeitfehler
Objektvariable ist nicht belegt.
in der Funktion isControlEnabled
in der Zeile isControlEnabled = k.isEnabled

das ist vorher gegangen. Auch wenn ich einstellungen wähle passiert das gleiche. Es ist sehr mühsam.

Hattest du auch probleme mit XRay oder funktioniert das bei dir immer einwandfrei ?

Gruss
Ogan

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten