第101回 カードウインドウで商品を選択して登録する

こんにちは。 エヌ・ケイ・カスタマイズの大村です。
もう6月ですね。そろそろ梅雨入りかなー、と思っていたのですが、意外にも、今週の鹿児島は晴れマークが並んでおります。
とはいえ、今のうちに、雨具や防災の準備をしておきましょう。情シスやサバ管にとっても、大雨、落雷、台風などが心配な季節ですね。

以下の記事は、Claris FileMaker 関数・スクリプトガイド(バージョン 19 対応)より、
「14.カードウインドウに選択肢を表示する(806ページ)」を元に掲載しています。

この文献から、カードウインドウを開く前に、あらかじめ「フィールドに移動」しておく、という工夫を学びました。文献の執筆者、関係者の方々に深謝いたします。

なお、このブログ記事の趣旨は、弊社所属スタッフの Claris FileMaker 学習の成果を公開することを目的とし、同時に、参考文献の内容の紹介に資するものであることを Claris International Inc. が確認しています。

Claris FileMaker 公式トレーニング教材



さて今回は、カードウインドウを使った、ちょっとした技です。
Claris FileMaker 公式トレーニング教材の「Claris FileMaker 関数・スクリプトガイド」で初めて知りました。
意外な盲点といいますか、裏技みたいな技です。今回は、それを題材に。

利用場面

例えば、見積書の明細行(ポータル)に商品を登録する場合を想定して、その手順を想像すると、

  1. 商品マスタの一覧をカードウインドウで開いて
  2. カードウインドウ上で商品を検索、選択して
  3. その商品IDをポータル内の行に登録

といった手順で登録する、そんな場面が想像できます。


考え方

「カード」は別ウインドウで開きます。その開いたカード上で商品を選択して、商品IDを取得(変数に格納)します。
その後、元のウインドウに戻って、取得した商品IDを登録するわけですが、ここで、ひとつ壁が生じます。

通常は、[フィールド設定]スクリプトなどを利用して、取得した商品ID(変数に格納)を登録することになると思います。ここで常識的に考えると、[フィールド設定]スクリプトを利用する際は、ターゲットフィールドを指定する必要がある、と思ってしまいますよね。実際、どうやって指定しようか、その方法に迷ってしまうわけです。

「フィールド設定」スクリプト


ところが、実は、ここで指定しなくても良い、という方法があるのだそうです。
指定されていない場合は、アクティブなフィールドに値が入るのだそうです。
ということは、あらかじめ、登録したいフィールドをアクティブにしておいて、それからカードを開いて戻ってくれば、そのまま[フィールド設定]スクリプトで登録完了、となるわけです。うーん、騙された感じです。

関数・スクリプト実装例

(1)下記のようなレイアウトを準備します。

見積画面(ポータル)
商品マスタ(カード)


見積画面から、商品マスタをカードで開いて利用します。

商品検索ボタンを押して、カードで開く


(2)見積画面の「商品検索」ボタンには下記スクリプトを設定します。


カードを開く前に、目的の[フィールドへ移動]しておくのがポイントです。
ここでは、ポータル内の行でボタンを押しているので、そのポータル内のレコードの「商品コード」フィールドへ移動(アクティブにする)しておきます。
その上で、カードを開きます。今回は、カードの高さを「500」に設定します(ここは適時調整してください)。

フィールドへ移動してからカードで開く


(3)商品検索画面の「選択」ボタンには下記スクリプトを設定します。

変数に商品コードを格納し、ウインドウを閉じた後に、設定先を指定していない [フィールド設定] スクリプトステップで商品コードを設定します。商品検索画面を開く前に [フィールドへ移動] スクリプトステップでフィールドをアクティブな状態にしておいたので、商品コードへ値が入ります。

アクティブなフィールドに登録される


動作確認


あっさりと、登録完了しました。

まとめ

ターゲットフィールドを指定しない、という、意外な?方法でした。

今回は以上になります。次回も引き続きよろしくお願い致します。

では来週もお楽しみに!



参考文献: Claris FileMaker 公式トレーニング教材 から、「Claris FileMaker 関数・スクリプトガイド」 等を参考にしています
https://content.claris.com/fmb19_reg-ja