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

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

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

You are not logged in.

Announcement

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


#1 2018-05-10 12:16:24

Koto
Member

Case関数の使い方

いつもご教授ありがとうございます
またまた初歩的な質問で申し訳ございませんがお力をお貸しください
FMP16

メール送信『メッセージ欄』の計算式について

フィールドA

フィールドB
フィールドa
フィールドb
フィールドc
※フィールドa・b・cはフィールドBに付随

があります

①フィールドAが空欄、フィールドBも空欄の場合 ⇒ 空欄
②フィールドAが空欄ではない、フィールドBのみ空欄の場合 ⇒ フィールドAのみ値を返す
③フィールドAが空欄、フィールドBが空欄ではない場合 ⇒ フィールドB・フィールドa・フィールドb・フィールドcの値を返す
④フィールドAが空欄ではない、フィールドBも空欄ではない ⇒ フィールドA・フィールドB・フィールドa・フィールドb・フィールドcの値を返す

の計算式がこんがらがっております

お知恵を貸して頂けると幸いです
どうぞ宜しくお願い致します

Offline

#2 2018-05-10 14:38:04

fukurow
Member

Re: Case関数の使い方

※フィールドa・b・cはフィールドBに付随 がよくわからないし
フィールドA、フィールドB、フィールドa、フィールドb、フィールドcを勝手にテキストだと思ってるけど
ダラダラcaseで書くことはできるけど、結局のところ

フィールドA & フィールドB & フィールドa & フィールドb & フィールドc

なんじゃないかと

Offline

#3 2018-05-10 14:49:28

Hiro
Member

Re: Case関数の使い方

> ※フィールドa・b・cはフィールドBに付随
の真意がよく解りませんが、仮に、
フィールドBが、フィールドa・b・cを引数にした任意の計算フィールド
だとして、

附随の引数フィールドa・b・cを含め、全フィールドの空欄は表示しない、
という条件なら、空欄排除の「・」文字区切り連結式は、

Substitute(
   List(
      フィールドA;
      フィールドB;
      Choose(IsEmpty(フィールドB); List(フィールドa; フィールドb; フィールドc))
   )
;
   [¶; "・"]
)

Offline

#4 2018-05-10 16:08:18

Koto
Member

Re: Case関数の使い方

fukurow様・Hiro様
お返事ありがとうございます

『付随』の言葉選びを間違えて申し訳ございません
訂正させて頂きます

フィールドA

フィールドB
フィールドa
フィールドb
フィールドc
※フィールドa・b・cはフィールドBに付随

全てテキストフィールドで
フィールドBに文字入力した場合、フィールドa~cが必須入力
※フィールドBが空欄の場合、a~cも空欄です

改行は行わず、1行で表示し接頭語に"【"、接尾語に"】"、フィールドの区切りを"/"で表示です
パターン④の場合:【フィールドA/フィールドB/フィールドa/フィールドb/フィールドc】

引続き宜しくお願い致します

Last edited by Koto (2018-05-10 16:17:04)

Offline

#5 2018-05-10 16:19:14

Shin
Member

Re: Case関数の使い方

> フィールドBが空欄の場合、a~cも空欄です
これが、そのままでしたら、
"【" & Substitute (
   List ( フィールドA ; フィールドB ; フィールドa ; フィールドb ; フィールドc ) ;
   ¶ ; "/"
) & "】"
で良いのでは。

フィールドBが空欄の場合、a~cも空欄にする、
という意味なら、
"【" & Substitute (
   List (
      フィールドA ;
      Case ( not IsEmpty ( フィールドB ) ; List ( フィールドB ; フィールドa ; フィールドb ; フィールドc ) )
   ) ;
   ¶ ; "/"
) & "】"
でしょう。

Last edited by Shin (2018-05-10 16:22:39)

Offline

#6 2018-05-10 17:57:27

Hiro
Member

Re: Case関数の使い方

すべて空欄=全非表示の場合の「【】接頭語と接尾語」の取り扱いは、
表示?非表示?

Offline

#7 2018-05-11 10:22:34

Koto
Member

Re: Case関数の使い方

Shin様
いつもいつも本当にありがとうございます!!

第二案で出来ました!!
当初、Caseのみで行っており計算式が長くなり且つフィールドA・Bの演算子(or・xor)で行き詰っておりました
SubsituteとListの組合せ、大変勉強になりました
本当にありがとうございます!!

Hiro様
細かいご配慮ありがとうございます!!
Shin様のアドバイスの頭に
Case(IsEmpty(フィールドA) and IsEmpty(フィールドB);"";
を付けて【】は解決致しました



毎々、本当にありがとうございます
引続きどうぞ宜しくお願い致します

Offline

#8 2018-05-11 12:03:27

Shin
Member

Re: Case関数の使い方

List ( フィールドA ; フィールドB ; フィールドa ; フィールドb ; フィールドc ) ;
では、不具合がありましたか?
書かれている通りならば、これで十分なはず。

Offline

#9 2018-05-11 16:34:46

Koto
Member

Re: Case関数の使い方

Shin様

ご心配・お気遣いありがとうございます!!
またまた言葉選びを間違えました....

第一案・二案とも出来ました!!

今後ともどうぞ宜しくお願い致します

Last edited by Koto (2018-05-11 16:36:29)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 517.57 KiB (Peak: 522.11 KiB) ]