みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。
何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
koeda様
サンプルを解析して、思い通りに動きました。
本当にありがとうございました。
これからもよろしくお願いします。
しかし、「あかさか」は、「あ」「か」「さ」でも表示されてしまいます。
Left ( ふりがな ; 1 )をどこかに入れればよいのでしょうか。
検索条件とどのフィールドを照合すれば良いのかを論理的に考えてください。
50音ボタンはLeft( ふりがな ; 1 )と、
ふりがな検索は「ふりがな」と、
在会区分は「在会区分」と、
それぞれ照合することで検索できるはずですよね?
つまり「あかさか」というキーワードが「あ」「か」「さ」にヒットしてしまうということは、
上記の照合が誤っているということでしょう。
サンプルに手を入れました。
機能が増えたぶん少し複雑になっているので、頑張って解析してください。
https://www.dropbox.com/s/mj9ehdrl4t95p … fmp12?dl=0
検索キーワードを入れて、リターンキーを押してみてください。
koeda様
早速、サンプルファイルと#4に対する補足の
1)検索キーを保持するためのグローバルフィールドを設け、
2)それを検索モードでふりがなフィールドに転記してから検索実行します。
を挑戦しました。
しかし、「あかさか」は、「あ」「か」「さ」でも表示されてしまいます。
Left ( ふりがな ; 1 )をどこかに入れればよいのでしょうか。
補足のふりがな検索もふりがなをいれて在会を押しても上手くできませんでした。
ふりがな検索用のボタンを配置しないとできないのでしょうか。
ボタンバーとの混在は、難しいのでしょうか。
よろしくお願いします。
他の方法は、これから挑戦です。
ご教示よろしくお願いします。
koeda様
サンプルファイル本当に感謝感激です。ありがとうございます。
内容を自分の顧客ファイルに置き換えて挑戦します。
Shin様
検索ステップに、検索の条件を、変数を使って保存で行ってみます。
チポ様
リレーションでポータル表示の方法、挑戦してみます。
これからじっくりやってみます。
いつもいつも皆様丁寧に教えていただきありがとうございます。
FileMakerは答えが複数あるため、なかなか理解するのに苦労しています。
これからもよろしくお願いします。
リレーションでポータル表示ではいかがでしょう。
ひらがな は
検索文字入力用フィールドと
最小フィールド
Case ( IsEmpty ( 検索文字入力用 ) ; "あ" ; 検索文字入力用 )
最大フィールド
Case ( IsEmpty ( 検索文字入力用 ) ; "んんんんん" ; 検索文字入力用 & "んんん" )
区分は
区分検索入力用フィールド
区分照合
Case ( IsEmpty ( 区分検索入力用 ) or 区分検索入力用 = "全て" ; List ( "在会" ; "退会" ) ; 区分検索入力用 )
以上全てグローバルフィールドです
リレーション
最小 <= 顧客::ふりがな
and
最大 > 顧客::ふりがな
and
区分照合用 = 顧客::在会区分
このリレーションのポータルを配置します。
考え方を示すための簡単なサンプルです。
https://www.dropbox.com/s/zqp4ql7gueqxo … fmp12?dl=0
ラジオボタンではなくボタンバーを使っています。
50音ボタン、在会区分ボタン、ともにスクリプト引数で検索条件を判定し、
グローバルフィールドに検索条件を設定しています。
#4に対する補足です。
ふりがなで検索する場合も考え方は同じです。
1)検索キーを保持するためのグローバルフィールドを設け、
2)それを検索モードでふりがなフィールドに転記してから検索実行します。
検索ステップに、検索の条件を、変数を使って保存させておいてください。
追加です。
50音ボタン以外に検索フィールドを作成して、ふりがな検索も行いたいです。
マウスで50音ボタン、キーボード使用者はふりがな全部で検索できるように
よろしくお願いします。
Shin様
ありがとうございます。
確かにラジオボタンの方がいいですね。
現在、テーブル在会区分マスター フィールド在会区分コード 在会区分名称
レコード1在会 2退会になっています。
ラジオボタンを作成するには少し変更が必要でしょうか。
「あ」ボタン等は、記載のスクリプトを書き換える必要がありますか。
「あ」ボタンに変数を設定[ $yomi ; Get ( スクリプト引数 ) ] )
変数を設定[ $all ; Case ( g_在会区分 = "全て" ; "" ; g_在会区分 ) )
検索実行
変数に"あ"を設定しましたが全く動きません。
どこか変なのでしょうか
ご教示よろしくお願いします。
「在会」ボタンと「退会」ボタンと「全て」ボタン の代わりに、それらをラジオボタンで選択させたほうがシンプルでは。
「あ」... ボタンは、スクリプト引数でその文字を送ると、簡単です。
名簿側に、Left ( ふりがな ; 1 ) という計算フィールドを作っておきます。
変数を設定[ $yomi ; Get ( スクリプト引数 ) ] )
変数を設定[ $all ; Case ( g_在会区分 = "全て" ; "" ; g_在会区分 ) )
検索実行[条件を保存]
だけでいいでしょう
いつも大変お世話になります。
試用期間中に簡単な顧客名簿を作成しています。
顧客テーブル フィールド内に顧客番号、在会区分 氏名 ふりがな等があります。
顧客一覧レイアウトのヘッダに、あいうえおの50音ボタンと「在会」ボタンと「退会」ボタンと「全て」ボタンを配置しています。
「あ」ボタンを押すとボディに在会と退会の「あ」のふりがなの顧客が表示され(ここまではできています)、
「在会」ボタンを押すと在会の「あ」のふりがな顧客のみ表示
「退会」ボタンを押すと退会の「あ」のふりがな顧客のみ表示
また、その逆で「在会」ボタンから押すと在会のみ表示、その後「あ」ボタン選択で「あ」の顧客が表示されるようにしたいと思います。
「あ」ボタン設定は処理スクリプト実行 開始 現在のファイル「ふりがな検索50音」オプションのスクリプト引数"あ"
ふりがな検索50音のスクリプトは
ウインドウの固定
エラー処理[オン]
検索モードに切替[一時停止:オフ]
フィールド設定[顧客管理::ふりがな頭50音;
Get(スクリプト引数)]
検索実行[]
If[Get(最終エラー)]
カスタムダイアログを表示["メッセージ";"該当なし"]
全レコードを表示
エラー処理[オフ]
現在のスクリプト終了
End If
レコードのソート[記憶する;ダイアログあり:オフ]
レコード/検索条件/ページ移動[最初の]
エラー処理[オフ]
ふりがな頭50音フィールドLeft(ふりがな;1)
ふりがな頭フィールドCase(Left(ふりがな;1)≧"あ"and Left(ふりがな;1)≦"お";1; ・・・
スクリプトに色々追加して試しましたができませんでした。
スクリプトを教えてください。
よろしくお願いします。