🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst]Differenz mit Feldwert aus vorigem Datensatz berechnen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von RobertG » Mo 27. Dez 2021, 21:17

Hallo Falke,

zur Datenquelle für Bericht:
Ich nutze da grundsätzlich Ansichten. Darin kann ich die gleichen Inhalte Darstellen und der ReportBuilder hat keine Probleme beim Deuten des SQL-Codes, da ihm der Inhalt wie eine Tabelle von der Datenbank präsentiert wird. Liegt vermutlich nur zum Teil an Deiner Abfrage, dass das Ganze dem ReportBuilder sonst Probleme bereitet.

zu den Bereichen:
Die Bereiche in Deinem Screenshot können nicht anders angeordnet werden. Das einzige, was durch andere Gruppierung verschoben werden kann sind die Köpfe für jede Gruppe (blau). Seitenkopf und Seitenfuß stehen wie bei jeder Seite als Kopfzeilen und Fußzeilen zur Verfügung. Da das Berichtsmodul keine verschiedenen Seitenformate zur Verfügung stellt sind Kopf- und Fußzeile auf allen Seiten gleich. Der Berichtskopf ist das erste Element im Bericht, der Berichtsfuß das letzte Element. Die Gruppierung schließt den Bereich "Detail" ein. Hier kannst Du den Gruppenkopf oder den Gruppenfuß oder beide nutzen.

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

Falke5179
Beiträge: 17
Registriert: Fr 17. Dez 2021, 18:25

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von Falke5179 » Mi 5. Jan 2022, 16:29

Hallo RobertG,

danke für deine Hilfe.
Das mit der Gruppierung hat funktioniert.

Gibt es in einer Ansicht die Möglichkeit berechnete Felder im 1. Datensatz mit "0" zu füllen um in der Spalte Summen zu bilden.
Habe es mit " Update " versucht, jedoch ohne Erfolg.
Fahrtenbuch.png
Fahrtenbuch.png (38.57 KiB) 3162 mal betrachtet
Ich habe eine Datenbank " KFZ-Verbrauch-Ohne-Tachostand " erstellt um dieses Problem zu umgehen.
Ich würde aber lieber die Datenbank " KFZ-Verbrauch-Tachostand " verwenden wenn es eine Möglichkeit gibt nur die berechneten Felder im 1. Datensatz auf "0" zu setzen.
Beide Datenbänke im Anhang zur Einsicht.
Dateianhänge
KFZ-Verbrauch.zip
(120.21 KiB) 122-mal heruntergeladen

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von RobertG » Mi 5. Jan 2022, 17:16

Hallo Falke,

Du kannst in "Ansicht_Fahrtenbuch" z.B. statt

Code: Alles auswählen

"b"."Tageskilometer"

Code: Alles auswählen

IFNULL("b"."Tageskilometer",0) AS "Tageskilometer"
oder, auch übertragbar auf eine interne Firebird-Datenbank

Code: Alles auswählen

COALESCE("b"."Tageskilometer",0) AS "Tageskilometer"
einsetzen. Da wird dann einfach, wenn das Ergebnis der Abfrage leer ist, stattdessen eine 0 eingesetzt.

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

Falke5179
Beiträge: 17
Registriert: Fr 17. Dez 2021, 18:25

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von Falke5179 » Do 6. Jan 2022, 20:47

Hallo RobertG,

der Befehl IFNULL in der View aus welcher der Bericht erstellt wird hat funktioniert.
Leere Felder werden zu "0".

Nun beschäftige ich mich mit dem Berichts Navigator.
Funktionen erstellen funktioniert , jedoch nach dem Verlassen des Berichts Navigator und erstellen eines Textfeldes stürzt LibreOffice ab.
Ist das ein Bug oder eine Fehlbedienung beim Erstellen der Funktion.
Manchmal stürzt es schon beim Schließen des Berichts Navigators ab.
Bericht-Designer.png
Bericht-Designer.png (33.48 KiB) 3129 mal betrachtet
Muss man den Text von berechneten Feldern für nachfolgende Berechnungen manuell eingeben oder sind sie im Berichtsnavigator wählbar.
Bei mir werden nur die Tabellenfelder angezeigt. z.B. L , B , H ,Volumen

Danke für die Unterstüzung.

MfG
Falke5179

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von RobertG » Fr 7. Jan 2022, 09:41

Hallo Falke,

die Berechnungen gehören nicht in den Seitenfuß. Schau einmal über Ansicht → Sortierung und Gruppierung. Da siehst Du Deine bisherige Gruppierung und dort ist nur der Gruppenkopf eingeschaltet. Lass Dir auch den Gruppenfuß anzeigen.

Alternativ, wenn also die Berechnung nicht für die Gruppe, sondern für den ganzen Bericht sein soll: Bearbeiten → Berichtskopf/Berichtsfuß einfügen und die Berechnungen im Berichtsfuß machen.

Der Seitenfuß ist das, was im Writer die Fußzeile ist. Dort kannst Du nur Seitenzahlen anzeigen lassen oder immer den gleichen Inhalt. Nicht aber irgendeine Funktion ausführen. Selbst die Datenbankfelder werden dort nicht angezeigt. Denn: Für welches Feld sollte sich der Bericht entscheiden: Für das erste Feld, das letzte Feld auf der Seite …

Der ReportBilder ist der instabilste Teil von Base. Ich erstelle Berichte immer so, dass ich nach wichtigen Änderungen den Bericht abspeichere, bei geöffnetem Bericht ins Base-Fenster wechsele und dort auch noch einmal abspeichere. Dann geht die Änderung nicht verloren.

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

Falke5179
Beiträge: 17
Registriert: Fr 17. Dez 2021, 18:25

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von Falke5179 » Fr 7. Jan 2022, 14:32

Hallo RoberG,

ich habe die Funktionen nun im Berichtsfuß getestet.
Erstellen neuer Funktion für Bericht funktioniert.
BerichtsNavigator nicht schließen und neues Textfeld mit der neuen Funktion erstellen funktioniert.
Solange ich den BerichtsNavigator nicht schließe kann ich weitere Textfelder mit verschiedenen Funktionen erstellen.
Wenn ich wie du beschrieben hast Bericht und Datenbank speichere bleibt alles erhalten.
Sobald ich den BerichtsNavigator schließe hängt LibreOffice.
Ich denke daß das Schließen des BerichtsNavigator den Fehler verursacht.

Meine umständliche Vorgehensweise ist jetzt Funktionen erstellen beides abspeichern bevor der BerichtsNavigator geschlossen wird , LibreOffice beenden und neu starten um den Absturz zu vermeiden.

MfG
Falke5179

Falke5179
Beiträge: 17
Registriert: Fr 17. Dez 2021, 18:25

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von Falke5179 » Fr 21. Jan 2022, 19:10

Hallo RobertG,

gibt es in Libre Base einen Sql Formater um aus einer Zeile einen etwas leichter zu lesenden Code zu generieren.
Im Anhang ein Beispiel mit einem Online Formater.
SQL Formatter.png
SQL Formatter.png (10.61 KiB) 3030 mal betrachtet
Für einen Anfänger ist es wesentlich einfacher einen formatierten Code zu lesen und zu verstehen als wenn er fortlaufend in einer Zeile ist.

Besten Dank im voraus.

MfG Falke5179

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von RobertG » Fr 21. Jan 2022, 19:25

Nein, in Base ist so eine Formatierung nur per Hand möglich. Sie lässt sich dann auch nur speichern, wenn Du das ganze als direkten SQL-Code speicherst. Dann ist die Abfrage aber nicht anschließend noch mit Daten befüllbar.

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

Falke5179
Beiträge: 17
Registriert: Fr 17. Dez 2021, 18:25

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von Falke5179 » Mi 2. Mär 2022, 16:12

Hallo RobertG,

habe mich nun mit Filtern beschäftigt.(Im Anhang die Übungsdatenbank " LehrerFach.odb " und der verwendete SQL-Code" LehrerFach_SQL.txt " )
Nun meine Frage gibt es in Libre Base Filterfunktionen oder (Plugins) wie in Libre Calc oder Access ? (Siehe Bild aus Libre Calc)
FilterLibreCalc.jpg
FilterLibreCalc.jpg (21.17 KiB) 2818 mal betrachtet
Oder gibt es einfachere Lösungen als ich es gemacht habe. (Schueler_ohne_Unterformular_COALESCE und Schueler_ohne_Unterformular_ISNULL )
Bei mehreren Projekten ist es dann immer derselbe Aufwand.
Ein Fenster wie in Libre Calc ist eine große Hilfe.
Besten Dank im voraus.
MfG Falke 5179
Dateianhänge
LehrerFach.zip
(35.24 KiB) 100-mal heruntergeladen

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Differenz mit Feldwert aus vorigem Datensatz berechnen

Beitrag von RobertG » Mi 2. Mär 2022, 16:26

Hallo Falke,

irgendwie passt das so gar nicht mehr zum Thread, aber: Filtermöglichkeiten hast Du in Base natürlich, nur eben anders strukturiert. Wenn Du in die Tabellen gehst und den Autofilter in ein gewünschtest Feld setzt, dann auf "Filtern" gehst, erhältst Du alle Datensätze mit gleichem Inhalt. Dann ist da noch der einstellbarer Filter, die Parameterabfrage oder die Nutzung von separaten Filtertabellen. Die letzte Variante nutze ich in der Hauptsache, da ich Suchen und Filtern nur im Formular mache.

Schau Dir doch einfach zum Suchen und Filtern einmal die Möglichkeiten im Handbuch an. Die Zugänge dazu sind allerdings deutlich anders als unter Calc.

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


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten