-
Nun,
hier scheint die Fleißaufgabe eher in der Erkennung der AND/OR Kombinationen zu bestehen.
Eine Eingabe wie: AAAA-BBBB,CCCC,DDDD
würde so aussehen:
(FELD=%range("AAAA" "BBBB") *OR FELD *EQ "CCCC"
*OR FELD *EQ "DDDD")
u.s.w.
(ich ziehe *OR *EQ dem %VALUES vor, da einfach nur jedes
weitere gefundene Feld angefügt werden braucht; CAT/EVAL)
Gruß,
Robert
-
 Zitat von RobertMack
Nun,
hier scheint die Fleißaufgabe eher in der Erkennung der AND/OR Kombinationen zu bestehen.
Eine Eingabe wie: AAAA-BBBB,CCCC,DDDD
würde so aussehen:
(FELD=%range("AAAA" "BBBB") *OR FELD *EQ "CCCC"
*OR FELD *EQ "DDDD")
u.s.w.
(ich ziehe *OR *EQ dem %VALUES vor, da einfach nur jedes
weitere gefundene Feld angefügt werden braucht; CAT/EVAL)
Gruß,
Robert
Hm, das könnte ich doch mit einem EDS über eine Satzlänge von meinethalben 1000
und ohne feste Feldzuordnung wie vor beschrieben machen, oder ?
Was mich noch stört ist das setzen von Opcodes wie z.B. %range= oder Hochkomma im RPG-PGM. Kann man das noch anders machen?
Gruss
Heyd
-
Um die Feldnamen im String wirst Du nicht herumkommen, die Satz/Feldlänge muß den maximal möglichen String aufnehmen können.
Ich übergebe immer nur die absolut benötigte Anzahl an Argumenten, und die möglichst auch noch gut lesbar weil so auch als Listenüberschrift geeignet.
Bei numerischen Werten entfallen übrigens die Hochkommas, statt *EQ kann auch = eingesetzt werden.
Gruß,
Robert
-
 Zitat von RobertMack
Um die Feldnamen im String wirst Du nicht herumkommen, die Satz/Feldlänge muß den maximal möglichen String aufnehmen können.
Ich übergebe immer nur die absolut benötigte Anzahl an Argumenten, und die möglichst auch noch gut lesbar weil so auch als Listenüberschrift geeignet.
Bei numerischen Werten entfallen übrigens die Hochkommas, statt *EQ kann auch = eingesetzt werden.
Gruß,
Robert
Ok, danke Euch, probiers gleich mal aus, ist aber jede Menge Codierarbeit bei 8 Feldern geht es ja noch, das ganze soll aber bis ins endlose mühelos erweiterbar sein und das in RPG
Gruß
PETRA(HEYD)
-
Um das "zusammenbauen" bei dynamischen Befehlen kommt man nun mal nicht herum.
Sonst wäre es nicht dynamisch sondern statisch:
eval qryslt = '(' + fldnam1 + ' %range("' + fldval1 + '" "' + fldval2 + '") "
usw. usw.usw.
-
 Zitat von Fuerchau
Um das "zusammenbauen" bei dynamischen Befehlen kommt man nun mal nicht herum.
Sonst wäre es nicht dynamisch sondern statisch:
eval qryslt = '(' + fldnam1 + ' %range("' + fldval1 + '" "' + fldval2 + '") "
usw. usw.usw.
Das soll wohl sein, habe nur Kollegen, die in COBOL wohl "alles" ohne großen Aufwand schaffen und RPG solls nit können grml
PETRA(HEYD)
-
Das ist wohl eher umgekehrt der Fall. Vieles ist in RPG erheblich einfacher als in COBOL. Ich kenne beide Sprachen wirklich zur genüge.
Auch COBOL muss sich solche Befehle zusammenbauen. Dies liegt nicht an der Sprache selber sondern an der Aufgabenstellung !
Ausserdem: COBOL ist äussert schreibintensiv. In RPG und nun RPGLE kommst du mit 30-50% Schreibarbeit aus. ILE und Prozeduraufrufe wurden in COBOL stark vernachlässigt. Was in RGPLE diesbezüglich absolut einfach geht ist in COBOL nur schwierig bis gar nicht lösbar.
Sobald man fit in RPG/LE ist schreibt man Programme auch doppelt so schnell und weniger fehlerbehaftet (solang man nicht Freeform nimmt) als in COBOL. Da reicht manchmal schon ein vergessener Punkt für tausende Folgefehler.
Um obigen "eval" mit COBOL zu vergleichen dann schau dir folgenden COBOL-Befehl an:
string
'(' delimited by size
fldname1 delimited by space
' %range("' delimited by size
fldval1 delimited by space
'" "' delimited by size
fldval2 delimited by space
'")' delimited by size
into qryslt
Was ist da wohl einfacher ?
-
Ich habe jetzt die komplette Datenstruktur gefüllt, um den Befehlssyntax für QRYSLT einfacher gestalten zu können, könnte ich das doch mit einem call auf ein ILE-RPG machen, oder ? ( DS übergeben, aufbereiten und Übergabe an QRYSLT für OPNQRYF )
Übrigens, es sind im OPNRYF 3 Dateien miteinander verbunden, wenn dann der Select auch funzt, kann ich mir über das Format die entstandene Datei mit SQL anschauen ?
PETRA(HEYD)
-
Problem gelöst, keine saubere Lösung, aber auf die schnelle weil ja alles sofort machbar sein muss:
Interne DS aufgemacht mit IDS, alle Felder vorbesetzt ( Range ) und gebe diese dann in die externe DS aus für QRYSLT
Das funzt, trotzdem bin ich nicht glücklich damit
Danke Euch allen für Eure Hilfe
PETRA(HEYD)
-
Per SQL kann man sich das Format nicht anschauen, aber mit CPYFRMQRYF kannst du sehen, obs funzt:
http://publib.boulder.ibm.com/iserie...l/cpyfrmqr.htm
Aber sehr dynamisch und variabel ist deine Lösung nun nicht, da du ja immer alle Parameter füllen must.
Similar Threads
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By horni in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 07-12-06, 18:51
-
By Squall in forum IBM i Hauptforum
Antworten: 82
Letzter Beitrag: 19-10-06, 15:37
-
By ExAzubi in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 13-07-06, 10:51
-
By RaMai in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 11-07-05, 12:56
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