2 Replies Latest reply on Mar 24, 2015 2:42 AM by neko3

    質問です

    neko3

      ADDRESSテーブルでテキスフィールド[名前]に山田太郎と入力、テキストフィールド[電話]に10001000と入力、テキストフィールド[メアド]にqwerty@taroyama.comと入力しました。

      一方、ToDoテーブルでテキストフィールド[名前],[電話][メアド]を作りました。

      ここで両テーブル間で[名前]によるリレーションを作成して、それによって引いてきたADDRESSテーブルの[電話]と[メアド]の値をToDoテーブルの[電話][メアド]フィールドにコピペする、「電話コピペスクリプト」と「メアドコピペスクリプト」をそれぞれ作りました。

      次にこのスクリプトを動かすための各々にボタンを作り、リレーショナルでデータが来ている場合に限りボタンが表示される設定としました。

       

      リレーションをルックアップのように使いたいわけなのです。また、ToDoテーブルの[電話][メアド]フィールドを自由に書き込みもできるものにしたい。

       

      これでToDoテーブルの[名前]フィールドに山田太郎と打ち込むと、当然確かにデータが来ているのですが、表示されるのは「電話コピペスクリプト」を設定したボタンだけで「メアドコピペスクリプト」のボタンが表示されませんでした。

       

      どうしたものかと設定や定義をあちこち確認したのですが自分には見当がつきませんでした。

      そこで試しにメアドの「qwerty@toroyama.com」に換えて「123qwerty@toroyama.com」と打ち込んだところが、仰天、表示されたのです。

      どうも先頭文字に半角数字があると表示されるようです。

       

      しかし、固有のメアドに数字を付け足すとメアドでなくなってしまうし、テキスト関数をかますのも釈然としません。

       

      自分の何が間違っているのでしょうか?

      当方プログラム知識ほぼ無しのほぼ初心者みたいなもので投稿場所もここでいいのか不安ですがよろしくお願いします。

      (添付ファイルのスクリプトは少し変えてありますが反応は同じです)

        • 1. Re: 質問です
          shinsplash

          もっと楽にできる方法がありますが、まずは現在の疑問点にのみ回答します。

          ボタンを隠す評価式が次のようになっています。

          If ( ADDRESS 3::メールアドレス; 0 ; 1 )

          意図としては、おそらくメールアドレスがなければボタンを隠す、とされたいのでしょうか。

           

          上記判定式では、メールアドレスのフィールドの文字列をif文で論理値として単に評価していますので、結果は0となります。

          この部分を明示的な評価式で書くと、FileMakerはつぎのような判定をしていることになります。

          GetAsBoolean( “qwerty@toroyama.com” )

           

          前述の目的で、テキストの値の有無を判定される場合は、次のようにしてみてください。

          If ( not IsEmpty(ADDRESS 3::メールアドレス); 0 ; 1 )

          あるいは

          If ( IsEmpty(ADDRESS 3::メールアドレス); 1 ; 0 )

          • 2. Re: 質問です
            neko3

            ShinNinagawaさま、ご返信ご教授有難うございます。

            さっそくやってみたところ上手く表示させることが出来ました。

            どうやら私の意図するところと私が実際に設定したものとは似て非なるものだったようです。

            データというものの取り扱いについてはやはりそれなりの留意が必要で、表計算でセルを選択して条件式に組み込むような感覚というのは無理なようですね。

            しかしそれでこそデータを扱うソフトなんだなということで改めて一から勉強していきたいと思います。

             

            さて質問への回答のお願いついでといっては恐縮なのですが、おっしゃっている「もっと楽にできる方法」というのをお教えいただけないでしょうか。

            よろしくお願いいたします。