Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【FileMaker】数字をテンキーで入力したい

More than 3 years have passed since last update.

FileMaker Goではテンキーなど入力手段が色々と用意されていますが、ノートPCなどで数字を入力するのは、結構めんどくさいですよね。
なので、数字を入力するテンキーを実装しました。

動きについて

こんな感じです。
20160726_1.png

まずは、こちらで動きを確認です。
https://youtu.be/TYMEph0mFFw

数字パレットは、「入力値表示」以外は、ほとんどがボタンです。
20160726_pallet.png
上部の入力値は、テンキーで押された数値やボタンの結果が反映されます。

テーブル構成

テーブルは、テンキーの数字パレットと今回サンプル用のテーブルです。
それぞれの数字のグローバル変数には、あらかじめ数字が設定されています。
20160726_tbpallet.png

サンプル用のテーブルは、それぞれの環境での使用テーブルになります。
ここでは、適当な入力フィールドを作っています。
20160726_tbsample.png

数字パレットを表示するには

数字パレットを表示するタイミングを、スクリプトトリガのOnObjectEnterに指定します。
20160726_scripttrigger.png
このとき、スクリプトの引数として、数字パレットで決定した数値を設定するテーブル::フィールドとレコード番号を渡します。
入力フィールドに設定する方法は他にも方法はあるかと思いますが、今回は数字パレットの決定ボタンが押されたら、直接フィールドに設定する方法を取っています。

数字パレットを表示するスクリプト

何もめんどくさいことはしていません。
単に新規ウィンドウに数字パレットを表示するのがメインです。
ポイントは、入力値を表示するディスプレイフィールドを初期化しておくことです。
グローバルフィールドなので、前回の数値が残っていては、美しくないですよね。
20160726_script1.png

数字キーが押されたら

数字キーが押されたら、ディスプレイフィールドにどんどんつなげていきます。
これを、1〜0まで設定します。
20160726_script2.png

1数字消したい

入力した数字を1つ消したい場合もありますので、左矢印キーを作りました。
こちらも単純につなげたディスプレイフィールドから、右側の1数字を削っているだけです。
20160726_script3.png

全部消したい

入力し直したい場合として、「C」(クリア)キーを作りました。
単純にディスプレイフィールドをクリアします。
20160726_script4.png

入力値を決定する

入力した値を入力フィールドに反映します。
ついでに数字パレットのウィンドウも閉じます。
このウィンドウを閉じる動作のために数字パレットを表示するスクリプトではグローバル変数にウィンドウ名を入れていますが、タイミングとして実装方法によってはここでなくてもいいかもしれません。
20160726_script5.png

入力値を入力フィールドに設定する

今回、入力フィールドに入力値を設定する処理を別スクリプトで実装しています。
これは、場合によって入力フィールドに設定する方法が違うと思うので、設定部分を切り出して修正しやすくしています。
今回は、グローバル変数に保持しているフィールド情報をもとに、入力値を設定しています。
20160726_script6.png

どうでしょうか?
少しの実装で入力が楽になりますよ。

tyuma
個人事業主として、様々な言語や現場を経験し、FileMakerの仕事をしています。 汎用機からイマドキまでこなしてきていますが、もう体力的にJavaは打ち止めにしたいです。。。 現在はFileMakerで小回りの効くシステム開発をメインにお仕事を受注しています。
https://www.youtube.com/channel/UC98aghnO5siL91xf6_24R5Q
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away