View Full Version : Anzahl gefüllte Elemente in Feldgruppe
Hallöchen,
gibt es eine kurze Möglichkeit die Anzahl der gefüllen Werte einer Feldgruppe zu ermitteln. Sowas wie %XFoot( Feldgruppe ) gibt mir ja die Summe zurück. Wenn ich jetzt den Durchschnitt haben möchte, will ich aber die Elemente mit dem Wert 0 weg lassen.
Oder bleibt mir nur die Möglichkeit die Feldgruppe vom ersten bis zum letzten Wert zulesen und die Wert > 0 zu zählen.
Gruß Ronald
Wenn du sicher bist, dass keine 0-Werte als Lücken vorhanden sind, kannst du doch nach dem 1. Element = 0 mit "Count = %lookup(*zero:MyTable) - 1;" prüfen.
Nee, das ist ja das Problem. Die Gruppe hat zB: 150 Elemente. Und an Pos 15, 20, 75, ... kann ne 0 stehen.
Kann mich daran erinnern das man Feldgruppen auch sortieren kann.
Somit müsste das von Fuerchau auch funktionieren.
Gruß
Sortieren scheidet aus. Ich habe mehrere Feldgruppen. Element Nr.17 aus Feldgruppe 1 gehöhrt auch zu Element 17 aus Feldgrupp2.
Wenn ich jetzt eine Fledgrp. sortiere, dann stimmt der Rest net mehr
Naja, kannst ja die benötigte Feldgruppe in ein duplikat kopieren bzw. in eine temporäre und mit der dann die Rechenoperation durchführen (Definition mit *LIKE) dann würde die originale die zu einer zweiten gehöhrt nicht berührt werden.
Gruß
Oder wie wärs mit "%ELEM"
Beschreibung IBM:
%ELEM returns the number of elements in the specified array, table, or
multiple-occurrence data structure. The value returned is in unsigned integer
format (type U). It may be specified anywhere a numeric constant is allowed in the
definition specification or in an expression in the extended factor 2 field.
The parameter must be the name of an array, table, or multiple occurrence data
structure.
Soweit wie ich %ELEM verstanden habe, gibt diese Funktion die MaxAnzahl der Elemente der Feldgruppe/Tabelle zurück
Ronald
Ja richtig, mein Fehler - Sorry
Tja, dann gibt es halt nur die lange Variante, mit einer Schleife vom letzten zum 1. Element den 1. Wert <> 0 zu suchen.
Allerdings, wenn auch 0-Werte zwischendurch vorkommen können, wer sagt dir denn, dass die letzten 0-Werte nicht gültige Werte sind ?
Wie füllst du denn die Tabelle ?
Kannst du dir beim Füllen die Anzahl nicht merken ?
Wenn du eine oder mehrere Parallel-Tabellen hast, ist da ggf. das 1. freie Element = *blank ?
%elem hat nur den Vorteil, dass ich damit die definierte Anzahl nicht zusätzlich als Konstante/Variable speichern muss.