-
Programmierung
Hallo an alle,
hat jemand eine Lösung für ein anscheinend einfaches, aber vertracktes Problem?
Ich habe in einer Datei
KDNR ANR GEBO,
aufsteigend sortiert Nach KDNR und ANR.
Wenn KDNR Satz 2= KDNR Satz1, dann soll ANR Satz2 Nach GEBO Satz1 gespeichter werden.
Wenn KDNR Satz 3=KDNR Satz2, dann ANR Satz3 nach GEBO Satz1 rechts neben die 1.Position und ANR Satz3 nach GEBO Satz2 u.s.w.
Ist das überhaupt auf der AS400 programmierbar oder ist das besser auf dem PC machbar? Obwohl, da fällt mir eigentlich
auch keine Lösung ein -außer der "per Hand"-Methode.
Vielen Dank für einen Tipp.
Gruß Helwo
-
kannst du mir noch was über die feld größen erzählen ????
-
Hallo Helwo,
was mich an Deinem Problem am meisten verwirrt ist "Rechts neben die 1. Position"
Sollen die ANR's in unterschiedliche Felder, oder direkt in das Feld GEBO geschrieben.
In beiden Fällen muss klar sein, dass sowohl die Anzahl der Felder als auch die Feldlänge nicht beliebig per Programm erweitert werden kann. (evt. Datenverlust!)
Nur noch mal zum Verständnis.
Soll das Ganze wie folgt aussehen:
Ursprungs-Datei:
KDNR ANR GEBO
10 4711
10 4712
10 4713
11 4810
11 4812
11 4819
Nach Update:
KDNR ANR GEBO
10 4711 4712 4713
10 4712 4713
10 4713
11 4810 4812 4819
11 4812 4819
11 4819
Realisieren könnte man dies, indem man zwei Lesescheifen verwendet.
1. Leseschleife für den Update
2. Leseschleife zum Ermitteln des Strings für GEBO
z.B.
H DEBUG DECEDIT('0,') DATEDIT(*DMY.)
FFileUP UF E K DISK
FFileIP IF E K DISK rename(FileF: FileIF)
D $$GEBO S Like(GEBO)
D K$KDNR S like(KDNR)
D K$ANR S like(ANR)
C do *Hival
C read (E) FILEF
C if %EOF
C leave
C endif
c exsr XGEBO
C eval GEBO = $$GEBO
C update (E)FILEF
C enddo
C eval *InLR = *on
************************************************** ********************************************
C XGEBO BegSR
C clear $$GEBO
C KeyL Klist
C Kfld K$KDNR
C Kfld K$ANR
C eval K$KDNR = KDNR
C eval K$ANR = ANR
C KeyL setgt FILEIF
C Do *HiVal
C K$KDNR reade FILEIF
C if %EOF
C leave
C endif
C eval $$GEBO = %TrimR($$GEBO) + ANR
C Enddo
C EndSR
Du benötigst für diese Lösung entweder eine logische Datei mit dem gleichen Schlüssel wie die physische, oder Du überschreibst die physische Datei in einem vorgelagerten CL-Programm.
(Die Überschreibung kann natürlich auch im RPG-Programm erfolgen, dazu müssen die Dateien allerdings explizit geöffnet werden. USROPN in den F-Bestimmungen)
Der Quellcode ist nur beispielhaft und nicht getestet.
Vielleicht hilft Dir das weiter
Birgitta
-
Hallo,
bin erst heute wieder in meinem "Inhouse-Büro". Vielen Dank für Eure Antworten.
1. Die Feldgrößen
KDNR = 7 stellig
ANR = 3 "
GEBO = 60 "
GEBO könnte theoretisch zu klein werden
2. Du hast das Problem richtig erkannt.
Danke für den Quellcode, werde das mal
probieren.
Gruß Helwo
Similar Threads
-
By i_new in forum NEWSboard Server Software
Antworten: 9
Letzter Beitrag: 18-12-06, 15:14
-
By mott in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 27-02-06, 13:15
-
By THH in forum NEWSboard Linux
Antworten: 2
Letzter Beitrag: 01-02-06, 09:53
-
By Tommy in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 05-12-03, 14:59
-
By Pictum in forum NEWSboard Server Job
Antworten: 0
Letzter Beitrag: 30-08-02, 12:38
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks