みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Win10 FMP18
いつもお世話になります。
フィールド値を使用しての値一覧で思うようにソートが出来ません。以下
のような環境でテーブルとフィールドを作っています。
得意先テーブル
得意先IDフィールド(以下ID)
得意先フィールド(以下得意先)
得意先フリガナフィールド(以下フリガナ)
指図書テーブル
得意先フィールド
それぞれの得意先をリレーションしております。
指図書テーブルに表示させる得意先を値一覧で以下のようにフィールド指定。
最初のフィールドの値を使用
得意先
2番目のフィールドの値も表示
フリガナ
次を使ってソートする
2番目のフィールド
これでドロップダウンリストで表示した場合にソート自体は問題はないの
ですが、得意先横にフリガナが一緒に表示されて正直見栄えが良くない・・・。
せめて、IDを2番目のソート対象フィールドにしようかと考えましたが、
今のところたまたまフリガナを振った順番でIDが並んでいますが、今後は
得意先が増える場合にシリアル管理をするので、増えるとソート順がおか
しくなります・・・。
一番ベストなのは、ID+得意先という状態で値一覧が出来ればベストです。
となると、IDはソート用のIDとして常に得意先が増えると変化し続けるの
で、正直それが面倒なんです。
何か良い方法はありますか?
まとめますと、
1.ドロップダウンリストで「得意先+フリガナ」で表示されるのを解消したい、すなわちフリガナを見せたくない
2.でも、ソートはフリガナでさせたい
3.IDでソートをさせるにしても、得意先が増える度にIDを変更するのは大変
4.ベストは「ID+得意先」表示させたい
分かりにくいかも知れませんが、宜しくお願いします。
Offline
自己レスです。
ベストな表示である「ID+得意先」を実現しようと思ったら、やはり得意
先を増やすタイミングでIDを振り直すのが良いかと思ってきました。もち
ろん、IDフィールドを指図書テーブルにも追加した上でリレーションを繋
ぎ直した上での事です。
IDを振り直すのはスクリプトで組んでしまえば良いかと思っていますが、
それしかないのでしょうか?
ただ、得意先は重複(5つのレコードに同じ得意先が存在している場合もあ
る)しているところもあるので、振り直すにしてもかなり大変です・・・。
Last edited by げっさん (2020-05-28 11:57:56)
Offline
安直な簡略法ですが、
●2番目表示を「フリガナ」にして、「2番目のみを表示」オプション指定、
とかではダメ?
Offline
Offline
Hiroさん
返信ありがとうございます。
それですと、表示名はカタナカになるのでツライですね。
ありがとうございます。
Offline
Shinさん
実は事前にそちらも見させて頂きましたが、私が思っているのとは違う感じですね。
ありがとうございます。
Offline
私はIDとは別に「順」フィールドを用意して、そちらで並び順を設定するようにしています。
2番目のフィールドとして順の数値が表示されてしまうのは変わりませんが、フリガナよりは多少ましかと思います。
再設定はマスタで任意のソートをした後、順フィールドを get(レコード番号) で全置換するだけですね。
Offline
#4 Shinさん>実は事前にそちらも見させて頂きましたが、私が思っているのとは違う感じですね。
この基本的ロジックは違いませんよ。
つまり、
>『ソートフィールドを2番目表示フィールド「順位」にして、その「順位」の数字を「ゼロ幅フォント」に文字変換して「非表示」偽装をするテク。』
再設定はマスタで任意のソートをした後、順フィールドを get(レコード番号) で全置換するだけですね。
重複レコードの重複排除ができないので、この案は使えないのでは?
Offline
micさん
返信ありがとうございます。
以前はその方法を利用していたのですが、今回重複するレコードが出てき
たのでその重複するレコードに対して同じIDを振りたいので困っています。
ありがとうございます。
Offline
Hiroさん
返信ありがとうございます。
確かに、フリガナを見せたくないという観点から考えると同じ考えでしたね。
失礼しました。
ただ、Hiroさんもおっしゃるようにフィールド内容の全置換する時、重複
レコードをどのようにしたら同じ番号を付けられるかで次は悩んでおりま
す。
Offline
> 重複するレコードに対して同じIDを振りたい
ここだけ、、
自己リレーション
フリガナ > フリガナ
として、
Count ( 参照フィールド ) +1
で
フリガナ順にシリアルが入り、重複には同じ数字が入ります。
Offline
得意先マスターテーブルで全置換すれば、重複問題は回避できます。
当然、目的の値一覧もこのテーブルで作成します。
Offline
チポさん
返信ありがとうございます。
そんな方法があるんですね。
恥ずかしながら、この参照フィールドとは何が入りますか?!
ありがとうございます。
Offline
リレーション先の、有効な値が入っているフィールドなら何でも可です。
Offline
Hiroさん
返信ありがとうございます。
実は得意先マスタは別途作っており、おっしゃる通り全置き換えすれば問題ないと思っています。
ただ、得意先以外にブランドという項目もあり、それぞれ別テーブル作っておりました。
当初はそれぞれ別で管理する予定でしたが、あくまでも得意先+ブランド
で管理するのが良いという事だったので、今は得意先が重複しております。
ありがとうございます。
Offline
得意先テーブルでIDが重複してたら、IDの用をなさないのでは?
行き違いになった。
それなら、得意先テーブルでなくブランドテーブルということですね。
そこのIDはブランドのIDであって、ユニークであるべきです。得意先のIDは別のフィールドで、重複していて、得意先テーブルとリンクする外部キーとなります。
使途書でも得意先でなくブランドが必要ということですよね。
複雑な値一覧を考えるより、選択用のレイアウトをカード表示するなどして作りこんだ方が楽かもしれません。
チポさん
返信ありがとうございます。
是非ともやりたいのですが、何故か上手く行かず・・・。
もうすこし、詳しく教えて頂いても構いませんか?
Offline
himadaneeさん
返信ありがとうございます。
そこのIDはブランドのIDであって、ユニークであるべきです。得意先のIDは別のフィールドで、重複していて、得意先テーブルとリンクする外部キーとなります。
使途書でも得意先でなくブランドが必要ということですよね。
おっしゃる通りです。得意先+ブランドという事で元々ユニークな値は付けております。
複雑な値一覧を考えるより、選択用のレイアウトをカード表示するなどして作りこんだ方が楽かもしれません。
これは具体的にどのようにすれば良いという事でしょうか?
では、宜しくお願いします。
Offline
自己リレーション
得意先テーブル::得意先フリガナ > 得意先テーブル 2::得意先フリガナ
として、
IDフィールドの全置換の計算式
Count ( 得意先テーブル2::得意先 ) + 1
とします。
Offline
チポさん
返信ありがとうございます。
まさかまさか、自己リレーションで「>」という発想はなかったです。
というよりも、内容を理解してなかったですね・・・。
見事に出来ました!!
本当にありがとうございます。
取り急ぎ、ご連絡まで。
Offline
チポさん案の素朴な疑問、
自己より前を単純カウントしても、重複分も含めてカウントしてしまうのでは?
Offline
Hiroさん
詳しくはチポさんから解説があるかと思いますが、実際に重複フィールドに同じ数値が入りました。
Offline
番号が連続している必要はないということでしょう。>HIROさん
himadaneeさん
フォローありがとうございます。
おっしゃる通りで、
あああ 1
いいい 2
ううう 3
ううう 3
ううう 3
えええ 6
という感じになりますね。
Offline
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 571.83 KiB (Peak: 592.73 KiB) ]