-
Rechenformeln aus Tabelle ?
Moin, folgende Problemstellung:
In RPG sollen bestimmte Berechnungen durchgeführt werden, z.B.
((Breite x Länge * 1,1) / (WarBreit + 0,05)) * 2
Es ist ja heute kein Problem mehr, diese in RPG in einer Zeile anzugeben.
Gibt es irgend eine Möglichkeit, diese und andere Formeln in einer Tabelle (Datei) einzugeben und dann im Programm darauf zuzugreifen und auszuführen ?
-
Indirekt ja:
Du kannst du Formel als dynamischen SQL ausführen:
MyStr = "select Formel from sysibm/sysdummy1"
- Prepare
- declare Cursor für Statement
- Open
- fetch ... into :Myresult
- close
Jetzt musst du dir nur noch überlegen, wie du die Formel mit den Variablen belegst.
Hier bietet sich die SQL-Funktion replace() an.
exec sql set :MyFormel = replace(....);
-
Wir haben eine Datei in der du sogenannte Rechenregeln erfassen kannst.
Neben der Ziel Einheit (Rollen, Lfm, Kg, Stk...) kannst du komplexe Formeln erfassen
incl. Klammer und Dateivariablen.
PHP-Code:
"<Feld1>*<Preis>/<divisor> +(100*<feld2> + <Feld3>)..."
Ein Pgm das 'BasisDaten' empfängt, die Formel sucht, ggf andere Dateien liest und zum Schluß die Formel ausrechnet.
Recht komplex, aber, in unserem Fall 'nur' kapp 10 Tage aufwand.
Wenn sich soetwas für dich lohnt ... einfach mal ne PM schreiben
Robi
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
-
Zitat von Robi
Wir haben eine Datei in der du sogenannte Rechenregeln erfassen kannst.
Neben der Ziel Einheit (Rollen, Lfm, Kg, Stk...) kannst du komplexe Formeln erfassen
incl. Klammer und Dateivariablen.
PHP-Code:
"*/ +(100* + )..."
Ein Pgm das 'BasisDaten' empfängt, die Formel sucht, ggf andere Dateien liest und zum Schluß die Formel ausrechnet.
Recht komplex, aber, in unserem Fall 'nur' kapp 10 Tage aufwand.
Wenn sich soetwas für dich lohnt ... einfach mal ne PM schreiben
Robi
Das sieht ja so aus, als ob die Formeln Byte für Byte aufgelöst werden und dadurch
entspr. Rechenbefehle aufgerufen werden. Das scheint mir für meinen Bedarf etwa zu aufwendig. Trotzdem vielen Dank.
-
Zitat von Fuerchau
Indirekt ja:
Du kannst du Formel als dynamischen SQL ausführen:
MyStr = "select Formel from sysibm/sysdummy1"
- Prepare
- declare Cursor für Statement
- Open
- fetch ... into :Myresult
- close
Jetzt musst du dir nur noch überlegen, wie du die Formel mit den Variablen belegst.
Hier bietet sich die SQL-Funktion replace() an.
exec sql set :MyFormel = replace(....);
Das muss ich mir noch geauer ansehen. Danke für die Antwort.
-
Ja, sozusagen Byte für Byte. Erst werden die Variablen aufgelöst und in den String eingearbeitet, dann wird die Formel durch einern rekursiven Aufruf Stück um Stück gerechent
Das Notwendige steht über dem technisch machbaren.
(klingt komisch, funktioniert aber!)
Similar Threads
-
By Melanie in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 13-02-03, 10:30
-
By Steven in forum IBM i Hauptforum
Antworten: 12
Letzter Beitrag: 25-10-02, 10:32
-
By Sascha Storzum in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 22-08-02, 07:37
-
By chrisi in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 07-12-01, 13:39
-
By KB in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 07-09-01, 10: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