スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | TB(-) | CM(-)

ファイルメーカーで機器台帳 ~(79)機器台帳に登録(7)スクリプト~

いや~どうも
寒い日には何が食べたいですか?やっぱ鍋だよね、にんにくに白菜とバラ肉のシンプルなやつ。
うまいよね~、今夜はビールと共に!

さて、前回はダイアログを使った意思確認とif文での分岐でしたね。
問題点としては
問題点1:本当に登録するつもりがあったのか?
問題点2:必要項目が入力されていない場合もある
問題点3:途中で登録キャンセルできる様に分岐させる必要もある
問題点4:スクリプト途中で制作者の予期しない行動をする場合がある
以上のうちの問題点1の解決でした。
今回は問題点4についてです。なんで2を跳ばすかって?だって4の方が簡単だからなんだよ~

はい、問題点4ですがスクリプトの途中で例えばウインドウを閉じたり削除ボタンを押したりなんてことがあると困っちゃうわけです。

で、次の命令文を付け足します。
・ステータスエリアの表示切り替え[ロック;隠す]
・ユーザーによる強制終了を許可[オフ]

ステータスエリアの表示切り替えでレコードの削除や新規作成といったボタンを隠してしまいます。更にロックすることでステータスエリアの表示を許可しません。

ユーザーによる強制終了はウインドウを閉じるボタンをクリックしても閉じないようにしてあります。スクリプトを強制終了することはできないようになります。

スクリプト20111218

今日はここまで、次回は問題点2です。

人生の分岐点にさしかかっているのか?
スポンサーサイト
[ 2011/12/18 12:15 ] 機器台帳 | TB(0) | CM(0)

ファイルメーカーで機器台帳 ~78.機器台帳に登録(6)スクリプト~

いや~残念でした。
いつかはこういう日が来るとは知ってても。
長い間おつかれさまでした。夫婦で仲良くね。

さて、前回は登録スクリプトに問題点を解消するため少し命令文を付け足しました。
今回は、まだある問題点について考えてみます。
制作者の意図に反してスクリプトが発動した場合それを防ぐための確認や分岐が必要となってきます。そういった視点から問題点について考えてみましょう

問題点1:本当に登録するつもりがあったのか?
登録スクリプトは「登録ボタン」のクリックで動き出すのですがクリックしたのはその気があったのでしょうか?誤ってクリックしたのかもしれませんし、ボタンを押すとどうなるのか興味があっただけかもしれません。

問題点2:必要項目が入力されていない場合もある
正しく項目が入力されていないと制作者の意図しない結果を招きます。ですからこれをふせぐため入力漏れ対策をする必要があります。

問題点3:途中で登録キャンセルできる様に分岐させる必要もある
登録するつもりでもやっぱり途中で登録キャンセルする場合もあります。このようなことにも対応しておく必要があります。

問題点4:スクリプト途中で制作者の予期しない行動をする場合がある
例えばウインドウを閉じたり削除ボタンを押したりルールを守らない無法者もいることを想定しなければなりません。

これらは「制作者」=「操作者」であれば必要のないことですが、そうでない場合にはきちんと対処しないといけません。(ビギナーの分際で偉そうにすいません)

今日は「問題点1」について解決します。
方法はカスタムダイアログを表示してそれに応じた動作をさせるということになります。

登録するかい

こんな風にダイアログを出して、あとはif文で命令を分岐させてあげればよいですよね。
ただこの時のようにYes or Noの選択時で意外に重要なのは、デフォルトで「いいえ」状態になっていることだと思いまんねん。Yesを選ぶにはマウス操作などあえてもう一手間が必要となるようしています。だってリターンキーでパン、パンなんて事結構あるじゃない。

まあ、このように一度ダイアログを出して本当にその気があるのかどうか確認します。
「登録するよ」を選択すればその次の動作が始まるわけです。

ちなみに今回までのスクリプトはこんな感じです

登録スクリプト20111217



今日はこの辺で。次回は問題点2です。

ちなみにその気があっても相手にしてもらえません(泣)

質問どうぞお気軽に
[ 2011/12/17 18:18 ] 機器台帳 | TB(0) | CM(0)

ファイルメーカーでカレンダーを作る なるほど

いや~どうも。
忘年会のシーズンが始まってきましたね。終電とかで乗り過ごしたらどうする?
俺はだまって歩いて帰ります。この前は3時間半歩いたよ(泣)

さて、ファイルメーカーのTIPSとしてカレンダーを使えたら自作ファイルの幅が広がるだろうなぁなんて思ってまして、過去にwebとかでいろいろ探したりして全くの我流で自作したことがありました。

今回プロの作ったものを拝見する機会がありまして、「なるほど!」がたっぷりありましたので紹介します。
なお、ここで紹介するは日付とリンクして予定表を作るなどという機能は無しの、とってもシンプルなカレンダーについてです。


カレンダー20111210

上図のカレンダーを作ります

フィールド数は4つになります。(g年、g月、日、月末)
過去に自作したもと比べると、とってもシンプルにできていて驚きです。
さすがプロだ!

それではカレンダー作成の考え方についてです。
1. 日付は計算で出す
2. 日付フィールドは繰り返しフィールドを使う(繰り替えし数は37)
3. 日付フィールドの一個目の一日前(上図で言うと一行目の最左の一日前、つまり11/26)の日付を求める
4. 3.の日付がわかれば後は[3.で求めた日付]+[繰り返し位置番号]でOK
5. 文字色は条件付き書式で色づけする
6. 矢印ボタンにスクリプトを割り付ける

考え方は以上ですが、難関だったのは
3. の日付を求めるところでした。こういった発想は柔らかい頭でないと思い浮かびませんね。
Date(g月;0;g年)とDayofweekを利用して←備忘録的コメント。
あと、基本的なことを知らなかったのがDate(月;日;年)関数の挙動です。日に0を入力すると前月の月末になるとか、月の部分に-1など計算式をいれても良いなどです。なんともお恥ずかしい次第です。
5. の条件付きは 一行目は日付が最大でも8以上になることはないですから8以上の場合とし、四、五行目は最大でも24を超えることはないので24以下となるわけだ。←備忘録的コメント。
それから、繰り返しフィールドと非繰り返しフィールドの計算は非繰り返しに[1]を付けることでExtend関数的な挙動をするのかな?←これも備忘録的コメント。

今回はまるで手品のようでした。種を明かしてしまえば「なーんだ」なのですが見ている最中は狐につままれたような感じです。

我流ではあんなに複雑だったカレンダーがとってもシンプルにできました。すごく良い勉強になりました。

つづきはDayOFWeeKシリーズにあり

そのうち、日付にリンクした予定表なんかにも挑戦したいと思います。
p388cellさん、プロの人ありがとう!

プロのテクニックってすごいよね、夜の街でプロのテクニックを体験してこようかな、うふっ。
[ 2011/12/10 15:27 ] ファイルメーカー | TB(0) | CM(0)

ファイルメーカーで機器台帳 ~77. 機器台帳に登録(5)スクリプト~

いや~どうも
今年も残すところあと一ヶ月となりましたねぇ、早いものです。

さて、前回は動作させたけど気になるところがあるところがある、でしたね。
今回はスクリプトに命令を付け足します。

スクリプト2

#大中カテゴリ、台数フィールドを初期化
フィールド設定で付け足した部分でそれぞれのフィールドを空欄にします。

#リストで表示する
の部分でレイアウトを元に戻さずリスト表示するようにします。こうすることで複数台のデータを登録したとしても一覧で確認することができます。

#今登録したデータを抽出する
の部分で検索により今登録したデータのみを抽出します。検索条件は管理番号が空白なものになります。

これでとりあえず前回あげた違和感は解消されます。

今回はここまで。次回はそのほかの問題点について考えてみます。時間があれば一度ビデオを挟むかもしれませんです、はい。

あ~人生の違和感はどうすれば解消できますか?
忙しくてファイルメーカーをやっている時間がねぇよ。
[ 2011/12/02 00:09 ] ファイルメーカー | TB(0) | CM(0)

ファイルメーカーで機器台帳 ~76. 機器台帳に登録(4)スクリプト~

いや~どうも
開き直ってい行きましょう。我流ですが何か?

さて、前回はスクリプトについて紹介しましたが、エラー処理とか全く考えていないシンプルなものです。
実際にはそういうことを考えて作るのですが今回はまずは動作させてみましょう。

ああ、当然カタログ台帳にサンプルデータを数個入れておかないとだめですよ。


下図のように登録ボタンを作り前回作ったスクリプトを割り当てます。

登録ボタン

この登録ボタンをクリックすると下図のように登録画面へ変わります。


この画面に替わってSTEP2部分のリストから任意のものを選びポータル内のボタンをクリックします。下図中で言うとポータル内の青ボタンがそうです。このボタンにもスクリプトを割り当てておきます。カタログ番号を自動的に放り込むスクリプトですよ。
どうですかボタンのクリックで自動的にカタログ番号が入力されましたか?

入力された後はカーソルが登録台数フィールドに移動しているはずです。
登録台数は今の段階では1でも100でもデータは1個しか登録されません。

次に登録ボタンを押すと画面が切り替わり「機器台帳(個別)」レイアウトになるはずです。
登録ボタンを押す前と見た目が変わっていないので実際に登録されたかどうか不安になりますがレコード数を見ると1個増えているはずです。
スクリプト登録画面


で、ここまで動作させて、ん?、違和感あるなぁと思ったところはありませんか。
各人において感じ方は違うと思いますが私の場合は、
・最後に登録ボタンを押した後レイアウトが元に戻って今登録されたデータが表示されないこと
・登録画面に切り替わったときにすでに大、中分類、リストと台数のところにすでにデータが表示されている
以上の点です。
他にも気をつけないといけないことはありますが次回はまず、このところについてスクリプトを修正しましょう。

今日はここまで。

だれか、おれの人生を修正してください。
[ 2011/12/01 13:31 ] ファイルメーカー | TB(0) | CM(0)







上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。