ファイルメーカーの開発のヒント(初心者向け編)「ポータルを使ってみよう!(挿入編)」
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. ボタンにスクリプトを設定して終了です。
これを応用して、
・クリックした下の行に挿入する ・クリックした行をコピーする
などもできますね。
また、見積書のレイアウトに戻った後に、「挿入した行にカーソルが移動」していると便利ですね。 「ポータル行へ移動」を使うと簡単にできますので、ぜひ試してみてください。