PDA

View Full Version : Variable Feldname



Seiten : [1] 2 3 4

svit
09-10-12, 00:01
Hallo *all ,

Problem:
ich habe eine Datei (PF) mit 40 Feldern.
in einer anderen Datei habe ich die Reihenfolge der Felder der ersten Datei festgelegt.
Beispiel:
Datei 1
Feld1|Feld2|Feld3|Feld4|
abc | 123 | efgd |9876|

Datei2
1|Feld4
2|Feld2
3|Feld1
4|Feld3

Jetzt müssen die Felder der Datei 1 als ein String in der hinterlegten Reihenfolge ausgegeben werden.

Wie kann ich das ohne 40 WHEN oder ELSIF Anweisungen lösen
Ev. mit mehrdimensionalen Array? Aber der muss auch erst gefüllt werden.

Gibt es ev. eval String =%Feldname('Feld4')

Fehlt euch AllOBJ-USER'n andere Möglichkeit?

svit
09-10-12, 06:58
Guten Morgen *all

Erste Lösung:
1) mittels DSPFFD die Beschreibung der DATEI1 in eine Qtemp-Datei erstellen.
2) Über das Feldname kann Startposition und die Lenge ermittelt werden (über die Qtemp-Datei)
3) DATEI1 als ein String betrachten.

Ist das zu Kompliziert? kann das noch einfacher und weniger Quell-Code gelöst werden ?

ExAzubi
09-10-12, 07:08
Sind die Felder alle gleich lang? Wenn ja, kannst du ein Array über die Datei legen und diesesn dann sortieren.

svit
09-10-12, 07:26
Hallo,
alle Felder haben unterschiedliche Namen und Größen.

B.Hauser
09-10-12, 07:50
Guten Morgen *all

Erste Lösung:
1) mittels DSPFFD die Beschreibung der DATEI1 in eine Qtemp-Datei erstellen.
2) Über das Feldname kann Startposition und die Lenge ermittelt werden (über die Qtemp-Datei)
3) DATEI1 als ein String betrachten.

Ist das zu Kompliziert? kann das noch einfacher und weniger Quell-Code gelöst werden ?

Anstatt eine temporäre Datei zu erstellen solltest Du die benötigten Informationen (mit SQL) direkt aus der Catalog View SYSCOLUMNS in der Bibliothek QSYS2 auslesen.

Basierend auf den ausgelesenen Informationen könntest Du ein Dynamisches SQL SELECT Statement aufbereiten, das die Feld-Inhalte konvertiert und als String aufbereitet. Über einen Cursor kann dann dieses SELECT-Statement verarbeitet werden.

Birgitta

Fuerchau
09-10-12, 08:28
SQL ist hier wirklich die einzige Lösung für dieses Variabilität.
Woher kommt denn so eine blöde Aufgabenstellung?

BenderD
09-10-12, 10:22
SQL ist hier wirklich die einzige Lösung für dieses Variabilität.
Woher kommt denn so eine blöde Aufgabenstellung?

... lass mich raten: vom Ausbilder!!!

svit
09-10-12, 10:52
ne,

ich muss eine PF in XML mappen.
Die PF hat 120 Felder.
Über die PF müssen 5 verschiedene XML Dateien erstellt werden.
Das ganze soll in der Nacht laufen.

na, was sagt ihr jetzt zu dem bösen Ausbilder.

andreaspr@aon.at
09-10-12, 11:47
Nur so nebenbei:
Ab 7.1 kann man das Ergebnis eines ganzes Selects mit allen Joins usw. als XML ausgeben lassen.
lg Andreas

camouflage
09-10-12, 12:11
Kleine simple Frage:

Wieso erstellst Du dir nicht die gewünschte Datei als physische Datei mit der gewünschten Feldreihenfolge und kopierst die erste Datei mittels CPYF und *map/*drop rüber?

Manchmal kann die Lösung so einfach sein. :)