みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
よろしくお願いいたします。
ファイルメーカーの18を使っています。
さっそく
人物を入力するフィールドが4つあります。
フィールド1:太郎
フィールド2:太郎
フィールド3:一郎
フィールド4:三郎
となった時 重複を教えてくれるようにカスタムダイアログを出したいです。
作ったやつが
Case (
フィールド1 = フィールド2 ;
"重複しています。" ;
フィールド1 = フィールド3 ;
"重複しています。" ;
フィールド1 = フィールド4 ;
"重複しています。" ;
フィールド2 = フィールド3 ;
"重複しています。" ;
フィールド2 = フィールド4 ;
"重複しています。" ;
フィールド3 = フィールド4 ;
"重複しています。" ;
"重複なし"
)
と書きました。4人全てにデータが入っていると成功するのですが、
フィールド1:太郎
フィールド2:一郎
フィールド3:
フィールド4:
と空白が入っていても重複と捉えられてしまいます。
うまく空白を回避して重複していることを通知したいです。
加えて、スマートじゃないので、もう少し関数がスマートになら無いかと思っています。
どうぞよろしくお願いいたします。
方法はいろいろ考えられますが、
計算だけで・・
Let ( [ $f1 = Case ( IsEmpty ( フィールド1 ) ; "1" ; フィールド1 ) ;
$f2 = Case ( IsEmpty ( フィールド2 ) ; "2" ; フィールド2 ) ;
$f3 = Case ( IsEmpty ( フィールド3 ) ; "3" ; フィールド3 ) ;
$f4 = Case ( IsEmpty ( フィールド4 ) ; "4" ; フィールド4 ) ] ;
Case ( ( $f1 = $f2 ) + ( $f1 = $f3 ) + ( $f1 = $f4 ) + ( $f2 = $f3 ) + ( $f2 = $f4 ) + ( $f3 = $f4 ) ; "重複" ; "OK" ) )
1,2,3,4はフィールド値に使われない固有値なら何でも可です。
あまりスマートとは言えないかな、、
入力してから重複を見るより、重複の入力ができない様にしたほうがいいのでは。
Offline
チポ様
ありがとうございます。Letをつかえばいいとは思ったのですが、いまいち使い方がわからず躊躇していました。
恥ずかしながら重複を許可しないようするにはどうしたら良いのでしょうか?
現在、人物名を値一覧に書いており、ドロップダウンリストで選択するようにしております。
ご教示いただければ幸いです。
Offline
こんな感じとか。
Let([
¢LIST=List ( f1;f2;f3;f4 )
;¢UniqueValues=UniqueValues (¢LIST)
];
ValueCount ( ¢LIST ) ≠ ValueCount ( ¢UniqueValues )
)
※1レコードに人物フィールドが4っつと言うのがちょっと気になりますが.....
Offline
qb_dp様
ありがとうございます。
1レコードに人物フィールドが4つというのは、レコードごとに業務が違っていて各業務ごとの担当職員の仕事量を出したくてレコードを分けています。
スマートにやる方法がわからずレコードばかり増えています。ちなみに実際は6フィールドあります。。。
お恥ずかしい限りです。
Offline
途中からアカウント名がxyzになってしまっていますが、ログインしないで投稿してしまったためです。
投稿者と同一人物です。
Offline
「各業務ごとの担当職員の仕事量を出す」
ざっと考えた場合、
フィールドは、以下のような感じが良いような.....
業務種別|担当者|工数
Offline
qb_dp様
たしかにですね。。。もう少しシステムを考えてみます。
なかなかスマートに作ることができず、苦労しています。
上記の関数はスッキリして見やすいですね。参考にさせていただきます。
チポ様qb_dp様
早い回答誠にありがとうございます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 516.06 KiB (Peak: 520.6 KiB) ]