初心者のFileMaker pro Q&A (旧掲示板)

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

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

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


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

ポップコーン
Guest

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

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

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

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

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

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

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

Hiro
Member

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

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

Offline

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

ポップコーン
Guest

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
Member

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]
ですかね。

Offline

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

qb_dp
Member

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

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

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

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

Offline

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

ポップコーン
Guest

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

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

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

Hiro
Member

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

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

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

Offline

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

ポップコーン
Guest

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

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

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

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

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

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

ポップコーン
Guest

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

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

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

mic
Member

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

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

Offline

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

Hiro
Member

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

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

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

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


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

Offline

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

ポップコーン
Guest

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

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

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

チポ
Member

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

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

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

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


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

Offline

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

Shin
Member

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

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

Offline

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

ポップコーン
Guest

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

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

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

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

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

yr
Guest

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

hgdf

Registered users online in this topic: 0, guests: 1
[Bot] CCBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.012 seconds, 8 queries executed - Memory usage: 554.86 KiB (Peak: 575.77 KiB) ]