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

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

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

You are not logged in.

Announcement

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


#1 2020-05-11 09:55:06

reiwa2020
Member

50音ボタンの濁音を認識するには

よろしくお願いします。
FM18です。

名簿など検索件数が多いので、ふりがなで50音ボタンを作成しました。
50音ボタンを押すとボタンにアクティブで赤を設定して、押している色がわかるようにしました。
ボタンのオプションのスクリプト引数に"は"を設定したため「ば」や「ぱ」が認識されなかったため
FMヘルプに記載してある"~は"に変更すると「は」「ば」「ぱ」を認識するようになったのですが
「は」ボタンの色が赤を設定しているのにもかかわらず赤にならなくなりました。

良い方法はありますでしょうか。

Offline

#2 2020-05-11 10:29:44

Moz
Member

Re: 50音ボタンの濁音を認識するには

どのようにしてボタンを赤くしているのでしょうか?
アクティブというのはボタンにはないので
ボタンバーのアクティブセグメントの条件式を使っているということでしょうか?

赤くするための条件式を見直せば良いと思うのですがどのような条件式になっているのでしょう?

Offline

#3 2020-05-11 11:13:53

reiwa2020
Member

Re: 50音ボタンの濁音を認識するには

早速のご返信ありがとうございます。

ボタンバー:セグメントでアクティブで赤色、非アクティブで黒色のぬりつぶしになっています。
条件式はデーターベース内のでしょうか。

おねがいします。

Offline

#4 2020-05-11 11:24:09

Moz
Member

Re: 50音ボタンの濁音を認識するには

条件式はボタンバーのアクティブセグメントを指定する条件式のことです。
ボタンバー設定で[アクティブセグメント]と表示されている横のポップアップメニューで指定できます。

設定していない場合は最後に押されたセグメントがアクティブになります。
アクティブセグメントが設定されていない場合(「なし」となっているとき)

・同じボタンバーの他のセグメントが押された
・表示形式を切り替えた
・他のレイアウトに切り替えた

このような時にアクティブ状態が解除されます。

押したセグメントに必ず色を付けたいのであれば、
条件式を設定して検索スクリプト内でその条件が満たされるようにするか
アクティブセグメントではなく条件付き書式を設定して検索スクリプト内で条件が満たされるようにします。

引数をグローバル変数などに格納しておいて条件式で使うのが手っ取り早いでしょう。

Offline

#5 2020-05-11 11:47:43

reiwa2020
Member

Re: 50音ボタンの濁音を認識するには

返信ありがとうございます。

アクティブセグメントは、指定、計算式の指定内に顧客管理::g_アクティブセグメントになっています。

よろしくおねがいします。

Offline

#6 2020-05-11 11:52:43

Moz
Member

Re: 50音ボタンの濁音を認識するには

スクリプト内で「顧客管理::g_アクティブセグメント」を書き換える部分があると思われるので、
「は」を押した時に「は」のセグメント名が設定されるようにスクリプトを見直しましょう。

[フィールド設定]などがありませんか?

Offline

#7 2020-05-11 12:07:40

reiwa2020
Member

Re: 50音ボタンの濁音を認識するには

返信ありがとうございます。
フィールドにフリガナ頭があり計算式はcase(Left(姓_ふりがな;1)≥"あ"and Left(姓_ふりがな;1)≤"お";1;と
同じ「か」~「ん」までつづきます。
ここに「が」「ば」「ぱ」を入れるのでしょうか。

お願いします。

Offline

#8 2020-05-11 12:15:17

Moz
Member

Re: 50音ボタンの濁音を認識するには

アクティブセグメントを指定しているのは「顧客管理::g_アクティブセグメント」というフィールドなのですよね?
計算フィールドなのでしょうか?

Left(姓_ふりがな;1)≥"あ"and Left(姓_ふりがな;1)≤"お";1;

これはア行の時は1のセグメントという意味と考えられます。
「ば」「ぱ」と「は」が同じセグメントで動作するなら

Left(姓_ふりがな;1)≥"は"and Left(姓_ふりがな;1)≤"ほ";n;

この部分をコピペ&改変して

Left(姓_ふりがな;1)≥"ば"and Left(姓_ふりがな;1)≤"ぼ";n;
Left(姓_ふりがな;1)≥"ぱ"and Left(姓_ふりがな;1)≤"ぽ";n;

としたものを追加すれば良いように思われます。nは元の式を流用して下さい。

ところでファイルは誰が作ったのでしょう?お作りになった方がいるなら聞くのが早いのでは?

Last edited by Moz (2020-05-11 12:15:53)

Offline

#9 2020-05-11 13:47:07

reiwa2020
Member

Re: 50音ボタンの濁音を認識するには

返信ありがとうございます。
ファイルは初心者ながらいろいろなサンプルを解析しながら作成しました。
参考にしたサンプルファイルが「ば」などの濁音を認識していないことがわかり、FMヘルプでボタンのオプションのスクリプト引数を
"~は"に変更すると「は」「ば」「ぱ」を認識しますと書かれていたので設定して、認識するようになりましたが、ボタンの色がだめになりました。

Left(姓_ふりがな;1)≥"ば"and Left(姓_ふりがな;1)≤"ぼ";n;で変更してみます。

「は」のボタンで「ば」も「ぱ」検索する場合に、Left(姓_ふりがな;1)≥"ば"and Left(姓_ふりがな;1)≤"ぼ";n;ですと
「ば」のボタンも作成しないといけないのでしょうか

おねがいします。

Offline

#10 2020-05-11 13:56:28

チポ
Member

Re: 50音ボタンの濁音を認識するには

ここだけ
> Left(姓_ふりがな;1)≥"あ"and Left(姓_ふりがな;1)≤"お";1)
これは
  姓_ふりがな >= "あ" and 姓_ふりがな < "か"
で大丈夫ですよ。

  姓_ふりがな >= "は" and 姓_ふりがな < "ま"
で、ば行、ぱ行も含まれます。

Offline

#11 2020-05-11 14:05:11

Moz
Member

Re: 50音ボタンの濁音を認識するには

チポさん、補足ありがとうございます。
文字コードの判定になるのですかね?その辺りがよく分からなかったのでベタ打ちでいきました。

Last edited by Moz (2020-05-11 14:05:20)

Offline

#12 2020-05-11 14:07:54

Moz
Member

Re: 50音ボタンの濁音を認識するには

「は」のボタンで「ば」も「ぱ」検索する場合に、Left(姓_ふりがな;1)≥"ば"and Left(姓_ふりがな;1)≤"ぼ";n;ですと
「ば」のボタンも作成しないといけないのでしょうか

nは同じです。ボタンは必要ありません。nが同じならば色が付くセグメントは同じですから、
「は」「ば」「ぱ」行を判定する式を追加しているだけです。

で、#10 でチポさんが補足してくださっているように
「は」「ば」「ぱ」行を判定する式は

姓_ふりがな >= "は" and 姓_ふりがな < "ま" ; n ;

でこと足りるということです。

Offline

#13 2020-05-11 15:14:51

reiwa2020
Member

Re: 50音ボタンの濁音を認識するには

返信ありがとうございます。

一部勘違いをしていたので訂正します。
Left(姓_ふりがな;1)≥"は"and Left(姓_ふりがな;1)≤"ほ";1)は「は」ボタンを押すと「は~ほ」および「ば」「ぱ」など含めてを表示しようとして作成したボタンでした。
これをやめて、新たに50音ボタンを作成して、フィールドはフリガナ頭50音名で計算式はLeft(姓_ふりがな;1)です。
フリガナ頭50音名で計算式をLeft(姓_ふりがな;1)ではなく、姓_ふりがな >= "は" and 姓_ふりがな < "ま" ; n ;のように入れればよいのでしょうか。

よろしくお願いします。

Offline

#14 2020-05-11 15:48:51

Hiro
Member

Re: 50音ボタンの濁音を認識するには

テキストの比較演算は、文字列の先頭から順次1文字づつ比較して行きますから、
文字列の全体演算にすれば、頭文字だけにした演算も、カーバーできる訳ですネ。
因って、
>#13『姓_ふりがな >= "は" and 姓_ふりがな < "ま" ; n ;のように入れればよいのでしょうか。』
それで良いですネ。

Offline

#15 2020-05-11 16:18:07

reiwa2020
Member

Re: 50音ボタンの濁音を認識するには

返信ありがとうございます。

姓_ふりがな >= "は" and 姓_ふりがな < "ま" ; n ;のnは仮に3としてボタンのオプションのスクリプト引数に3になると思いますが
「は」ボタン一つで「はひふへほばびぶべぼぱぴぷぺぽ」表示は大丈夫ですが、「は」「ひ」「ふ」「へ」「ほ」各ボタンのオプションのスクリプト引数は
どうなるのでしょうか。~はにするとやはり色が固定になりません。

よろしくお願いします。

Offline

#16 2020-05-11 16:36:27

reiwa2020
Member

Re: 50音ボタンの濁音を認識するには

試行錯誤して下記の通りに行いましたがあっているのでしょうか。
姓_ふりがな = "は" and 姓_ふりがな = "ば" and 姓_ふりがな= "ぱ" ; "は" ;としてボタンのオプションのスクリプト引数に"は"にしました。

よろしくお願いします。

Offline

#17 2020-05-11 18:02:37

Shin
Member

Re: 50音ボタンの濁音を認識するには

話をややこしくするかもしれませんが。
濁点半濁点を無視して、先頭1文字を処理するのでしたら、半角カナに変換して、1文字を取り出すと楽ですよ。

Offline

#18 2020-05-12 10:17:07

koeda
Member

Re: 50音ボタンの濁音を認識するには

「は」「ひ」「ふ」「へ」「ほ」の各ボタンセグメントのオブジェクト名が「は」「ひ」「ふ」「へ」「ほ」であり、
呼び出すスクリプト引数として、オブジェクト名が渡されていることを前提として話を進めます。
スクリプトの流れは…

1)スクリプト引数「は」「ひ」「ふ」「へ」「ほ」を受け取る
変数を設定[ $arg ; Get (スクリプト引数 ) ]

2)アクティブになるセグメント名をグローバルフィールドにセット
フィールド設定[ g_アクティブセグメント ; $arg ] ←#オブジェクト名を設定

3)検索の実行
検索モードへ切り替え
フィールド設定[ フリガナ頭 ; "~" & $arg ] ←#スクリプトで検索条件を設定する
検索実行

のような感じかと。
ボタンがアクティブにならないのは、検索条件の文字列"~は"が、グローバルフィールドに設定されているからでは?

Last edited by koeda (2020-05-12 10:28:58)

Offline

#19 2020-05-12 10:21:49

koeda
Member

Re: 50音ボタンの濁音を認識するには

reiwa2020 wrote:

試行錯誤して下記の通りに行いましたがあっているのでしょうか。
姓_ふりがな = "は" and 姓_ふりがな = "ば" and 姓_ふりがな= "ぱ" ; "は" ;としてボタンのオプションのスクリプト引数に"は"にしました。

Left(姓_ふりがな;1) = "は" or Left(姓_ふりがな;1) = "ば" or Left(姓_ふりがな;1)= "ぱ" ; "は" ;
では?

Shinさん方式ならCaseを使わず
Hiragana ( Left ( KanaHankaku ( Katakana (よみ) ); 1 ) )
で、シンプルになりますね。
これを活用するなら検索条件に"~"をつける必要は無くなりますね…

#計算式、間違ってましたので、修正しました(^^ゞ (5/13)

Last edited by koeda (2020-05-13 12:01:21)

Offline

#20 2020-05-12 11:27:31

reiwa2020
Member

Re: 50音ボタンの濁音を認識するには

返信ありがとうございます。
koeda様の言う通り or ですね。
Shin様のカナ半角もシンプルでカナふりがな項目もあるので早速変更してみたいと思います。
Hiro様、Moz様、チポ様ありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 10 queries executed - Memory usage: 611.92 KiB (Peak: 628.46 KiB) ]