FileMaker Formel

Dieses Thema im Forum "Software" wurde erstellt von Taleung, 4. Mai 2004.

  1. Taleung

    Taleung New Member

    Servus,

    hock' gerade mal wieder auf der Leitung

    FileMaker 6.0, zwei Felder, wenn in einen eine bestimmte Nummer eingegeben wird, soll im zweiten automatisch eine dazugehoerige Nummer erscheinen.
    Die Nummer im ersten Feld ist nicht immer die Gleiche, es sind verschiedene Nummern, denen aber im zweiten Feld eine bestimmte Nummer zugeordnet ist.

    Danke.....
     
  2. volkspost

    volkspost New Member

    mit einer "wenn-dann"-formel, die du dann noch verschachteln musst also etwa
    "wenn A1=5 dann 5; sonst wenn A1=4 dann 8; sonst 19"
    wenn Du mir die Bedingung (Zahlen) schickst, kann ich dir die formel schnell posten.

    viele grüße

    volker
     
  3. Taleung

    Taleung New Member

    Servus Volker,

    Die Zahlen sehen so aus:

    Leisten#:994, 655, 929, 648
    Hinterkappen#(fuer alle drei) 655

    Leisten#:418, 015, 743
    Hinterkappen# (fuer all drei) 802

    Leisten# 140, 294, 277
    Hinterkappen# 140

    Wenn ich eine von diesen Nummer im Feld "Leisten" eingeben sollte automatisch die Nummer vom Feld "Hinterkappen" erscheinen.

    Danke dir....
     
  4. ChinaNorbert

    ChinaNorbert New Member

    kannst auch den "falls ..." befehl benutzen.
    Das erspart schwierige Verschachtelungen.
    Habe "früher" auch ganz lange Verschachtelungen gebaut, bis ich drauf kam, dass es mit falls oftmals viel einfacher geht.

    Musst nur darauf achten, dass die Bedingungen in der richtigen Reihenfolge aufgelistet werden, denn die Formel testet von oben beginnend. Sobald eine wahre Bedingung erfüllt ist, bleiben die nächsten folgenden unberücksichtigt.

    Norbert
     
  5. Taleung

    Taleung New Member

    Nie Hau Norbert,

    das war meine erste Idee, nur bin ich Moment zu bloed, mit der Falls-Formel umzugehen.

    Hast ein Beispiel parat?

    xie xie.....
     
  6. ChinaNorbert

    ChinaNorbert New Member

    Also ist ganz einfach, nix Verschachteln mit wenn...dann

    Falls(
    Leistenfeld=994;655;
    Leistenfeld=655;655;

    usw.

    Leistenfeld=418;802;
    usw.
    "")

    Statt Leistenfeld musst du deinen Feldnamen benutzen. Das letzte "" bedeutet "kein Eintrag" und erscheint immer, wenn keine der Bedingungen zutrifft. Kannst aber auch einen konkreten Eintrag erscheinen lassen.
    Achte drauf, dass die Formel als Zahlenfeld" definiert ist, wenn die Werte auch Zahlen sind.

    Norbert







    Leisten#:994, 655, 929, 648
    Hinterkappen#(fuer alle drei) 655

    Leisten#:418, 015, 743
    Hinterkappen# (fuer all drei) 802

    Leisten# 140, 294, 277
    Hinterkappen# 140
     
  7. Olley

    Olley Gast

    ergänzung zu chinanorberts beitrag:

    das feld "leisten" als textfeld definieren. sonst wirds mit dem eintrag 015 nichts!
     
  8. Taleung

    Taleung New Member

    Servus Norbert,

    Ich bekomm folgende Fehlermeldung:
    This field cannot be use here because it would cause a circular defination

    :confused:
     
  9. Olley

    Olley Gast

    1. feld= leisten, typ=text
    2. feld=hinterkappen typ=formel/zahl

    in das zweite feld setzt du die formel von chinanorbert ein.
     
  10. Taleung

    Taleung New Member

    ok...lassen wir's fuer heute... bin zu doof...

    Jetzt kommt die Fehlermeldung: Field not found
     
  11. robgo

    robgo New Member

    Ich nehme an, das Feld mit Deinen Grundwerten ist konstant und es soll hier Feld1 heißen.
    Feld2, das mit den Ergebnissen, definierst Du als Formelfeld.
    In die Formel musst Du natürlich den genauen Namen von Feld1 eintragen, Du kannst es auch aus dem oberen linken Kasten auswählen und per Doppelklick oder Leertaste in die Formel unten einfügen. Dann stimmt der Name.
    Du kannst Berechne als Zahl angeben, aber Olley hat schon darauf hingewiesen, daß FM dann die Null vorne wegmacht, und hinten die evtl. Kommastellen, wenn es Null sind ...

    wenn(
    Feld1 = wert1; ergebnis1;
    Feld1 = wert2; ergebnis2;
    Feld1 = wert3; ergebnis3;
    Feld1 = ...;...:
    "ergebnis ansonsten")

    also genau, wie von den anderen beschrieben. Zum Schluß kommt also ein wert, der das Ergebnis enthält, wenn der Feldwert nicht irgendeinem Wert entspricht.
    Ein Zirkularschluß ist wenn du Feld1 in der Berechnung für Feld2 brauchst und dort aber auch den Wert für Feld1 berechnest.
    Der Name von Feld1, darf keine Sonderzeichen etc. enthalten. sonst kann es nicht in einer Berechnungsformel benutzt werden, also nicht "Leisten#".
    praktisch ist auch bei einem Textberechnunsfeld und wenn das Ausgangsfeld ein Textfeld ist (hier "Leisten") die Werte und Ergebnisse in Anführungszeichen zu stellen.
    Also Namen ändern und
    "Hinterkappen" (wenn ich es richtig verstehe) als Berechnungsfeld mit folgender Formel
    Wenn(
    Leisten = "994"; "655";
    Leisten = "929"; "655";
    Leisten = "648"; "655";
    Leisten = "418"; "802";
    Leisten = "015"; "802";
    Leisten = "743"; "802";
    Leisten = "140"; "140";
    Leisten = "294"; "140";
    Leisten = "277"; "140";
    "keinWert")

    Es sollte auch so gehen:
    Wenn(
    Leisten = 994 ODER Leisten = 929 ODER Leisten = 648; 655;
    Leisten = 418 oder ... oder ; 802;
    ...;
    "keinWert")
     
  12. Taleung

    Taleung New Member

    Servus,

    vielen Dank fuer die Hilfe. Jetzt klappt es zu 50%

    Die erste Zeile wird angenommen und auch ausgefuehrt, nur bei der zweiten Zeile bekomm ich eine Fehlermeldung, es seinen zu viele Trennzeichen in der Formel.
    Ein Teil der ersten Nummer in der zweiten Zeile erscheint dann als markiert.

    Danke.....
     
  13. ChinaNorbert

    ChinaNorbert New Member

    kopiere doch mal deine Formel und zeige sie uns. Ich denke, dass es zu wenige ";" gibt o.ä. Hast dich nicht exakt an die Konvention gehalten.

    Ich maile dir ein Beispiel in fp6

    Norbert
     
  14. ChinaNorbert

    ChinaNorbert New Member

    Es gibt zwei Felder

    1. Feld heißt "Leisten". Ist ein Textfeld
    2. Feld heißt Hinterkappen. Ist ein Formelfeld mit Typ Zahl (kann auch Text sein).

    Das Feld Hinterlappen hat folgende Formel:

    Falls(
    Leisten = "994"; 655;
    Leisten = "655"; 655;
    Leisten = "929"; 655;
    Leisten = "648"; 655;
    Leisten = "418"; 802;
    Leisten = "015"; 802;
    Leisten = "743"; 802;
    Leisten = "140"; 140;
    Leisten = "294"; 140;
    Leisten = "277"; 140;

    ""
    )



    Du musst genau die Semikolons setzen und darfst nicht die Klammern vergessen. Genau so geht es.

    Norbert
     

Diese Seite empfehlen