PDA

View Full Version : Anzahl gefüllte Elemente in Feldgruppe



Seiten : [1] 2

malzusrex
22-02-06, 11:52
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

Fuerchau
22-02-06, 11:55
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.

malzusrex
22-02-06, 12:07
Nee, das ist ja das Problem. Die Gruppe hat zB: 150 Elemente. Und an Pos 15, 20, 75, ... kann ne 0 stehen.

XMan
22-02-06, 12:19
Kann mich daran erinnern das man Feldgruppen auch sortieren kann.
Somit müsste das von Fuerchau auch funktionieren.

Gruß

malzusrex
22-02-06, 12:23
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

XMan
22-02-06, 12:26
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ß

XMan
22-02-06, 12:38
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.

malzusrex
22-02-06, 13:06
Soweit wie ich %ELEM verstanden habe, gibt diese Funktion die MaxAnzahl der Elemente der Feldgruppe/Tabelle zurück

Ronald

XMan
22-02-06, 13:28
Ja richtig, mein Fehler - Sorry

Fuerchau
22-02-06, 14:06
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.