初心者のFileMaker pro Q&A

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス

Claris FileMaker Pro ヘルプ
新しい質問は、新規トピック から投稿して下さい。


#1 2018-05-29 17:58:54

ポップコーン
ゲストユーザー

特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

ある特定のレイアウト上でのみ、
キーボードの何かのキーを押すとスクリプトが走る、というようなことは出来ますか?

具体的にやりたい事は、
マウスを使わずにキーボード入力だけで全てが完結するように、
そのレイアウト上では+ボタン(キーボードテンキーの)を押すと新規レコードが作成される、
と言う風にしたいのですが。

つまり、何かをマウスで押さなくてもただ、+キーを押したらレコードが作成されるようにしたいのです。

そのようなことはできますでしょうか?

よろしくお願いいたします。

#2 2018-05-29 18:48:12

Hiro
メンバー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

スクリプトトリガー「OnLayoutKeystroke」を調べてみて!
ヘルプ → https://fmhelp.filemaker.com/help/16/fm … ke.html%23

オフライン

#3 2018-05-30 12:18:05

ポップコーン
ゲストユーザー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

Hiroさま ありがとうございます!

解決・・・したと思ったのですがなぜかどのキーを押してもスクリプトが走ってしまいます。

If[Code ( Get ( トリガキー入力 ) = 9)]
スクリプト実行[新規レコードが作られるスクリプト]
End If
現在のスクリプト終了

というスクリプトをOnLayoutKeyStrokeに仕込んだのですが
何が間違っているのでしょうか・・?

また、
https://fmhelp.filemaker.com/help/16/fm … ect_header
こちらにtabキーが番号9となっていたので上記のとおり9を入れたのですができれば+キーで新規レコードが作られるスクリプトが走るようにしたいです。
上記の表に乗って無いのですが+キーの番号はありますか?


すみませんがもう少しお付き合いいただけたら幸いです。
宜しくお願い致します。

#4 2018-05-30 13:22:10

mic
メンバー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

If[Code ( Get ( トリガキー入力 ) = 9)]

比較がcode関数内になっているせいですね。

Get ( トリガキー入力 ) = 9
これは「9」を入力したときだけ1、それ以外は0を返し、
Code ( 0 )は48、Code ( 1 )は49を返すので常にIfの判定がTrueになるためです。

If[Code ( Get ( トリガキー入力 )) = 9]
としたら意図した動作になるのではないでしょうか。

「+」で反応させたい場合は
If[Code ( Get ( トリガキー入力 )) = 43]
ですかね。

オフライン

#5 2018-05-30 13:22:19

qb_dp
メンバー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

[)] カッコの位置が間違っています。

If[Code ( Get ( トリガキー入力 ) = 9) ]
スクリプト実行[新規レコードが作られるスクリプト]
End If

If[Code ( Get ( トリガキー入力 )) = 9]
スクリプト実行[新規レコードが作られるスクリプト]
End If

オフライン

#6 2018-05-30 14:00:13

ポップコーン
ゲストユーザー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

・・・・できました!!・・・**** m(_  _ )m
ありがとうございます!!

#7 2018-05-30 14:48:05

Hiro
メンバー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

皆さんご指摘の通り例示の条件式は間違っています。
当初の希望通り、
『> そのレイアウト上では+ボタン(キーボードテンキーの)を押すと新規レコードが作成される』
(※テンキー上の+キー[#43]はSHIFTキー[#1]との併用の必要がないのがポイントなので)
なら、そのスクリプトは、

・If[Code(Get(トリガキー入力))=43 and Get(トリガ修飾キー)=0]
・   スクリプトステップ [新規レコードを作成する]
・   現在のスクリプト終了[結果:0]
・End If

オフライン

#8 2018-06-01 11:22:17

ポップコーン
ゲストユーザー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

Hiroさま
ありがとうございます。

無事できました。実は+キーだと始め出来ても+という文字がフィールドに入ってしまって使いづらいと
感じたのでみなさんに教えて頂いたtabキーを割り当てていたのですが
今もう一度Hiroさんの書き方でやってみたら普通にできたのでよかったです。

実は今使っている旧システムが+キーで新規なので使用者にとっては今までどおり+キーの方が使いやすいだろうなとは思っていました。
tabなどいろいろなボタンに割り当てられるのが分かったのでtabの方が近いし押しやすいとなったらすぐに変更できたりと
選択肢が広がりそうです。

重ねて皆さま、有難うございました。

#9 2018-07-03 14:34:56

ポップコーン
ゲストユーザー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

すみません・・!今度はマイナスキー(キーボードのテンキーの右上にあるやつ)
を押したらどうこうなるようにしたいのですが番号は何番になりますか?
また、そういうのが載っている一覧はどこにありますでしょうか?

#10 2018-07-03 14:52:27

mic
メンバー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

カスタムダイアログを表示 [ Get(トリガ修飾キー) ; Code( Get(トリガキー入力) )]

オフライン

#11 2018-07-03 16:06:58

Hiro
メンバー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

動作検証してないのでアイデアだけですが、

「-」キー操作は、キーボード上のとテンキー上のとで違いがないので、
あえて違いを作り出す必要があるでしょう。
キーボードに関わらずスクリプトを誘発するキー操作を、
   「-」入力キー + 「Shift」修飾キー
と、2キー併用にして区別するのはどうでしょう?

If[Code(Get(トリガキー入力))=45 and Get(トリガ修飾キー)=1]


※「修飾キー番号」解説ヘルプはココ → https://fmhelp.filemaker.com/help/16/fm … ect_header

オフライン

#12 2018-07-05 09:31:20

ポップコーン
ゲストユーザー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

mic様、Hiro様、ありがとうございます!
micさまのコードをトリガに仕込んで番号調べました。  F9~F12あたりが出て来ないのですがこちらは無理と言う事なのでしょうか・・?(すみません、現場からF12とかが押しやすいのでは?と言う声が上がったので。)
Hiroさまのやり方で現在はShift+tabとtabでやっております。
自分的にはこれがやり易いのですがパソコンに慣れていない人はShift+~とかがやりにくいのでは?と言われてしまいました。。

#13 2018-07-06 10:12:15

チポ
メンバー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

Macでは
  F1〜F4
  F7〜F12
はコードが得られませんでした。
他のFキーはコードが得られます.

おそらくWinでも同じかと思いますが、、

数字キーとか、矢印キーなどはダメでしょうか?


私はテーブルを作り、
キーとコードの対応表を作っていますよ。

オフライン

#14 2018-07-06 11:42:20

Shin
メンバー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

> Macでは
>   F1〜F4
>   F7〜F12
> はコードが得られませんでした。
これらのファンクションキーに OS レベルで別機能(ボリュームとか画面の明るさなど、キーボードに刻印してありますよね)が割当られているためでしょう。Fn キーを同時ながら叩くとコードが得られるはずです。または、環境設定でそれを解除すると、動きが逆になります。
Windows でも同じだったと思います。その設定がどこかにあったと思いますが、見つけられませんでした。

オンライン

#15 2018-07-10 08:58:44

ポップコーン
ゲストユーザー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

チポさま、Shinさま、ありがとうございます!
Windowsで使っている為、Fnキーと言う物も無いような気がしますし、F12をそれだけを叩いても何も返ってこないのでなんかちょっと難しいそうな感じがしますね。

>MacではF1〜F4 F7〜F12はコードが得られませんでした。他のFキーはコードが得られます.
Winでも同じでした。

Shift+Tab とTab でやってます! それで落ち着きそうな気がします!

#16 2023-11-14 15:19:33

yr
ゲストユーザー

Re: 特定のレイアウトではあるキーを押すとあるスクリプトが走るようにしたいのですが

hgdf

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer