チポさん、
思い込み違いな私につきあって、指導してくれて
ありがとうございます。
ならば、
テーブル2で
> List(テーブル1::めも)
とすると、
最初の一文字が同じものがリストされるはずで、
> あかパジャマ
> おかりな
> きぱじゃま
> にす
> ・
> ・
> わなげ
こうなり得ないのでは??
説明と実際の設定がどこかで違っていますよね。
]]>「テーブル1::ひらがな」は、「テーブル1::めも」に入る、
あかパジャマ、おかりな、きぱじゃま、にす、、、
の一文字目を取り出して使っています。
チポさんの疑問は、「あ」や「い」だけのレコードと、「あかパジャマ」「おかりな」
がイコールなわけはない。ってことでしょうか。
リレーションを結ぶのは、一文字のひらがな同士なので、
「テーブル1::めも」は直接関係ないので特に説明しませんでした。
チポさんの疑問が、私の思い込みでしたら、もっと教えて下さい。
説明します。
> リレーションシップグラフ > リレーションシップ編集 > レコードのソート
> をするためにつなぐのは、何をつなげば良いのでしょう?
現在のリレーションをそのまま使います。
そのリレーションの設定で、上記のソートの設定をします。
> 文字数のフィールドは、テーブル2にも作るということですよね
テーブル1のみで、テーブル2には不要ですよ。
表示できてるフィールドが、違うリレーションに紐付いてると思い込み違いをしていました。
自分で色々弄ってるうちに、わからなくてもなんとなくできていたようです。
他にも色々弄って、追加していき、そのままゴミとして残ってるものもあったりで散らかった部屋のようです。
わかってないので、説明も伝わらず、見返すと自分でもわからなくなってきました。
表示できてるリレーションは次に基づいています。
「テーブル1::ひらがな」 = 「テーブル2::平仮名」
「テーブル1::ひらがな」には「あ」〜「ん」のどれかが、入ります。例えば「あ」が17レコード、「い」が4レコードなどです。
「テーブル2::平仮名」には「あ」〜「ん」がそれぞれ1レコードずつ入ります。
「テーブル1::めも」に、あかパジャマ、おかりな、、などが入ります。
「テーブル2::雑記帳」は、 Substitute(SortValues(List(テーブル1::字数付めも); 1); [Char(64109);""]) が入っています。
これで希望する表示がされています。
「テーブル1::文字数」 を作って、
リレーションシップグラフ > リレーションシップ編集 > レコードのソート
をするためにつなぐのは、何をつなげば良いのでしょう?
それは、左側にくるテーブルに設定してやればいいのでしょうか?
また、Hiroさんも示してくださってる
> 〇そのソートオプション設定は、(2段ソート設定で、)
> ・1段目は、「テーブル1::文字数」数値の昇順ソートを設定
> ・2段目は、「テーブル1::ひらがな」テキストの昇順ソートを設定
が、それぞれ何とペアになるかがわかりません。
「テーブル2::ひらがな」や「テーブル2::文字数」でしょうか?
文字数のフィールドは、テーブル2にも作るということですよね?
そのとき、入れる値は何が入るのでしょう?。
説明からは
> あかパジャマ
> おかりな
> きぱじゃま
> にす
> ・
> ・
> わなげ
これらが同じ「ひらがな」を持っていることになりますよね。
理解できません。。
また、
> テーブル1::めも = テーブル2::雑記帳
これもリレーションの照合とすると、
値から考えて、照合するレコードはあり得ないと思いますが。。
「ひらがな」「平仮名」フィールドは、それぞれに「あ」〜「ん」のひらがな文字が入ります。
これも、私だけわかってるつもりでした。
共通の値が存在しているフィールドです。
> テーブル1::めも = テーブル2::雑記帳
は、文字の並び順を書いた、あかパジャマ、おかりな、、、等々の単語が入ります。
単なる疑問です
最初の質問の
> テーブル1::ひらがな = テーブル2::平仮名
これはリレーションの説明ですか?
「ひらがな」フィールド
「平仮名」フィールド
にはどのような値が入っているのでしょうか?
また、
> テーブル1::めも = テーブル2::雑記帳
これも分かりません。。
●基本リレーションのキー設定は、
「テーブル1::ひらがな」 = 「テーブル2::平仮名」
〇そのソートオプション設定は、(2段ソート設定で、)
・1段目は、「テーブル1::文字数」数値の昇順ソートを設定
・2段目は、「テーブル1::ひらがな」テキストの昇順ソートを設定
●目的の「テーブル2::雑記帳」 の計算式は、
List(テーブル1::めも)
(※ソートはリレーションで処理済で、SortValues処理はもはや不要)
わからなくなってきたので、改めて教えて下さい。
弄ってる内に混乱してきています。
分からない点は、リレーションペアはどれとどれかです。
基本:
テーブル1::ひらがな = テーブル2::平仮名
テーブル1::めも = テーブル2::雑記帳
テーブル2::雑記帳 雑記帳は計算で、SortValues ( List(テーブル1::めも) ; 1 )
文字数のフィールド
テーブル1::もじすう = テーブル1'::もじすう
リレーションシップグラフ > リレーションシップ編集 > レコードのソート
にて、テーブル1'::もじすう 側にソートを指定。指定フィールドはもじすうの昇順
でうまくいかずです。
]]>リレーションシップグラフ > リレーションシップ編集 > レコードのソート
これを設定することで
照合順を指定することができます。
>#2の提案では、
ある文字〇を字数分〇を連ねて、それを対象文字列XXX...の
前につけています。
これで意図した文字数順でソートするためには、ソートの仕様から、
〇は以下に続くXXX...が何であれ絶対にノックアウトされない
最大文字コードであることが必要です。
その〇が、Char(64109)(="舘")な訳です。
(>#4 "館"=Char(39208) ではありませんヨ)
なお、FM内使用文字コードはUnicode(=UTF-16)で、
"舘"=u_64109番 と云うことです。
今は時間がとれないので、時間あるときに試してみます。
レコードのソート、指定、フィールド指定、ソート方法指定。ですよね?。
CharでUnicodeを用いるのと、10^というのが見たこと無くて調べ考えました。
元々同じ文字列なら、数でソートされる?。
「ア」と「月」と「館」で検証したところ、「月」以外は少ない順になり、「月」だけが大きい順になりました。
自分で調べた限りでは、FileMakerは検索にSJISを使う。SJISは部分一致で検索される。
Unicodeは完全一致で検索される。だから検索用に、Unicodeを使う?。
また、「館」もSJISとUnicodeなら同じ字でも別々に認識されるから、Unicodeを利用する?。
検証してないですが疑問点
索引のデフォルト言語をUnicodeにしたら、今回のCharで付与するやり方は使えないでしょうか?。
10^は便利だと思いました。
10^Length(めも)-1
だけを実行して、なるほど。と思いました。必ず同じ数のぞろ目になることと、字数がカウントできる点です。
Substitute( 値 ; [ 値 ; 値 ]) も知らなかったので勉強になりました。
リファレンスページに書かれていますが、見えてなかったし理解しようとしてなかったです。
ありがとうございました。
]]>