Anmelden

View Full Version : Wieder LIKEREC



Seiten : [1] 2

tarkusch
29-11-12, 15:30
Hallo,

bräuchte bitte Unterstützung wie ich folgende Sache am besten angehen sollte.

Mein Sfl schaut wie folgt aus.




Tag Mitarbeiter Zeit1 Zeit2 Zeit3
01.3.2012 A 8:00 2:00 1:00
: B
: :
02.3.2012 A 09:00 0:50 1:75
: B


In den D-Bestimmungen habe ich folgende Angaben gemacht

D SflRcd DS LIKEREC(SFL001: *ALL) DIM(9999) INZ

Ich hätte gerne den Sfl in einen Tempfile geschrieben:



Mitarb. Tag Zeit1 Zeit2 Zeit3 Tag Zeit1 Zeit2 Zeit3
A...... 01.3. 8:00 2:00 1:00 02.3. 9:00 0:50 1:75
B
D
:


Kann man Sflrcd irgendwie nach Mitarbeiter sortieren oder muss ich da mit %lookup arbeiten und mit einer For-Schleife lesen?

Dank schon mal Vorab

Gruß Tarki

Fuerchau
29-11-12, 15:41
%lookup impliziert die Forschleife.
Du kannst natürlich auch mit SORTA (nicht Free) sortieren, wenn du die Tabelle als ASCENDING/DESCENDIND declarierst.
Du kannst natürlich auch eine For-Schleife selber machen.

ExAzubi
29-11-12, 15:43
SORTA SflRec.Mitarbeiter

vorher aber mit *HIVAL initaliseren, damit du keine Blanks am Anfang hast und trotzdem alles aufsteigend sortiert ist.

tarkusch
29-11-12, 15:46
ich habe schon mit Sorta "experimentiert", bin aber leider nicht auf das gewünschte Ergebnis gekommen.

Wie müsste das Sorta aussehen?

Fuerchau
29-11-12, 15:46
Dieser SORTA klappt leider nicht, da
a) die DS nicht qualified ist, sollte also angegeben werden
b) der Typ der Sortierung auf dem Feld mit Likerec leider nicht angegeben werdn kann

tarkusch
29-11-12, 16:04
SORTA SflRec.Mitarbeiter

vorher aber mit *HIVAL initaliseren, damit du keine Blanks am Anfang hast und trotzdem alles aufsteigend sortiert ist.

Das hatte ich schon:


*RNF5159 30 1 Operand in Faktor 2 muss für die angegebene Operation ein
Feldgruppenname sein.
*RNF7591 30 1 Ein Operand eines qualifizierten Namensausdrucks ist
ungültig.

Fuerchau
29-11-12, 19:58
Eben, es geht nicht an einer manuellen Deklaration vorbei, Likerec hilft da nicht.
Ausserdem muss das DIM auf Feldebene und nicht auf Strukturebene (DS) angegeben werden, da SORTA keine DS sortieren kann (früher OCCURS).

Prüfe lieber die Aufgabenstellung, verwende SQL und lies die Daten direkt sortiert.

B.Hauser
30-11-12, 06:44
da SORTA keine DS sortieren kann

Auch wenn Du es nicht nutzen kannst oder darfst, kannst Du keine solchen Aussagen treffen.

Seit Release 7.1 können auch Array-Datenstrukturen (DIM in der DS-Zeile) mit SORTA sortiert werden und zwar beliebig in auf- oder absteigender Reihenfolge.
In Verbindung mit %SUBARR kann auch nur ein Teil der Elemente sortiert werden.

Ebenso wie SORTA kann auch ab Release 7.1 %LookUpxx auf Array-Datenstrukturen verwendet werden.

... auch wenn Tarkusch wahrscheinlich noch nicht auf Release 7.1 ist (zumindest lässt die Compilermeldung darauf schließen)

Birgitta

tarkusch
30-11-12, 07:09
schade.

In der alten Firma habe ich ganz am Anfang, ein RPG Programm ergänzen dürfen, wo Felder gecatet wurden (mit ';') und in eine CSV im ifs geschrieben wurde.

Besteht da nicht die Möglichkeit, das ich am Anfang die Feldnamen variable angebe?

Das Problem lässt mir einfach keine Ruhe.
Wenn ich ca. 5 Zeitfelder pro Tag habe sind das ja über 166 Felder. Ergibt das einen Sinn?


Tarki

Fuerchau
30-11-12, 08:26
So viele sind ja noch nicht auf 7.1!
Und wie noch in einem anderen Beitrag beschrieben sogar noch auf V5R3.