4 返信 最新の回答 日時: May 26, 2015 11:45 PM ユーザー:user23503

    曜日に色を付ける

    user23503

      つもおせわになります。

       

      3つのフィールドがあります。

      基本テーブル)

        「月日」フィールド

        「曜日」フィールド  ➡  フィールドオプションを計算にして

                     DayNameJ(月日) を入れて曜日表示しています。

         

      (祝日テーブル)

        「祝日名」フィールド   基本テーブルと「月日」でリレーションおり、

       祝日の時には祝日名が出るようにレイアウトしています。

       

      そこで、 「曜日」フィールドの

           土曜日を青字

           日曜日を赤字

           祝日を赤字   にしたいです。

       

      土曜日、日曜日の設定は条件付き書式でできました。

      祝日を赤字にしたいのですが、方法がわかりません。

       

      TextColor ( テキスト ; RGB ( ; ; ) ) と

      IsEmpty ( フィールド )

       

      を組み合わせたらどうにかなるかな??と思って試していますが

      計算式の指定に既に DayNameJ(月日) がはいっている分と

      一緒にどう式を入れたらいいのかわかりません。

       

      ご教示お願いいたします。

       

        • 1. Re: 曜日に色を付ける
          user14047

          こんな式でどうでしょう?

          Let (
            [
            ~dayName = DayNameJ ( 月日 )
            ] ;
            Case (
                 // 祝日テーブルに祝日名があるか日曜日の場合
                 Count ( 祝日::祝日名 ) or ~dayName = "日曜日" ;
                      TextColor ( ~dayName ; RGB ( 255 ; 0 ; 0 ) ) ;
          
                 ~dayName = "土曜日" ;
                      TextColor ( ~dayName ; RGB ( 0 ; 0 ; 255 ) ) ;
          
                 // それ以外
                      TextColorRemove ( ~dayName )
            )
          )
          
          
          
          
          
          
          • 2. Re: 曜日に色を付ける
            user23503

            出来ました~ありがとうございます

             

            すいませんがひとつ教えてください

             

            Count ( 祝日::祝日名 ) って個数を数える関数ですよね?

             

            ここで使って、どうゆう風に関係するのか

            理解できてません。

             

            すいませんが教えてもらえますか?

            • 3. Re: 曜日に色を付ける
              user14047

              FileMaker 14 ヘルプ : Count

               

              Count 関数は確かに個数を数える関数ですが、ヘルプにあるようにフィールド内の空白を除く有効な値の数を返しますので、相手が空白の場合は数に加えられません。
              そして、if や case などの条件式の評価は、0以外の数字である場合に真になるので、1でも2でも条件を満たしたことになります(祝日テーブルに同じ日が複数登録されていることはないと思いますが…)。


              not IsEmpty ( 祝日::祝日名 ) or ~dayName = "日曜日" でも祝日テーブルに同じ日が複数登録されていなければ一緒ですね。

               

              祝日テーブルに同じ日が複数登録されていて、最初のレコードが空白だった場合は、たとえ2レコード目に祝日名が設定されていても、not IsEmpty ( 祝日::祝日名 ) だと最初のリレーション先のレコードのみが空白かどうかの判定になるので結果が違ってくることもある得る…とか、or や and とかで複数条件がある場合、not はどこの打ち消し?と、判りづらくなることもあるかもとか…で、こういった場合に自分は Count 関数を使うことが多いのでその癖でそうしてしまいました。

              • 4. Re: 曜日に色を付ける
                user23503

                なるほど。

                使い方次第で 違う意味の関数も

                上手く利用できるんですね。

                 

                勉強になりました。

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