Anfängerfrage zum Datenfiltern in einer Liste

Hallo zusammen,

wir betreiben ein Messgerät, wo die Reports über den LL Designer erstellt werden.
In diesen versuche ich mich gerade einzuarbeiten und benötige etwas Hilfe.

Zu meinen Problem, ich bekomme die Daten in Form einer Liste.
Diese Liste beinhaltet 3 Jobs mit einzelnen Messpunkten.
Hier muss ich den MIN, MAX und Mittelwertberechnen und im Report ausgeben.
Aufbau der Liste wie folgt.
In der 1. Spalte steht der Job mit Nummer des Messpunktes.
In der 2. Spalte steht der Messwert
1|1 1.23
1|2 1.56
1|3 2.56
2|1 1.25
2|2 1.11
2|3 1.24
3|1 2.123
3|2 …
3|3 …

Wie kann ich die Daten Filtern und die Messwerte berechnen?
Ich hoffe ihr könnt mir einen Anschubs geben.

Grüße

Andre

Hallo Andre,

von der Idee her würde ich da in der Tabelle nun eine Fußzeile vorsehen und dort die drei Designer-Funktionen Minimum(…), Maximum(…) und Avg(…) platzieren. Somit wären dann die drei gesuchten Werte ermittelt über die ganze Tabelle - also über alle Jobs.

Man könnte es dann auch noch mit einem Gruppenfuß nach Job (also pro Job) berechnen lassen.

Hilft das schon mal weiter?

Hallo Oliver,

das ist ein interessanter Ansatz.
Gibt es auch die Möglichkeit, für die Berechnung die Daten zu Filtern?.
Also:
Minimum, Maximum, Mittelwert über alle Daten von “1|”
Minimum, Maximum, Mittelwert über alle Daten von “2|”
Minimum, Maximum, Mittelwert über alle Daten von “3|”

Gruß

Andre

Du kannst entweder die Tabelle jeweils pro Job in den Berichtscontainer packen und jeder Tabelle einen Datenfilter geben auf dessen Job - wäre aber sehr statisch; aber sehr einfach wenn es immer drei Jobs sind.

Dynamischer wäre es aber , wenn du aber wie schon geschrieben das Ganze einmal in den Gruppenfuß versuchst zu packen und die Gruppierungsbedingung wäre dann eben der Feld für den Job. Noch daran denken die Tabelle vorher sonst noch nach dem Job zu sortieren.

Ergänzend dazu kannst du bei Olivers Ansatz für die Datenzeilen der Tabelle auch “Datenzeilen unterdrücken” aktivieren. Dann werden nur noch die Gruppenfüße ausgegeben, das sollte dann dem entsprechen, was du brauchst. Hier ist sowas ähnliches beschrieben.

Guten Morgen,

erst mal vielen Dank für die Hilfe.
Ich werde mir heute die Fußzeile näher anschauen.
Gibt es irgendwo Samples oder Demos wo man sich die Funktionalität näher anschauen kann? Das macht den einstieg in die Software einfacher.
Ergänzung: die Jobs werden in einer einzelnen Tabelle zusammengefasst und übergeben.
Es gibt keine Möglichkeit die Daten einzeln zu übergeben.
Die Funktion Datenfilter habe ich schon gesucht aber bisher nichts geeignetes gefunden. Gibt es eine Möglichkeit die Daten anhand der Merkmale 1|… 2|… 3|… zu filtern?

Gruß

Andre

Als Demo kannst du unsere Trial-Version herunterladen, da ist auch eine Beispielanwendung mit vielen Berichten dabei.

Der Filter findet sich - je nach verwendeter Version - entweder in den Eigenschaften der Tabelle selber (“Datenfilter”) oder unter Projekt > Filter.

Ah alles klar.
In unserer Version, sind nur Beispiele des Herstellers dabei.
Da ist aber keine Vorlage mit Filterfunktionen dabei.

Ich habe jetzt folgendes Probiert.
In den Eigenschaften der Tabelle habe ich einen Filter gesetzt.
Contains (TabField1, “1”)
Das funktioniert leider nicht. die Tabelle bleibt leer.

Gruß

Andre

Kannst du mal einen Screenshot der Einstellung schicken?

Also die Daten kommen so rein:
Ohne Filter erscheinen sie auch im Bericht.
image

Ich habe jetzt folgendes Probiert:
Das funktioniert nicht, der Report bleibt leer.

Und in der Tabelle:
Hier wird dann in der ersten Spalte immer false ausgegeben

Also stimmt die Formel nicht

Das sieht eigentlich gut für mich aus. Eventuell ist das zweite Zeichen kein echtes Pipe-Zeichen sondern irgendein Unicode-Zeichen, das nur so aussieht? Wenn du nur auf “1” prüfst gibt es auch immer False? Sonst könntest du mal mit Asc(Mid$(TabField1,1,1)) den Zeichencode prüfen. Ein Pipe-Zeichen hat die 194. Im Designer ist es auch klar, dass die Ausgabe “False” liefert, da da offenbar der Feldname als Inhalt übergeben wird. Ich nehme aber an, dass du das auch im Druck geprüft hast.

Sonst kannst du dich jederzeit auch an deinen Hersteller wenden, die werden wissen, welche Zeichen sie da verwenden :slight_smile:.

Ha,
vielen Dank.
Das war der entscheidende Tip.
Ich habe jetzt in den Filter contains(Mid$(TabField1,0,1),“1”) gesetzt und es funktioniert.
jetzt muss ich nur noch rausfinden, wo ich minimum(…), Maximum(…) und AVG(…) platzieren muss.

Ich komme leider doch nicht weiter.
Ich habe alles in die Fußzeile eingetragen, aber leider wird diese nicht angezeigt.

Wie sieht deine Fußzeile denn aus?

Guten Morgen,
Die Fußzeile ist im Moment folgendermaßen aufgebaut:
In der Header Line stehen die Überschriften drin.
In der Data Line habe ich “TabField1” eingetragen.
In der Header Line sind die Auswertungen drin.


Im Ergebnis bekomme ich folgendes:
Wenn ich in Data Line ein Listenfeld eintrage, bekomme ich eine Auswertung mit korrekten Ergebnissen. Hier die Liste mit 3 Werten.
image

Da ich aber die Liste nicht sehen möchte, habe ich versucht, diese auszublenden bzw. zu löschen.
Im Ergebnis sieht es dann so aus. Es wird nichts mehr angezeigt.
image

Du darfst die Liste nicht löschen. Wenn du die Zeilen nicht sehen willst kannst du “Datenzeilen unterdrücken” aktivieren. Wenn die Zeilen ganz gelöscht werden werden sie auch nicht durchlaufen und damit laufen die Berechnungen ins Leere…

Solche Dinge kannst du übrigens auch unseren DocBot fragen, vielleicht kann der nochmal eine Hilfe für dich sein - aber du bist natürlich auch hier im Forum jederzeit willkommen :slight_smile:. Ich hab das eben zum Test mal gemacht:

Frag DocBot - combit

Wir sind uns einig:

Vielen Dank,
mit unterdrücken funktioniert es korrekt.
Jetzt habe ich eine 2. Liste erstellt und den Filter entsprechend angepasst.
contains(Mid$(TabField1,0,1),“2”)
Jetzt wird nichts mehr angezeigt. Wie es scheint, wirkt sich der Filter aus der 1. Liste, auf alle weiteren Listen aus.
Ist das richtig?

Aus deinen Screenshots scheint es mir so zu sein, dass die verwendete Datenquelle kein Datenprovider ist und du auch keinen Berichtscontainer hast. Das sind Features, die die Applikation bereitstellen müsste. So kannst du nur den Filter wieder rausnehmen und mit Gruppierungen arbeiten, also statt einer Fußzeile eine Gruppenfußzeile nehmen und nach Mid$(TabField1,0,1) gruppieren. Wenn die Daten richtig sortiert sind sollte das dann das korrekte Ergebnis liefern.

Hallo Andre,
wie oben erwähnt, brauchst du bei der Lösung mit dem Filter 3 verschiedene Tabellen im Reportcontainer, jede Tabelle hat ihren eigenen Filter. Für mich ist das aber keine gute Lösung, denn wenn Daten mit 4|1, 4|2 kommen, musst du eine weitere Tabelle mit neuem Filter in den Container aufnehmen.
Die bessere Lösung für dieses Problem ist, alle Daten in einer Tabelle ohne Filterung(!) auszugeben. Die min, max, avg-Funktionen gibst du im Gruppenfuß aus und da musst du dann eine Wechselbedingung setzen auf (left$(tabfield1,1)). Dann macht List&Label das alles im Hintergrund…Immer wenn left$(tabfield1,1) sich ändert, wird der Gruppenfuß ausgegeben.

1 Like

Also das Thema Gruppenfuß muss ich mir erst mal einlesen.
Mir fehlt noch die Vorstellung, wie das aussieht und funktioniert.

Edit:
Also wenn ich das richtig verstanden habe, packe ich (left$(tabfield1,1)) in den TabFiel1 rein.
und mache aus 1|1; 2|1; 3|1 >>> 1; 2; 3.
Die Definition aus der Fußzeile, packe ich in die Gruppenfußzeile.
Hier erstelle ich 3 Kopien. Der Aufruf der jeweiligen Gruppe erfolgt über die Darstellungsbedingung contains(Tabfield1,“1”)
Richtig?