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

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

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

You are not logged in.

Announcement

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


#1 2023-04-17 16:46:26

jose
Member

計算式で「かな行」を割り出す方法は?

FM19を使用しています。
ひらがな専用フィールドAの内容が「は」である場合、「ひ」「ふ」「へ」「ほ」等の同じかな行の値を結果としてだす計算方法はありますか?

Offline

#2 2023-04-17 17:12:10

himadanee
Guest

Re: 計算式で「かな行」を割り出す方法は?

濁音半濁音は?
どういう形で「結果として出す」のですか?

#3 2023-04-17 17:49:58

jose
Member

Re: 計算式で「かな行」を割り出す方法は?

>himadaneeさん
もう少し詳しく書くと、名簿レコードのふりがなフィールドをかな行で抽出したいと思っています。濁音・半濁音は同じグループのかなに抽出できるようにしたいです。
過去にスレを立てて、演算子をつかった濁音半濁音込みでふりがなをかな行で抽出する方法を試みたのですが、なかなかできずじまいでした。

再チャレンジということで、とりあえずカスタム関数で以下のような計算式を作り、「ふりがな」フィールドの値から、結果値を格納しています。

Let
(
  [
   A = "あいうえおぁぃぅぇぉゔ" ;
   B = "かきくけこがぎぐげご" ;
   C = "さしすせそざじずぜぞ" ;
   D = "たちつてとだぢづでど" ;
   E = "なにぬねの" ;
   F = "はひふへほばびぶべぼぱぴぷぺぽ" ;
   G = "まみむめも" ;
   H = "やゆよゃゅょ" ;
   I = "らりるれろ" ;
   J = "わをん" ;
   W = Left ( ふりがな ; 1 )
   ] ;
Case
  (
   PatternCount ( A ; W ) = 1 ; A ;
   PatternCount ( B ; W ) = 1 ; B ;
   PatternCount ( C ; W ) = 1 ; C ;
   PatternCount ( D ; W ) = 1 ; D ;
   PatternCount ( E ; W ) = 1 ; E ;
   PatternCount ( F ; W ) = 1 ; F ;
   PatternCount ( G ; W ) = 1 ; G ;
   PatternCount ( H ; W ) = 1 ; H ;
   PatternCount ( I ; W ) = 1 ; I ;
   PatternCount ( J ; W ) = 1 ; J ;
  )
)

グローバルフィールドに抽出希望のかな行を洗濯した時に、スクリプトトリガ等で同じカスタム関数で変数値を割り出し検索しています。
もう少しシンプルでスマートな方法はないでしょうか?

Offline

#4 2023-04-17 18:38:28

Shin
Member

Re: 計算式で「かな行」を割り出す方法は?

ローマ字に変換して最初の1文字を検討すれば、少しだけ楽になるかと思います。

Offline

#5 2023-04-17 19:03:23

himadanee
Guest

Re: 計算式で「かな行」を割り出す方法は?

文字コードが行順に並んでるので、こんなのでよさそうです。(さいごが「ゔ」)
Let ( k = Left ( ふりがな ; 1 ) ;
Case (
k <= "お" ; "あ" ;
k <= "ご" ; "か" ;
k <= "ぞ" ; "さ" ;
k <= "ど" ; "た" ;
k <= "の" ; "な" ;
k <= "ぽ" ; "は" ;
k <= "も" ; "ま" ;
k <= "よ" ; "や" ;
k <= "ろ" ; "ら" ;
k <= "ん" ; "わ" ;
"あ"
)
)

#6 2023-04-18 10:05:17

チポ
Member

Re: 計算式で「かな行」を割り出す方法は?

リレーションでかな行を検索する方法を

グローバルフィールドを三つ
検索入力

検索最初・計算フィールド
Case ( 検索入力 = "ゔ" ; "あ";
           検索入力 < "か" ; "あ";
           検索入力 < "さ" ; "か";
           検索入力 < "た" ; "さ";
           検索入力 < "な" ; "た";
           検索入力 < "は" ; "な";
           検索入力 < "ま" ; "は";
           検索入力 < "や" ; "ま";
           検索入力 < "ら" ; "や";
           検索入力 < "わ" ; "ら";
           "わ" )

検索最後・計算フィールド
  Case ( 検索入力 = "ゔ" ; "か";
            検索入力 < "か" ; "か" ;
            検索入力 < "さ" ; "さ" ;
            検索入力 < "た" ; "た" ;
            検索入力 < "な" ; "な" ;
            検索入力 < "は" ; "は" ;
            検索入力 < "ま" ; "ま" ;
            検索入力 < "や" ; "や" ;
           "ゔ" )

リレーション
  ふりがな >= 検索最初
  and
  ふりがな < 検索最後

これで、
検索入力にひらがなを入力し、
関連レコードへ移動
で、かな行の検索ができます。

Offline

#7 2023-04-18 10:51:32

チポ
Member

Re: 計算式で「かな行」を割り出す方法は?

ああ
「ゔ」
に対応できていません。
別処理が必要ですね。

Offline

#8 2023-04-18 11:29:04

himadanee
Guest

Re: 計算式で「かな行」を割り出す方法は?

#3で、「グローバルフィールドに抽出希望のかな行を選択した時、スクリプトトリガ等で同じカスタム関数で変数値を割り出し検索しています。」
計算の結果が「"あいうえおぁぃぅぇぉゔ"」などになってるようですが、私の式を計算フィールドで作っておけば、「あ」「か」などの結果なので、
「かな行」は1文字を選択すれば、そのまま検索できます。(関連レコードへ移動でもいいですが)
「ゔ」がどの行かなど明示したくて全文字を表示したいなら、それでもいいですが...

#9 2023-04-18 13:02:02

jose
Member

Re: 計算式で「かな行」を割り出す方法は?

>皆様
ありがとうございます。検索用のフィールドに値を格納しておくと検索の処理スピードも良い感じがしています。参考にさせてもらいます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 565.86 KiB (Peak: 581.44 KiB) ]