Anmelden

View Full Version : 36er Umstellung



Seiten : [1] 2

DKSPROFI
04-08-08, 08:33
Moin Kolleginnen und Kollegen,

ENDLICH!!!!! wri schaffen unsere /36er ab!!!!!!!!!!

Wir dürfen (ENDLICH) unsere histerisch gewachsene Warenwirtschaft ablösen. In sich kein Problem. Uns liegt aber ein Problem sehr am Herzen, da dieses Programm ein Schlüsselprogramm zur Übergabe an die DKS-FIBU ist. In einem Programm wird eine Datei an 5! verschiedenen Stellen immer mit dem gleichem Schlüssel gelesen. Jetzt haben wir gedacht wir lösen das aber eine exterrne DS mit einer einer Feldgruppe, da wir 5x mal die gleiche Datensätzte brauchen. Gelöst haben wird das so:

d OR_Rec E DS ExtNAme(Datei)
* ================================================== ==========
d AA_Rec E DS ExtName(Datei)
d PreFix(AA_)
d AA_Ds DS LikeDs(AA_Rec) Dim(999)
* ================================================== ==========
d BB_Rec E DS ExtName(Datei)
d PreFix(BB_)
d BB_Ds DS LikeDs(BB_Rec) Dim(999)
* ================================================== ==========
Und so
weiter

Gelesen wird die Datei und mit
MOVE OR_REC AA_DS($Z)
bis FF_DS($Z)
die Feldgruppen gefüllt. Im Debug kann man auch z.B. das Feld AA_DS.AA_FELD(1) oder so sehen.

Wie kann man das Feld jetzt anspechen???

z.B. EVAL AA_DS.AA_FELD($X) = Neu
BB_DS.BB_FELD($Y) = Alt
CC_DS.CC_FELD($X) = 4711 usw???

Bei der Umwandlung kommt dann immmer:
Feldgruppe hat zu viele übergangene Indizes; die Bestimmung wird ignoriert.

Index ist für einen Namen, der keine Feldgruppe ist, nicht zulässig; der Index wird ignoriert.

Wir stehe da momentan echt auf dem Schlauch!! Vielen Dank im voraus für Eure Hilfe.

mfg

RobertMack
04-08-08, 09:20
Moin,

mit DIM multiplizieren Sie jede Datenstruktur auf 999 Vorkommen ;-)

Wie genau wollen Sie die eingelesenen Felder verarbeiten? Evtl. ist OCCUR Ihr Freund!

DKSPROFI
04-08-08, 09:31
Moin,

mit DIM multiplizieren Sie jede Datenstruktur auf 999 Vorkommen ;-)

Es kommt bei einzelnen Kunden vor, daß bis zu 800 Sätze da drin sthen

Wie genau wollen Sie die eingelesenen Felder verarbeiten? Evtl. ist OCCUR Ihr Freund!

Die Datei hat 45 Felder, davon müssen bis zu 10 geändert werden.

RobertMack
04-08-08, 09:44
wie geändert? Hab's noch nicht nachvollzogen...

Feldverwendung/Prüfung/Änderung über die Vorkommen hinweg, z.B. IF AFELD(1) <> AFELD(4)
oder erst nachdem alle Vorkommen eigens geprüft wurden, z.B.
DO 5 $I
$I OCCUR DS
IF AFELD <> IRGENDWAS, merke $I
ENDDO
$I = gesuchtes Vorkommen

DKSPROFI
04-08-08, 10:03
Also:

Programmlauf ALT:

Datei A wird gelesen (Aktuelles KD-Sortiment)

Satzauschluß

Ausgabe 1

Datei A wird erneut gelesen (Aktuelles KD-Sortiment)

Satzauschluß

Ausgabe 2

Datei A wird nochmal gelesen (Aktuelles KD-Sortiment)

Satzauschluß

Ausgabe 3

usw.

Unsere Idee ist:

Datei A wird gelesen (Aktuelles KD-Sortiment)

Satzauschluß

Merken 1
Merken 2
Merken 3
usw.

Aus Merken 1 ($X) weiter
Aus Merken 2 ($X) weiter
Aus Merken 3 ($X) weiter
usw.

In Merken 2 - 5 wird dann eine weitere Verarbeitung gestartet.

Von Merken 1 - x sind aber verschieden Felder zu aktualisieren




Wir wollen eigentlich nur einmal statt fünfmal nach den selben Kriterien lesen.

Hoffentlich habe ich mich verständlich ausgedrückt

RobertMack
04-08-08, 10:27
...leider nicht ;-)

Ich rate jetzt mal:

Sie wollen beim Einlesen prüfen, ob ein Satz ausgeschlossen wird oder in eine von vier Gruppen paßt?

Und dann die vier Gruppen einzeln verarbeiten?

Pikachu
04-08-08, 10:30
Wozu überhaupt Indizes? Ihr könnt die einzelnen Felder in den Datenstrukturen doch direkt über ihre Namen ansprechen.

Nachtrag: Die Datenstrukturen lassen sich mit MOVE OR_REC AA_REC usw. füllen.

DKSPROFI
04-08-08, 10:35
Wozu überhaupt Indizes? Ihr könnt die einzelnen Felder in den Datenstrukturen doch direkt über ihre Namen ansprechen.

Nachtrag: Die Datenstrukturen lassen sich mit MOVE OR_REC AA_REC usw. füllen.
Genau das mache wir. Jetzt wollen wir aber aus der DS nur einzelne Felder haben, also aus DS1(5) das 3 feld, aus DS4(3) das 10 feld usw.

BenderD
04-08-08, 10:40
Hallo,

erstmal würde ich die DS quälen, statt Prefix:

d OR_Rec E DS ExtNAme(Datei)
* ================================================== ==========
d AA_Rec E DS ExtName(Datei)
d qualified
d AA_Ds DS LikeDs(AA_Rec) Dim(999)
* ================================================== ==========
ansprechen kann man die Felder dann per:

AA_Ds(index).FeldName

mfg

Dieter Bender

PS: Sch... Editor, das qualified muss freilich als Keyword abgelocht werden.




d OR_Rec E DS ExtNAme(Datei)
* ================================================== ==========
d AA_Rec E DS ExtName(Datei)
d PreFix(AA_)
d AA_Ds DS LikeDs(AA_Rec) Dim(999)
* ================================================== ==========
Wie kann man das Feld jetzt anspechen???

z.B. EVAL AA_DS.AA_FELD($X) = Neu
mfg

Pikachu
04-08-08, 10:48
Setze den Index einmal direkt hinter die Datenstruktur (anstelle von hinter das Feld): z.B. EVAL AA_DS($X).AA_FELD = Neu