3 返信 最新の回答 日時: Sep 5, 2013 6:39 AM ユーザー:disabled_winfried

    Case関数について

    keiichi

      こんにちは。 shouzuです。

      FM12adv Mac10.8です。


      Caseについてなのですが、

      以下のフィールドがあります。

      納入2013年

      納入2014年

      納入2015年

      納入2016年

      納入チェック

      そして納入チェックのフィールドの計算式に

      Case (

      納入2013年 = "2013" ; "¶2014¶2015¶2016 ;

      納入2013年 = not IsEmpty ( 納入2013年 ) ;"2013¶2014¶2015¶2016" ;

      納入2014年 = "2014" ; "2013¶¶2015¶2016" ;

      納入2014年 = not IsEmpty ( 納入2014年 ) ;"2013¶2014¶2015¶2016" ;

      納入2015年 = "2015" ; "2013¶2014¶¶2016" ;

      納入2015年 = not IsEmpty ( 納入2014年 ) ;"2013¶2014¶2015¶2016" ;

      納入2016年 = "2016" ; "2013¶2014¶2015¶" ;

      納入2016年 = not IsEmpty ( 納入2016年 ) ;"2013¶2014¶2015¶2016"

      )

      と、したのですが、納入2013年分は動作するのですが、

      納入2014年以降が動作しないのです。

      納入2013年と、納入2014年とかの位置を入れ替えると動作します。

      何か違いますか?

      どうかご教授お願い致します。

        • 1. Re: Case関数について
          user14047

          意図がよめないのですが、やりたいことはこういうことでしょうか?

           

          Case ( 納入2013年 = "2013" ; ¶ ; "2013¶" ) &

          Case ( 納入2014年 = "2014" ; ¶ ; "2014¶" ) &

          Case ( 納入2015年 = "2015" ; ¶ ; "2015¶" ) &

          Case ( 納入2016年 = "2016" ; "" ; "2016" )

           

          納入2013年 フィールドに 2013 という値が入っていたら 改行 をかえし、それ以外であれば 2013改行 という値を返す。納入2014年 フィールド以下も同じことを繰り返してそれを & で結ぶ。

           

          納入2013年 フィールドに 2013 が、納入2014年 フィールドに 2014 という値が、入っている場合は

          ¶¶2015¶2016 という結果がかえります。

          • 2. Re: Case関数について
            keiichi

            user1407様ありがとうございます。

            shouzuです。

             

             

            それぞれの納入年フィールドには各年を入れます。

            例えば

            納入2013年は”2013”もしくは””のどちらかで、

            納入2014年は”2014”もしくは””のどちらかです。

            値一覧よりチェックマークで格納します。

            納入年と納入月日を視覚的に一覧で表示したくてこれを考えました。

             

             

            納入チェックのフィールドは、未納入のチェックに使おうとおもいます。

            未納入年の数字を残し、リレーションで表示する、と、いう使い方をしたいので、

            納入年に格納されている場合は、リレーションしないように消したいのです。

            そこで、このようにしたいと思ったのですが・・・

             

             

            user1407様の計算式で、出来ました。

            本当にありがとうございました。

            • 3. Re: Case関数について

              Caseステートメントが最初に一致するものを返すことに注意してください!

              2016年、2015年、2014年、2013年の順序を変更し、それが動作します。

               

              アプリケーションが今年から独立してください、そうしないと、毎年、それを変更する必要があります。

               

              Please be aware that a Case statement returns the first match!

              Change the order of years to 2016, 2015, 2014, 2013 and it will work.

               

              Make your application year-independent, otherwise you have to change it every year.

               

              Winfried