Jährliches Hinzufügen eines Datums

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Jährliches Hinzufügen eines Datums

Re: Jährliches Hinzufügen eines Datums

von RobertG » Mi, 22.01.2014 13:29

Hallo Steffi,

prinzipiell sind die Dateien zwischen den verschiedenen Office-Versionen austauschbar. Du kannst also von OpenOffice nach ApacheOpenOffice und nach LibreOffice wechseln. Schließlich sehe ich hier ja auch den kompletten Inhalt dessen, was Du als *.odb-Datei raus schickst.
LibreOffice hat eine in meinen Augen etwas hastige Entwicklungsstruktur. Da werden sehr viele neue Funktionen hineingepackt, die vielleicht manchmal auch nicht so ganz ausgereift sind. So schnitt LO von der Stabilität her in einem Vergleichtest zu AOO vor kurzem in der ct wohl nicht so gut ab.
Ich persönlich merke davon nichts - liegt vielleicht daran, dass ich die entsprechenden Funktionalitäten gar nicht nutze. Gerade bei dem Bericht, den Du da hast, kann ich aber sehen, dass da eben in LO Bugs behoben wurden, die in AOO noch existieren. NaN taucht bei mir bei den neueren LO-Versionen in Deinem Bericht nicht mehr auf, wenn ein Zahlenfeld leer ist. So etwas müsste auch irgendwie anders regelbar sein - aber eben nur auf Umwegen.

Gruß

Robert

Re: Jährliches Hinzufügen eines Datums

von S_teffi » Mi, 22.01.2014 12:49

Hey Robert,

ja genau, ich arbeite mit Open Office von Apache - als ich im Dezember angefangen hatte, war mir nicht bewusst, dass es da verschiedene Versionen gibt. Hab nur im Laufe der Zeit gemerkt, dass es viel ausführlichere Dokumentationen zu LOO gibt, die sich aber prinzipiell mit AOO ähneln - aber wo der Unterschied zwischen AOO und LOO genau liegt, hab ich nicht verstanden.
Also kann man sagen, dass LOO verbreiteter und fortgeschrittener ist?
Kann ich jetzt noch auf LOO umsteigen, sodass meine DB dort genauso ohne Fehler funktioniert? Oder müsste man in LOO nochmal alles (Tabellen, Formulare, Berichte, Abfragen) neu anlegen?

Hab das mit der View auch mal probiert, aber bei mir tritt der gleiche NaN Fehler auf.. dann lass ich die Sortierung lieber weg, war eh nicht sooo wichtig - wär nur ein kleiner Schönheitsfehler gewesen, der aber nicht weiter dramatisch ist.

Liebe Grüße und danke für deine Mühen (:

Re: Jährliches Hinzufügen eines Datums

von RobertG » Di, 21.01.2014 19:20

Hallo Steffi,

ich habe das jetzt noch einmal mit Deiner DB getestet und auch die Zwischensummen korrekt erstellt. Zuerst konnte ich Dein Problem nicht nachvollziehen, da ich mit LibreOffice arbeite. Bei einer älteren Version von LO (3.3.4) trat aber der Fehler auf, den Du benannt hast. Der ist in LO schon lange behoben. Du nutzt vermutlich AOO?
Umgehen lässt sich der Fehlern indem beim Bericht "SQL analysieren" ausgestellt wird. Nur bringt Dich das auch nicht weiter.
Weitere Möglichkeit, das zu umgehen: Mache aus der Abfrage eine Ansicht (rechte Maustaste über der Abfrage - Ansicht erstellen - Namen vergeben (darf nicht so lauten wie eine Tabelle oder eine Abfrage)). Beziehe dann den Inhalt des Berichtes auf die Ansicht.
Das habe ich einmal unten gemacht, da dann der Bericht auch unter LO 3.3.4 funktioniert - allerdings mit einem weiteren kleinen Bug in der ersten Gruppe, da dort kein ZahlenWert sin einem Feld steht wird dort bei mir NaN angezeigt - das ist in neueren LO-Versionen auch raus.

Gruß

Robert
Dateianhänge
BeispielDB_JahresAB(3).odb
(233.8 KiB) 63-mal heruntergeladen

Re: Jährliches Hinzufügen eines Datums

von S_teffi » Di, 21.01.2014 11:26

Hallo Robert,

habs mal so gemacht wie du gesagt hast, aber der kommt mit meinem Attribut "Kundenname" einfach nicht zurecht. Es kommt immer wieder folgende Fehlermeldung: "Beim Erstellen des Berichts trat ein Fehler auf."
Ich lad es nochmal mit hoch - du siehst es im Bericht "Bericht_ohneParameterabfrage_test".

Liebe Grüße, Steffi (:
Dateianhänge
BeispielDB_JahresAB.odb
(234.3 KiB) 65-mal heruntergeladen

Re: Jährliches Hinzufügen eines Datums

von RobertG » Mo, 20.01.2014 09:49

Hallo Steffi,
S_teffi hat geschrieben: Hm, also bei der Gruppierung gruppiere ich anstatt nach dem Kundennamen, nach der Kunden_ID.. da sobald ich nach Kundenname gruppiert habe, immer ein Fehler bei der Berichterstellung aufgetreten ist. Dementsprechend kann ich nach dem Namen auch nicht sortieren.
Welcher Fehler ist aufgetreten? Hattest Du gleiche Namen? Unter der Voraussetzung:
Oberste Gruppe "Kundenname", darunterliegend "Kunden_ID" (ist auf jeden Fall eindeutig). Dann hast Du die Soprtierung nach den Namen und bei gleichen Namen die Sortierung nach der ID.

Gruß

Robert

Re: Jährliches Hinzufügen eines Datums

von S_teffi » Mo, 20.01.2014 08:42

Hallo Robert,

vielen Dank!

Hm, also bei der Gruppierung gruppiere ich anstatt nach dem Kundennamen, nach der Kunden_ID.. da sobald ich nach Kundenname gruppiert habe, immer ein Fehler bei der Berichterstellung aufgetreten ist. Dementsprechend kann ich nach dem Namen auch nicht sortieren.

Dacht jetzt vielleicht es liegt an der Abfrage.. um Tabellen editierbar zu belassen, müssen ja auch stets alle ID's abgefragt werden - dachte hat damit vllt auch was zu tun, aber die Änderung der Abfrage hat auch nichts gebracht :/

Liebe Grüße, Steffi (:

Re: Jährliches Hinzufügen eines Datums

von RobertG » Mi, 15.01.2014 21:50

Hllo Steffi,
S_teffi hat geschrieben: Eine kleine Frage dazu hätte ich aber noch: In der Abfrage (qBericht_Abrechnung_Kunde_ohneParameterabfrage) sortiere ich nach Kundenname - aber irgendwie greift das ORDER BY im Bericht nicht - wisst ihr warum?
Die Sortierung wird im Bericht selbst vorgenommen. Wähle dazu eine entsprechende Gruppierung aus. Die bestimmt die Sortierreihenfolge.
S_teffi hat geschrieben:Ach und.. : eine direkte Tabellenerstellung geht nur, wenn man den Assistenten wählt oder? Hab bei mir jetzt alle Felder einzeln zu einer Tabelle zusammengeschoben, weil ich das in der normalen Entwurfsansicht einfach nicht gefunden hab.
Ich habe mit dem Assistenten nie groß etwas ausprobiert. Aber auch der Assistent nutzt nur die tatsächlichen Möglichkeiten des Report-Builders. Das bedeutet, dass er auch nur Felder zusammen stellt und keine Tabelle auf die Art vorbildet, wie es der Writer tut. Nachher ergibt sich daraus gegebenenfalls eine Tabelle.
S_teffi hat geschrieben: Beim Testen der Formulare ist mir dann leider noch was doofes bei der einfachen Summenbildung aufgefallen. Hier fange ich ja eigentlich mit der Methode IFNULL() leere Felder ab:

Code: Alles auswählen

( SELECT IFNULL( "TA_Farbe"."Farbe_Kosten", 0 ) + IFNULL( "TA_Form"."Form_Kosten", 0 ) FROM "TA_Farbe", "TA_Form" WHERE "TA_Farbe"."Farbe_ID" = "a"."Farbe_ID" AND "TA_Form"."Form_ID" = "a"."Form_ID" ) AS "Gesamtkosten"
Aber irgendwie kommt, sobald eines der Felder leer ist, bei der Gesamtsumme 0 raus.. kann mir irgendwie nicht erklären warum :(
Das liegt daran, dass die Bedingung von "Ta_Form"."Form_ID"="a"."Form_ID" nicht greifen kann, da diese Verbindung leer ist.
Du kannst das so lösen, dass Du einfach die vorher in der Abfrage bereits ermittelten Werte auf die gleiche Art noch einmal ermittelst und addierst:

Code: Alles auswählen

IFNULL(( SELECT "TA_Form"."Form_Kosten" FROM "TA_Form" WHERE "TA_Form"."Form_ID" = "a"."Form_ID" ),0)+IFNULL(( SELECT "TA_Farbe"."Farbe_Kosten" FROM "TA_Farbe" WHERE "TA_Farbe"."Farbe_ID" = "a"."Farbe_ID" ),0) AS "GesamtKosten"
Gruß

Robert

Re: Jährliches Hinzufügen eines Datums

von S_teffi » Mi, 15.01.2014 15:57

Hallo Robert, Hallo R,

vielen Dank für den Report Builder - Tipp, wusste nicht, dass es den gibt und damit alles viel individueller anzupassen ist, sobald man mit den ganzen Köpfen und Füßen durchgeblickt hat ;)

Hab es soweit hinbekommen wie ich wollte (siehe Bericht: Bericht_ohneParameterabfrage). Nur die Gesamtsumme stimmt in diesem Fall nicht. Hab für das Beispiel irgendwann aufgegeben, weil Open Office ständig abgestürzt ist, sobald ich den Geltungsbereich umstellen wollte, manchmal ists sogar schon beim einfachen Einstellen der Funktion auf "Summe" abgestürzt - keine Ahnung warum, ist aber auch egal, weil es im richtigen Dokument von mir funktioniert! (:
Eine kleine Frage dazu hätte ich aber noch: In der Abfrage (qBericht_Abrechnung_Kunde_ohneParameterabfrage) sortiere ich nach Kundenname - aber irgendwie greift das ORDER BY im Bericht nicht - wisst ihr warum?
Ach und.. : eine direkte Tabellenerstellung geht nur, wenn man den Assistenten wählt oder? Hab bei mir jetzt alle Felder einzeln zu einer Tabelle zusammengeschoben, weil ich das in der normalen Entwurfsansicht einfach nicht gefunden hab.

Beim Testen der Formulare ist mir dann leider noch was doofes bei der einfachen Summenbildung aufgefallen. Hier fange ich ja eigentlich mit der Methode IFNULL() leere Felder ab:

Code: Alles auswählen

( SELECT IFNULL( "TA_Farbe"."Farbe_Kosten", 0 ) + IFNULL( "TA_Form"."Form_Kosten", 0 ) FROM "TA_Farbe", "TA_Form" WHERE "TA_Farbe"."Farbe_ID" = "a"."Farbe_ID" AND "TA_Form"."Form_ID" = "a"."Form_ID" ) AS "Gesamtkosten"
Aber irgendwie kommt, sobald eines der Felder leer ist, bei der Gesamtsumme 0 raus.. kann mir irgendwie nicht erklären warum :(
(siehe Abfrage: Test)

Liebe Grüße und vielen Dank für eure Hilfe!
Dateianhänge
BeispielDB_JahresAB.odb
(187.9 KiB) 68-mal heruntergeladen

Re: Jährliches Hinzufügen eines Datums

von F3K Total » Mo, 13.01.2014 17:57

Hallo Steffi,
es geht alles, nur, ohne zu wissen, welche Art von Bericht du erstellen willst, ist es schwierig.
Also, was genau soll wie drauf, und wo willst Du den zu exportierenden Umfang einstellen (filtern)
Es ist z.B auch machbar, nach Datum zu filtern.
Bedenke, du brauchst keine Parameterabfrage, da du kein beschreibbares Abfrageergebnis benötigst, und, du kannst der Filtertabelle weitere Filterspalten, wie z.B "F_von" , "F_bis" zufügen, die du im Formular füllst um die Berichtsabfrage vorzubereiten.

Der Hinweis von Robert
RobertG hat geschrieben:... wenn Du nicht den Report-Builder nutzt ...
ist wichtig, ich habe noch keinen vernünftigen Bericht ohne die Oracle-Reportbuilder-Extension gesehen.
Ich empfehle dir die Extension zu installieren.

Gruß R

Re: Jährliches Hinzufügen eines Datums

von RobertG » Mo, 13.01.2014 16:49

Hallo Steffi,

was möchtest Du haben:
Einen Zähler, der im Bericht mitläuft (Zeilenzahl) für jede Gruppe? Die Gesamtzahl?
Funktionen in Abfragen gehen nur, wenn die anderen Werte der Abfrage gruppiert sind - das ist bei Deiner Abfrage nicht der Fall. Allerdings hast Du schon jede Menge korrelierende Unterabfragen drin. Da könntest Du auch das Zählen mit einer korrelierende Unterabfrage machen. Hierfür müsstest Du allerdings die gesamten Bedingungen der Abfrage auch in die korrelierende Unterabfrage übernehmen.

Allerdings kannst Du vermutlich einfacher im Bericht selbst zählen - allerdings nicht, wenn Du nicht den Report-Builder nutzt, wie ich gerade aus der Anlage ersehe.

Gruß

Robert

Re: Jährliches Hinzufügen eines Datums

von S_teffi » Mo, 13.01.2014 16:29

Falls es dazu eine simple, schnelle Variante gibt, wär ich sehr dankbar für die Lösung. Wenn es allerdings komplexer wird, dann reicht mir auch die bisherige Lösung bzw. das erste und letzte Abrechnungsdatum auszugeben.

Möchte im Bericht dann noch gerne die Anzahl der Datensätze angezeigt bekommen.
Hab versucht das in die Abfrage einzubauen, aber irgendwie werden nur Fehler geschmissen. Bei einer zusätzlichen korrelierenden Unterabfrage (( SELECT COUNT( * ) FROM "TA_Main" ) AS "Anzahl" ) klappt es, aber dann wird mir ja die Anzahl aller Datensätze der TA_Main ausgegeben, das möchte ich ja nicht. Sobald ich versuche ein COUNT (COUNT("a"."ID") AS "Anzahl") auf die "Haupttabelle" anzuwenden, kommt der Fehler: Not in aggregate function or group by clause: org.hsqldb.Expression@116dda1..

Hab ich da nur einen Aufruf-Fehler oder geht der Befehl generell nicht in diesem Fall?
Oder gibt es vllt sogar direkt in der Berichterstellung die Möglichkeit die Anzahl der Datensätze anzeigen zu lassen? Hab etwas vom Einbinden von Steuerelementen in LibreOffice gelesen, aber in Open Office nicht gefunden.

Ich lade nochmal die BeispielDB mit hoch, in der Abfrage: qBericht_Abrechnung_Count ist die nicht funktionierende COUNT-Version zu sehen.

Liebe Grüße, Steffi (:
Dateianhänge
BeispielDB_JahresAB.odb
(37.51 KiB) 62-mal heruntergeladen

Re: Jährliches Hinzufügen eines Datums

von S_teffi » Mo, 13.01.2014 07:29

Hey R,

an eine zweite Tabelle hatte ich gar nicht gedacht - super danke! (:
Problem wird dann nur der Berichtdruck werden - da bekommt man ja dann nicht alle Rechnungsdaten zum jeweiligen Datensatz in eine Ansicht/Tabelle oder geht das doch?

Liebe Grüße, Steffi (:

Re: Jährliches Hinzufügen eines Datums

von F3K Total » Fr, 10.01.2014 19:11

Hi,
habe deinen Vorschlag mal eingebaut.

Gruß R
Dateianhänge
BeispielDB_JahresAB.odb
(25.45 KiB) 74-mal heruntergeladen

Re: Jährliches Hinzufügen eines Datums

von S_teffi » Fr, 10.01.2014 18:30

Hallo Robert,

doch genau das möchte ich. Es soll wirklich für jedes Jahr das Rechnungsdatum gespeichert werden und das weiß man ja erst im jeweiligen Jahr. Also vom Prinzip her so wie in der Beispiel-Tabelle, nur ich dachte mir, dass das vielleicht eleganter geht. Deswegen dachte ich man könnte halt per Button immer die jeweilige Jahres-Spalte hinzufügen.

Hab jetzt vielleicht noch so überlegt eine Tabelle anzulegen:

ID (INT) - Primärschlüssel
Abrechnung_ID (INT) - Fremdschlüssel (mit Primärschlüssel aus ID in TA_Main verknüpft)
Abrechnungsdatum (DATE)

würde dann für 2 Datensätze für die Jahre 2014, 2015 in etwa so aussehen:
ID | Abrechnung_ID | Abrechnungsdatum
0 | 0 | 02.01.14
1 | 0 | 03.01.15
2 | 1 | 02.01.14
3 | 1 | 03.01.15

mit SELECT MAX() könnte man zumindest das letzte Abrechnungsdatum ausgeben wie man allerdings an die Daten zwischen MIN und MAX kommt und die dann auch in der Formular-Tabelle ein- und ausgeben kann, ist mir allerdings noch schleierhaft.

Liebe Grüße, Steffi (:

Re: Jährliches Hinzufügen eines Datums

von RobertG » Fr, 10.01.2014 17:22

Hallo Steffi,

ich verstehe überhaupt nicht, was die verschiedenen Felder bewirken sollen. Das Datum reicht doch als Eintrag aus, um das Jahr zu ermittelt. Du möchtest doch nicht im Datensatz A001 ein Datum für 2014, ein Datum für 2015, ein Datum für 2016 usw. eintragen, oder?

Gruß

Robert

Nach oben