FileMaker

お役立ちブログ

スクリプトの汎用的な書き方

スクリプト上でフィールド設定をするときの、汎用的な記述方法についてご紹介します。

例えば、お店の売上を管理するシステムにおいて、売上記録時に食品か食品でないかによって、入力するフィールド項目や消費税計算が変わってくる、とします。

ただ、売上日時や個数、商品番号など、基本的な項目は同様なので、わざわざ2つのスクリプトを作成するのは、メンテナンス性も悪くお勧めできません。

今回は、カスタムダイアログとCase関数を利用して汎用化させたいと思います。

 

作成時にまずカスタムダイアログを表示し、

最終メッセージ選択 1 = 食品

最終メッセージ選択 2 = 食品以外 と設定します。

(最終メッセージ選択 3 = キャンセル として使用したいので、3項目以上ある場合は他の方法を使ったほうが賢明です。)

 

そして、フィールド設定の際に、区分のフィールド設定を下記のように記述します。

 

フィールド設定 [ 売上記録::区分 ; 

 Case ( 

  Get (最終メッセージ選択) = 1 ; “食品” ; 

  Get (最終メッセージ選択) = 2 ; “食品以外”

   )

 ]

 

そうすることで、その他の共通する項目は1種類の記述で済みますし、

区分ごとに分岐が必要な部分のみ、

 

If ( 売上記録::区分 = “食品” )

  フィールド設定 [ 売上記録::消費税 ; 8% ] 

Else

  フィールド設定 [ 売上記録::消費税 ; 10% ] 

End If

 

と分岐させるか、もしくはそれぞれすべて上記のようにCaseを利用しても設定可能です。

メンテナンス性が高く、簡略化して記述できるスクリプトはあとから見直してもわかりやすく便利ですので、ぜひご活用ください。

Case、最終メッセージ選択 に関しては、過去記事も合わせてご参照ください。

Case : https://kawai-j.co.jp/filemaker/12944/case/

Get(最終メッセージ選択) : https://kawai-j.co.jp/filemaker/18728/lastmessagechoice/

その他の記事

Middleについて

今回は、フィールドの値を1文字ずつ取り出して配置したい際に活用できる、Middle関数のご紹介です。

関数 Int について

Intは、小数点以下を無視した整数部分を返す関数です。数字関数 Int の活用方法をご紹介します。