Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Fehler beim Filtern im Bericht mit laufender Summe

Begonnen von ReneB, August 12, 2019, 11:50:10

⏪ vorheriges - nächstes ⏩

ReneB

Hallo mal wieder,

Unter Umständen kann hier jemand helfen. Bericht mit laufender Summe erstellt, funktioniert. Allerdings verliert der Bericht alle Daten beim filtern. Weiß jemand warum? Basis ist eine Abfrage, fals daß wichtig ist. Ich dachte immer beim filtern werden nicht benötige Daten nur ausgeblendet, hier scheint es aber, daß diese komplett verschwinden und dementsprechend die Berechnung nicht mehr stimmt.

Danke sehr.

Rene

MzKlMu

Hallo,
dass es eine Abfrage ist, ist unwichtig, wichtig wäre die Abfrage (SQL).

Wahrscheinlich liefert die Abfrage keine Daten. Wie wird denn der Filter gesetzt ?
Wie sieht der Filter aus ?
Gruß Klaus

Beaker s.a.

Hallo Rene,
Bin kein Profi, vermute aber, dass durch den Filter eine neue DS-Gruppe
entsteht, - die ausgefilterten DS also nicht mehr für Berechnungen zur
Verfügung stehen.
Mit Berichten bin ich auch nicht gerade gut vertraut. Mein erster Gedanke
wäre die Berechnung vor dem Filtern auszuführen und zwischen zu speichern.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ReneB

Hallo und danke für die Antworten.

Die Abfrage liefert alle Daten, wenn ich den Filter entferne ist auch alles da. Allerdings möchte ich halt das Datum im Bericht eingrenzen, da Werte aus dem letzten Jahr nicht wichtig sind. Den Filter setze ich im Eigenschaftenfeld Bericht als
[Datum]>=Date()
Ich dachte das sollte so funktionieren. Gibt es vieleicht andere Möglichkeiten im Bericht, bsp. Sprung zu einem bestimmten Datensatz oder Seite? Das Problem ist, daß kumulierte Abfrage extrem langsam sind und deshalb habe ich den Bericht gewählt. Der läuft super schnell.

Hoffe da hat noch jemand eine Idee für mich.

Rene

MzKlMu

Hallo,
das Filterkriterium würde aber nur Datensätze liefern deren Datum größer oder gleich dem heutigen Datum ist, ist das wirklich so gewollt ?
Wenn die Daten des Vorjahrs nicht benötigt werden, so beginnt doch der gewünschte Bereich am 1.1. des laufenden Jahres, oder nicht ?
Gruß Klaus

ReneB

Hallo,

ja das ist korrekt. Der Bericht gibt den aktuellen Lagerbestand und die Entwicklung kumuliert nach Eingang und Ausgang wieder, deshalb sind Bestände aus dem alten Jahr bzw. Monat nicht wichtig. Leider spinnt der Bericht sobald ich den Filter setze.

Rene

MzKlMu

Hallo,
mit dem Filter, bekommst Du doch nur Datensätze deren Datum größer oder gleich dem heutigen Datum ist, das kann doch nicht stimmen.

Filtere mal mit dem Kriterium die Abfrage direkt.
Gruß Klaus

ReneB

Hallo,

ich dachte beim Filtern werden nur Daten ausgeblendet, daß heisst unsichtbar gemacht. Daß beim Filtern Daten garnicht berücksichtigt werden, war mir so nicht bewusst. Wenn ich den Filter auf die Abfrage setze passiert natürlich das Gleiche, Daten werde in der Kumulierung nicht berücksichtigt. Hat jemand eine Lösung, wie man eine Kumulierung hinbekommt, welche man dann auch noch in einer angemessenen Zeit auswerten kann?

Grüsse
Rene

MzKlMu

Hallo,
wenn schon die Abfrage keine Daten liefert, stimmt doch der Filter nicht.
Es gibt keine Daten die größer oder gleich dem heutigen Datum sind.
Gruß Klaus

ReneB

Hallo Klaus,

nein Du hast mich falsch verstanden, natürlich liefert die Abfrage Daten, aber wenn ich diese Abfrage mit Filter auf einen Bericht aufsetze, rechnet er nicht korrekt, da die Daten vor dem heutigen Datum halt nicht berücksichtigt werden. Das Problem liegt in der Kumulierung. Ich habe jetzt einen Filter auf eine kumulierte Abfrage gesetzt, daß funktioniert, ist aber elendig langsam. Das ist auch der Grund, warum ich eine laufende Summe im Bericht gewählt habe, allerdings wusste ich da noch nicht, daß sobald Filter aktiviert werden, die gesamte Kumulierung nicht mehr richtig funktioniert.

Hat denn jemand noch irgendeine Idee, wie man eine schnelle Kumulierung zum Laufen bringt?

Danke sehr.

Rene

Jennifer

Wie oft berechnest du das denn neu? GGf. macht eine temporäre Tabelle Sinn. die hat dann alle berechneten Felder schon fertig und im Bericht musst du sie nur als Datensatzherkunft setzen. Dann kannst du entweder bei Start deiner Anwendung einmal neu berechnen lassen oder auch ganz unabhängig mitten in der Nacht als vbs das per CronJob ausgelöst wird oder so. Mache ich zumindest bei extrem langsamen Berichten, damit der User nicht so lange warten muss.

EDIT: Du kannst ja auch noch einen Button vor dem Bericht setzen, dass die Tabelle neu berechnet wird, falls der User ab und zu die Werte braucht die genau jetzt in diesem Moment richtig sind. Dann muss der User halt kurz warten und danach wird der Bericht erst geladen oder der Standardbutton gibt dann halt die Werte wieder, wie sie zuletzt z.B. bei Start oder per CronJob (oder geplante Aufgaben, wie auch immer du es nennen möchtest) gerechnet wurden

DF6GL

Hallo,

Zitataber wenn ich diese Abfrage mit Filter auf einen Bericht aufsetze, rechnet er nicht korrekt, da die Daten vor dem heutigen Datum halt nicht berücksichtigt werden.
Da stimmt doch die Logik nicht..

Die willst gefilterte Datensätze (ergibt wirklich nur Daten, die der Filterung entsprechen und keine "weiteren") anzeigen, dabei aber die nicht erfassten Daten in einer Berechnung verwenden?

Wenn Du einen Wert benötigst, der mit der Filterung (zunächst) nichts zu tun hat, muss der eben gesondert ermittelt werden.


z. B. sollen ab einem bestimmtem Zeitpunkt alle neuen Umsatzentwicklungen detailliert angezeigt werden mit StartWert als Summe der Umsätze vor und bis zum bestimmten Zeitpunkt, dann ist dafür eine Abfrage oder eben ein Äquivalent (Domänenfunktion oder Alternative) (hier sinnvollerweise im Kopfbereich des Berichtes) erforderlich, um mit diesem Ergebnis weiter rechnen zu können...


Zitatwusste ich da noch nicht, daß sobald Filter aktiviert werden, die gesamte Kumulierung nicht mehr richtig funktioniert.

>Die Kumulierung funktioniert schon richtig, nur nicht so, wie Du es dir vorstellst.

Ein Filter eliminiert die Daten, die nicht gewünscht sind, also sind nur die verfügbar, egal für die Anzeige im Form/Bericht oder für weitere Verwendungen (Berechnung).

Josef P.

Hallo!

Ich vermute du benötigst den Anfangsbestand, der vor dem Filterdatum besteht.
Vielleicht ist das angehängte Beispiel eine Beschreibung vom Bedarf. ;)

mfg
Josef