[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2003
    Beiträge
    331

    Cool 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 ?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    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(....);
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    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!)

  4. #4
    Registriert seit
    Jul 2003
    Beiträge
    331
    Zitat Zitat von Robi Beitrag anzeigen
    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.


  5. #5
    Registriert seit
    Jul 2003
    Beiträge
    331
    Zitat Zitat von Fuerchau Beitrag anzeigen
    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.

  6. #6
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    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

  1. Typ DATE in SQL-Tabelle
    By Melanie in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 13-02-03, 11:30
  2. EXCEL-Tabelle auf AS/400
    By Steven in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 25-10-02, 11:32
  3. Berechtigung zum Updaten einer Tabelle
    By Sascha Storzum in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 22-08-02, 08:37
  4. JPEG in DB/2-Tabelle
    By chrisi in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 07-12-01, 14:39
  5. Beschränkung auf Anzahl Felder in Tabelle????
    By KB in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-09-01, 11:56

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •