Problem mit If Abfrage

  • Hallo zusammen,


    ich habe folgenden Code in einer Ansicht:


    @If(r_pbuchung="Buchung Abrechnungsstelle";@If(r_perl="Ja";82;81);@If(r_bbuchung="Buchung Abrechnungsstelle";@If(r_berl="Ja";82;81);@If(r_fbuchung="Buchung Abrechnungsstelle";@If(r_ferl="Ja";82;81);@If(r_tbuchung="Buchung Abrechnungsstelle";@If(t_perl="Ja";82;81);@If(r_hbuchung="Buchung Abrechnungsstelle";@If(r_herl="Ja";82;81);"")))))


    Es soll die 82 angezeigt werden, wenn das erste Feld auf "Buchung Abrechnungsstelle" steht und das zweite Feld auf "Ja".
    Allerdings wenn die erste Bedingung zutrifft und die zweite aber nicht, soll mir 81 angezeigt werden. Es wird aber dann 82 angezeigt.
    Kann mir jemand helfen???


    Gruß

    • Offizieller Beitrag

    habs mal in eine lesbarere Form gebracht.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Kann mir da jemand helfen???
    Ich muss ja eine verschachtelte If Formel machen.
    Des klappt bei mir aber nich so wie's soll!
    Gibt's vielleicht auch noch was anderes außer @If, mit dem ich das lösen könnte????

    • Offizieller Beitrag

    ich bin mir noch nicht sicher was genau Du erreichen willst.


    Aber im Feld r_perl steht auch ein "Ja" und kein "ja"?
    Ansonsten kannst Du die Formel auch dahingehend anpassen, dass die Schreibweise von "Ja" egal ist.
    @If(@UpperCase(r_perl)="JA";82;81);


    Beschreib mal welche Werte in den Felder r_?buchung und r_?erl vorkommen können.


    Gruß
    Dirk

  • hatte das mal so gelöst...


    weil das andere zu unübersichtlich war.....
    vielleicht n anstatz


    @If(
    r_pbuchung + r_perl = "Buchung AbrechnungsstelleJa";82; r_bbuchung + r_berl ="Buchung AbrechnungsstelleJa";82; r_fbuchung + r_ferl = "Buchung AbrechnungsstelleJa";82;
    r_tbuchung + t_perl = "Buchung AbrechnungsstelleJa";82;
    r_hbuchung + r_herl = "Buchung AbrechnungsstelleJa";82;
    81)


    zwar auch nur ne if aber du bist ahlt sicher das alles gerüft wird
    und wie diali gesagt hat soltest du das uppercase verwenden

  • Also willst Du folgendes??


    @if(r_pbuchung = "Buchung Abrechnungsstelle" & r_perl="Ja" ;82;81)??


    Oder habe ich es falsch verstanden??

    • Offizieller Beitrag

    maestro


    der Code kann unter Umständen fehleranfällig sein, weil


    r_hbuchung + r_herl = "Buchung AbrechnungsstelleJa"
    ergibt auch True, wenn die Feld wie folgt ausgefüllt sind
    r_hbuchung = "Buchung AbrechnungsstelleJa"
    r_herl = ""


    oder
    r_hbuchung = "Buchung"
    r_herl = "AbrechnungsstelleJa"


    Gruß
    Dirk

    • Offizieller Beitrag

    die Version mit Options- und Kombinationsfeldern liegt auch nahe, deshalb auch "unter Umständen" ;) .


    Gruß
    Dirk

  • Hallo zusammen,


    ich veranschauliche mal mein Problem an folgendem Beispiel:


    r_xbuchung = Kombinationsfeld
    r_xerl = Kontrollbox



    @If(r_pbuchung = "Buchung Abrechnungsstelle" & r_perl="Ja" ;82;@If(r_bbuchung = "Buchung Abrechnungsstelle" & r_berl="Ja" ;82;81))


    Wenn jetzt r_pbuchung = "Buchung Abrechnungsstelle", r_perl nicht "Ja", r_bbuchung = "Buchung Abrechnungsstelle" und r_berl="Ja" ist, erscheint 82, es soll aber 81 erscheinen!

    • Offizieller Beitrag

    Aliase verwendest Du bei den Feldern aber nicht - oder?, dann musst Du auf diese prüfen.


    Z.B
    Ja|1
    @If(r_pbuchung = "Buchung Abrechnungsstelle" & r_perl="1" ;82;r_bbuchung = "Buchung Abrechnungsstelle" & r_berl="1" ;82;81)


    Gruß
    Dirk

    • Offizieller Beitrag

    die Formel sieht gut aus.


    Mach mal den Designer zu und den Notes-Client auch. Wie sieht es danach in der Ansicht aus?


    Lösche mal noch die Cache.ndk.


    Wo liegt die DB lokal oder auf einem Domino?


    Bau mal eine neue Ansicht und füge nur diese eine Spalte ein. Funktioniert es dann?


    Gruß
    Dirk

  • Die Formel so wie sie ist, stimmt schon, allerdings stimmt sie für das, was ich benötige nicht!
    Ich muss das Feld "r_xbuchung" auf den Inhalt "Buchung Abrechnungsstelle" überprüfen. Trifft dies zu, soll überprüft werden, ob das Feld "r_xerl" auf "Ja" steht.
    Von den feldern gibt es jeweils fünf Stück.
    Wenn das erste Paar nicht zutrifft, soll das zweit überprüft werden und so weiter.
    So bald bei einem Paar in dem Feld "r_xbuchung" der Inhalt "Buchung Abrechnungsstelle" steht aber im Feld "r_xerl" nicht "Ja", soll 81 ausgegeben werden.

    • Offizieller Beitrag

    prüfe es mal nur mit 2 Feldern, nicht mit allen 10! Grenze den Fehler ein! Irgendwo ist ein Fehler, entweder verstehen wir Dich falsch oder irgend etwas ist anders als wir es annehmen.


    Gruß
    Dirk

  • willst du die Prüfung für alle Felder.


    d.h. sobald keins von den fünf paaren auf den gewünschten wert enthält dann 81 aber so bald nur ein paar die werte enthält dann 82.


    oder wllst willst du für jedes paar entweder 82 oder 81