ファイルメーカーの開発のヒント(初心者向け編)「ポータルを使ってみよう!(挿入編)」

2012年03月22日 11:12 PM

ファイルメーカーのTips


前回の掲載よりずいぶんと期間が空いてしまいました。 大変申し訳ありません・・。

さて、今回は「ポータルの挿入」編です。

明細の入力モレがあったから 「3行目と4行目の間の行に入力したい!」 などはよくあることですね。 しかし、普通にポータルにデータを追加入力していくと、ソート順を設定していない場合は 最後の行に追加されてしまいます。

せっかく頑張ってファイルメーカーでシステムを作って、がんばってポータルも配置したのに、 挿入ができないとちょっと不便ですよね。

ここでは、スクリプトを使って挿入する方法をご紹介します。

考え方としては、 『レコードに行番号を持たせて』 『行番号の昇順ソートをして並び替えを行う』  ことで 「挿入したように見せる」ということになります。

 

では、具体的に作っていきましょう!

 

1. フィールド定義で 見積明細テーブルに「行番号」を数字タイプで作成します。 オプションの「入力値の自動化」で計算値を選択し、「Get(レコード番号)」を入力します。

こうすると、ポータルに入力した際に、1行目だったら1を、5行目だったら5を取得します。

 

2. レイアウトモードでポータル設定を開き 「行番号の昇順ソート」に設定します。

 

3. ポータルにボタンを配置します。 (※図の中には次回予定の削除用ボタンも配置しています。)

 

4. ボタンに設定するスクリプトを作成しましょう。 今回は「クリックした行の上の行」に挿入する仕組みにします。 流れは下記のようになります。

・その行が最終行だった場合は、「摘要」フィールドへ移動 ↓ ・挿入するか、確認のメッセージを表示(これは省略してもいいです。) ↓ ・OKなら次へ、キャンセルなら中止 ↓ ・見積ID(見積明細とのリレーションキーです)、クリックした行の行番号を変数に取得 ↓ ・見積明細の関連レコードへ移動(関連レコードのみを表示) ↓ ・見積明細のレコードを作成 見積IDに「変数で持たせた見積ID」の値を代入 行番号に「変数で持たせた行番-0.5」の値を代入 (マイナスする値は、1未満なら0.5以外の値でもOKです) ↓ ・行番号でソート ここで、追加したレコードは、挿入したい位置に移動します。 ↓ ・行番号を1から始まるカスタム値で全置換 追加した行は小数点が入った状態なので、全明細を正しい行番号に修正します ↓ ・見積書のレイアウトへ移動

 

では、実際のスクリプトを見てみましょう。

 

いかがでしょうか?

ちなみに「行番号を1から始まるカスタム値で全置換」はこんな設定です。

 

5. ボタンにスクリプトを設定して終了です。

 

これを応用して、

・クリックした下の行に挿入する ・クリックした行をコピーする

などもできますね。

 

また、見積書のレイアウトに戻った後に、「挿入した行にカーソルが移動」していると便利ですね。 「ポータル行へ移動」を使うと簡単にできますので、ぜひ試してみてください。