初心者にもわかるファイルメーカーの
使い方

バーチャルリストについて(第二回)

2020-01-27 |  

こんにちは、2回目の投稿の服部です。

今回は前回グローバル変数に入れ込んだ値を表示するための方法について解説していきます。

その前に今回こそ使用するので前回の結果を貼り付けておきます。

まずはグローバル変数を全て入れこむためのフィールドを作成する方法からです。

この方法では$$VLを入れるフィールド(下図1)を作成し、そこからその中身を入れ込むためのフィールド(下図2)を作成します。

下図1ではレコード番号によって$$VLの中のどの行(上図参照)を取得して来るのかを決定します。(例えば、レコード番号1なら$$VLの1行目を取得します。)

その後、取得(1行目なら「A|女|22」)した値改行区切りに変更するべく「substitute」関数を使用します。

下図2では下図1にて取得したもの(1行目なら「A¶女¶22」)のどの行を取得するかを決定します。

※「¶」は改行区切りと捉えてください

1.

2.

その際ですが、一緒にレコードNo順に数字が入っているフィールドを作成しておいてください。(今回ですと上図1の途中にあるNoがそのフィールドになります)

こちらのフィールドがなぜ作成をするのかといえば、

変数を取得するテーブル、フィールドの変更もスクリプト次第で可能なので色々なマスタなどの情報をこのテーブル1つで持って来ることが出来ます。

ですが、それに伴って取得した値がレコード20個分入ることもあれば、100以上個入る可能性もあります。

その際にどこまでのレコード数が必要かを事前にスクリプト内で取得し、その結果をもとに見せるレコードを検索するのにレコードNo順に数字が入っているフィールドを持っておくと便利だからです。

これで後は必要なデータが入るフィールドをレイアウトに配置すればVLが出来上がります。

最後になりますが、$$VLを今回で言うDataフィールドを使わずTextフィールドのみでそのままさせる方法と、今回使用したNoフィールドについて話して今回は終わらせていただきます。

Textフィールドのみの場合ですと本日作成した、DataとTextフィールドの2つの関数を1つにまとめれば終わりです。正直それだけなので特に説明することもないのですが、このように1つにフィールドをまとめた場合は、Dataフィールドがいらなくなる代わりに全てのTextフィールドでDataフィールドの計算が追加で行われる分処理が重くなります。

今回利用したデータで話すと、「名前」「性別」「年齢」の3つのフィールドでDataフィールドの処理が行われることになります。まだ今回利用しているデータは少ないのでそこまで差はないですが、数が増えて来るとこのような違いでスピードに差が生まれて来るのだと考えております。

そしてNoフィールドについてですが、シリアル番号を利用し取得を行なっております。

以上で今回は終了とさせていただきます。

この度は閲覧していただき、誠にありがとうございました。