Werte aus einer Matrix "ziehen"

  • Hallo zusammen,
    ich habe die folgende Matrix (Werte werden in einzelnen Dokumenten gespeichert und in einer Ansicht angezeigt):


    Matrix:


    -80 -100 >100
    1-3
    | 0,02 0,05 0,09
    4-6 | 0,06 0,18 0,30
    7-8 | 0,13 0,39 0,65


    Ansicht:


    Wert A Wert B Wert C
    1 | <=80 | 0,02
    1 | >80<=100| 0,05
    1 | >100 | 0,09
    2 | <80 | 0,02


    usw.


    ------>


    Jetzt werden zwei Werte in eine Maske in zwei Zahlenfeldern eingegeben.
    Als Ergebnis (nach Klick auf Aktionsknopf) soll der entsprechede Wert in ein drittes Feld geschrieben werden.


    Bsp.:


    Eingabe Feld 1: 5
    Eingabe Feld 2: 95
    Ergebnis Feld 3: 0,18


    Ich habe da an ein DBLookUp gedacht, allerdings komm ich nicht so richtig klar (Denkfehler wegen Verknüpfung!?!?).


    Wäre toll, wenn mir jemand auf die Sprünge helfen könnten.



    Vielen Dank!


    Marc

  • Das könnte mit einem einzelnen Lookup und geschickter Formelverknpfung schon gehen:


    Deine Spalte in der Lookup- Ansicht ist nach dem ersten Wert sortiert. Die zweite Spalte generiert Sir eine Formel als Rckgabewert, oder nur die Ranges, und die Formel wird im Ergebnisfeld gebildet, je nachdem was einfacher ist.


    Ich würde es in der ansicht machen:


    Code
    _formula := {@If( _myVal <= 80 ;} + @Text(WertA )+ {; _myVal <= 100; } + @Text(WertB )+ {; } + @Text(WertC) + { ) };_formula


    dann im Feld mit der Berechnung:

    Code
    _lkp:= DeinDbLookup;
    _formula := @ReplaceSubstring( _lkp ; "_myVal" ; @Text( EingabeFeld2 ) );
    @Eval( _formula )


    das hat einen Pferdefuss in Umgebungen mit verschiedenen Ländereinstellungen (wegen der Text- Konvertierung der Dezimalzahlen), aber vom Prinzip kann es klappen.


    Und der Vorteil: durch dynamisches generien der Spaltenformel kannst Du auch vier oder fünf Werte vergleichen, ohne an der Berechnungsformle im Dok was zu ändern...

  • @tode1


    Aber nicht so wie es der Antragsteller als Ausgang beschrieben hat, denn da sind die Grenzen und Werte in einzelnen Dokumenten abgespeichert.
    Bei dir wäre das alles in einem Dokument und die Grenzen in Ansichtsformeln festgelegt

  • Ob in einem Dokument gespeichert oder in mehreren spielt nur für den Ort eine Rolle, wo die Formel fu
    R eval zusammengebaut wird. Ist alles in einzeldokumenten, dann muss man die Formel halt erst im Berechnungsfeld zusammenbauen. Danke Formelengine kann man mittels implode relativ viel hinkriegen...


    Aber ich wollte ja auch nur zeigen, dass das mit dem richtigen Ansatz durchaus mit Formelspache zu machen ist, ob das sinnvoll ist, ist wieder eine andere Frage...