iPhoneで食事箋4
では続きを作っていきます。連休の夜遅くに何作ってるんだか・・・。
さて、前のページでID、Passwordが空白なら処理中止までつくりました。
続きはどうするか?
新規にレコードを作って、そこに追加すればいいといえばそうなのですが、その前に考えておかなければいけないことがあります。
さて何でしょう?
それは、そのユーザーIDがすでに登録されていないか調べるってことです。
そういえば、FileMakerのスクリプト内ではユーザーではなくて「ユーザ」なんですよね。どうでもいいけど。
どうやって調べるかと言いますと、検索なんですよ。当たり前ですけど。
Accessだと、DcountとかSQLでSELECT Countとか使うところなんですが、条件式の書き方が面倒だったりするのです。
それに比べてFileMakerはといいますと、普通にレイアウト開いて検索するだけなんです。
これが非常に楽で・・・。
ということで、まずレイアウトを移動します・・・の前に追加の最終確認でもいれておきますか。
ここで「OK」を選択したときだけ先に進みたいので
このように書きます。
では続きを解説しながら・・・になってるかな。
まず新たに登録したいユーザーIDがすでに登録されていないか調べないといけませんので、そのIDを変数に保存します。
?変数ってなんぞ?
それはとても奥の深い・・・とかどうでもいいです。以前のページでグローバルフィールドがどうこう書きましたが、それよりもっと小さなメモ帳で、この処理が終わったら自動的に消えるやつと思っておいてください。ローカル変数というらしい。
変数を設定と入力すると、上図のようにどのような変数にするのか指定できます。
変数の名前は適当です。
一番始めに$を1つ入力、続けて変数名を加えます。
上の一文は
$UIDというメモ帳作って、そこに新しく追加したいユーザーIDをメモしておきます。
という意味。
今作業用に作成した「New_USER」というテーブルに、User名を入力したはずですから、それを変数に一時保存しておくわけです。
ついでにパスワードの方も変数にいれておきますか。
変数$UIDを条件にして検索したいので、レイアウトの切り替えから、まず検索に使いたい画面に移動します。
元のレイアウトとなっている部分をクリックすると移動先が指定できるので、「USER」を指定します。
頭のなかで想像しながら作業して下さい。
おそらくレイアウトが移ったはずなので、今度は検索していきます。
検索するには、
1、検索モードにして
2、検索条件入力して
3、検索実行
ですね。
一時停止はオフに切り替えておきましょう。いちいち処理が途中で止まっては困ります。
フィールド設定から順に選ぶと選択できます。
計算結果に
$UID
としてあげて検索実行
これで検索が完了したはずです。
今度はこの検索結果が何も無ければ次に進めたいので、またIfです。
この
「Get(最終エラー)=401」
が、検索結果が1つも無かった時という条件になります。
1件もなければ追加したいので
あとはこの画面を閉じたいので
これで終わりではないですよ?
今度は既に登録してあった場合の処理をしておきます。
Elseを選んであげると、
ちゃんと頭がそろってくれるので、
最後に元のレイアウトに戻した後、メッセージを表示させ、全ての処理が終わったら、メモ帳代わりに使ったグローバルフィールドを、次の登録にも使いたいので、
この2行でフィールドの値を消しておきます。
これはユーザーの新規登録画面を開く時にも実行させておくと間違いがないかな。
いきなり全部見ると作る気無くなりますが、1つずつのコマンドを見ると大したことしてないんです。
あとはこれを追加ボタンに指定して
ではこのユーザー新規追加画面を開くスクリプトも作成しておきます。
こんなもんでしょうか。
まずお決まりのエラー処理から、フィールド設定で作業用のグローバルフィールドにごみが残っていてはいけないので消しておき、
新規ウインドウを適当な名前で開いて、(ウインドウの調整はいらないかな?iOSだと勝手に全画面表示になるし。)
レイアウトの切替で登録画面を開く。
動くか試してみてください。