<変数を使ってみよう>

今回は変数です。変数はファイルメーカーのver8から新機能として使うことが出来るようになりました。それより以前のバージョンでは、スクリプトで一時的にデータを保存しておきたい時に、グローバルフィールドをフィールド定義で用意しておき、そのフィールドにデータを一時的に格納して使っていましたが、ver8よりそのような面倒な事をしなくても良くなりました。またVBなどの他の開発環境のように変数を宣言した後の使用後に変数の終了宣言などしなくてもよいのでとても便利です。変数を覚えるとスクリプトをより便利に、簡単に作成することが出来ますので是非覚えましょう。

変数には2つの種類があります。

 ローカル変数・・・実行しているスクリプト内でのみ有効です。スクリプト終了後は変数はクリアされます。
 グローバル変数・・・そのファイルを開いている間有効です。ファイルを閉じるとクリアされます。


よく使用するのはローカル変数ではないかと思います。ローカル変数は宣言時に頭に「$」の文字が付きます。グローバル変数の場合は「$$」が付きます。

 

 ■実際に使用してみましょう

今回は販売管理などで顧客データ、納品データから請求書のデータを作成するスクリプトでローカル変数を使ってみましょう。





上記のような3つの簡単なテーブルがあります。



請求書テーブルに請求年月を選択させるためのグローバルフィールド
「g請求年」と「g請求月」を用意します。ポップアップメニューで年月を
選択できるようにしておくと便利でしょう。


上記が請求書データを作成するために必要な最小のスクリプトとなります。
変数$yearに請求年、変数$monthに請求月を格納して、顧客データで
顧客コードを変数$kokyakuに格納して、請求データで新規レコードで
レコードを作成して、フィールド設定で変数を各フィールドに格納しています。
顧客データの最初から最後までをLoop〜End Loopで繰り返して作成しています。


5件の顧客が登録されています。


2008年10月を選択して、請求書一括作成実行ボタンを押します。



請求書データが作成されました。 但し、納品データのない002と005の顧客コードの
請求書データも作成れてしまいました。納品のない顧客の請求書データを作成
したくない時のスクリプトは以下のようになります。

納品データの金額を確認するリレーションは上記のようになります。


If〜End If文を使用して納品で金額が0以上の場合は作成するようにします。


今度は納品の金額がある請求書のみ作成されました。

しかし、このスクリプトで再度ボタンを押すともう一度請求書データが作成されて、
重複した請求書データが出来てしまいます。以下のスクリプトでは「選択した年月
の請求書データが0の場合は」という条件をandで追加しています。

重複データを確認するリレーションを作成しておいて、


以上のようにスクリプトを作成します。
このスクリプトだと既に作成済みの請求書は新規に作成されません。


以上のように変数を使用すると、データを一時保存しながら自由にレイアウトを行き来できるので、とても便利です。みなさんも変数を使ってスクリプトを作成してみてください。

Copyright FINETECH All rights reserved.