みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
皆様、お世話になっています。
https://fm-aid.com/bbs2/viewtopic.php?id=116
で質問した者です。
すみません、解決タグつけましたが全然解決していませんでした・・・。
下記のご回答についてどなたか詳しくおしえていただけないでしょうか。
中分類表示順 という数字フィールドを作って、ソートしたい順に番号を入れる。
値一覧の定義で「2番目の値のフィールドも表示」にそれを指定2番目のフィールドを見えなくする方法もある。
http://www.russ.jp/stepbbs/step.cgi?mode=view&no=85992
ソートした順に番号を入れる、というのは
01 「一番目に表示したい項目」
02 「二番目に表示したい項目」
03 「三番目に表示したい項目」
・
・
・
というようなことでしょうか。
中分類の一項目ずつにレコードを作って数字フィールドにソートしたい順の番号を振ってみたのですが
やはり項目のあいうえお順で出てきました。
過去ログも読んでみましたがやはりわかりません。
申し訳ありません。どなたかご存知の方回答をお願いします。
よく分かってないけど、こんな事ではないの?
http://pupld.net/21/131014/6wkx2ehp90/index.cgi
動的一覧にはしてないけど。またファイル名が変。
.fp7以降、「動的値一覧」に対しては「第二表示フィールド値でソート」が効きません。
.fp5以前は有効だったので意図した仕様落ちなのか、単なるバグか判りませんが、改悪に違いありません。
Offline
お二人ともご回答ありがとうございます。
traveler様
昨日に引き続きありがとうございます!
ファイル見せていただきました。が、真似してもうまく動作しませんでした・・・。
もしかしたら何か写したりないところがあるかもしれないので探してみます。
Hiro様
そうなのですか・・・。
他の方の質問を見てできるのかなー、と思ったのですが残念です。
他の方に頂いたアドバイスも元に他に動的値一覧以外でも方法がないか調べてみます。
ちなみに今更ですがver.12のWinXPを使用しています。
動的一覧にしてみました。12に変換して。List_Sort.fp7
http://pupld.net/21/131014/6yczfx75xv/index.cgi
subの索引も値一覧のソートもunicodeにする必要があるみたい。
表示項目を、コード化してしまえば済む話ですね。
表示したい順にコードを振っておきます。
ただ、後に表示項目が増えたり、変更されたりする事を考えておかないと、面倒になる可能性はあります。
Offline
中分類表示順 という数字フィールドを作って、ソートしたい順に番号を入れる。
値一覧の定義で「2番目の値のフィールドも表示」にそれを指定
2番目のフィールドを見えなくする方法もある。
これはすごい・・・
見えなくなるだけでなく、文字数は元のテキストと同じ状態で、
何も付加せずに番号情報を保持しています。
ソートできていますよ。
travelerさんのサンプルの改造版 動的値一覧 ート.fmp12
Last edited by keima (2013-11-10 17:10:51)
Offline
#3 Hiro ← × 没して下さい
.fp7以降、「動的値一覧」に対しては「第二表示フィールド値でソート」が効きません。
.fp5以前は有効だったので意図した仕様落ちなのか、単なるバグか判りませんが、改悪に違いありません。
ごめんなさい、嘘をレスしました!いま、実際に確かめたら「動的値一覧」でも問題なく出来てました。
記憶は間違いなくあるのですが、何か他の件と勘違いしてたのか、はたまた単に老害か?^^;;
お詫びして、訂正いたします。#3レスは没にしてください。
Offline
多分、fp5では2番目のフィールドでソートするとそっちで単一化されるという件では。
「2番目のみ表示」はfp7で追加された機能ですが、この設定で2番目に同一値があると、単一化されてないので同じ値が2個あるように見えますね。
(入力される1番目の値は違うけど、一見どっちを選んでいいのかわからない)
単一化されないのを見て気付きましたが、2番目にするフィールドは索引が無くてもいい(値一覧定義時に「動作しない」という警告が出るが実際は動く)ので、
ソート順を番号で入れる代わりに、計算式で自動的に生成させることもできますね。
たとえば
ふりがな>ふりがな
の自己リレーションで
Count(右::ふりがな)をソート順として使用。
ただし非保存フィールドのソートになるので、ちょっと数が多いと実用に耐えなくなる...(多すぎると応答が無くなる)
皆様、本当にありがとうございます。
keima様が変換して下さったtraveler様のファイルを真似たらちゃんと並んでくれました!
感謝してもしきれないです。本当にありがとうございました。
厚かましいのは重々承知なのですが、
今後のために最後に質問させてください。
今回おしえていただいた方法は、
数字フィールドに打ち込んだ番号を計算フィールドで数字⇒スペースなどの見えないキーに変換し
メインテーブルに見えないキーで索引順に並んでいるということであっていますか?
おしえていただいた計算式も解読してみたいと思います。
(意味もわからずコピペしてます。すみません。)
みなさまのおかげでこれから仕事がやりやすくなります!
解決はしたので解決タグつけさせていただきます。
本当にありがとうございました!
あってます。
今回の場合、見えなくする方法はおまけで、
「一番目に表示したい項目」01
のように値の後ろにソート順が見えてて良ければ、簡単です。
見えなくするのが必要になるのは、
値のフィールド(入力するコードとか)、一覧として見せたいフィールド(氏名とか)の他に、さらにソート順を指定するフィールド(よみ順とか)を使いたい場合です。
Offline
ふりがなフィールドでソートして氏名フィールドを表示する例(ふりがなを入力するだけでいいので、別途ソート順の指定フィールドは不要)
見えない文字がもう3個あったので使ってみました。
//Char ( 8203 ) ~ 8205 ZERO WIDTH *
//Char ( 8289 ) 関数適用 (Function Application, U+2061)
//Char ( 8290 ) 不可視の乗算記号 (Invisible Times, U+2062)
//Char ( 8291 ) 不可視の区切り文字 (Invisible Separator, U+2063)
Let ( [
$base = Code ( "ア" ) ; //base code
$width = Code ( "ワ" ) - $base +1 ; //code range =44
$strlen = 10 ; //ソートに使用する文字数。6進100桁として44進なので47が上限?
$len = Ceiling ( Log ( $width^$strlen ) / Log ( 6 ) ) ; //6進変換後の長さ
$str = KanaHankaku ( Katakana ( ふりがな ) ) ; //半角カナにして濁点等を無視する
無視した分文字数が少なくなる点の調整が面倒なので、https://fm-aid.com/bbs2/viewtopic.php?id=476 #2の修正版を使ってください
$i = $strlen ;
$n = Evaluate (
Substitute ( 10^$strlen - 1 ; 9 ;
"Max ( 0 ; Min ( $width - 1 ; ( Code ( Left ( $str & Char ( $base ) ; 1 ) ) - $base ) ) ) * $width^Let ( [ $i = $i - 1 ; $str = Replace ( $str ; 1 ; 1 ; \"\" ) ] ; $i ) +"
) & "0"
) ;
$i = $len
] ;
Evaluate ( Substitute ( 10^$len - 1 ; 9 ; "Char ( 8203 + Choose ( Mod ( Int ( $n / 6^Let ( $i = $i - 1 ; $i ) ) ; 6 ) ; 0 ; 1 ; 2 ; 86 ; 87 ; 88 ) ) & " ) & "氏名" )
)
Last edited by wader (2013-11-16 11:49:06)
Offline
wader様
ありがとうございました。
他にも方法があるのですね。
これを機にもっと勉強してみたいと思います!
皆様本当にありがとうございました。
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 552.48 KiB (Peak: 573.38 KiB) ]