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

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

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

You are not logged in.

Announcement

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


#1 2015-03-26 10:44:03

NK
Member

ポータルの中で「次の場合にオブジェクトを隠す」条件指定

FMP13adv Mac です。

介護保険証の期間を管理する画面です。

レイアウトは TOは顧客テーブルのリスト表示です。

そのなかに、ポータルがあり、介護保険が表示されています。
  介護保険のTOは 顧客テーブル(1:多)介護保険テーブル

介護保険は有効期間が新しいものから順になるようにソートされています。

今日の日付で、介護保険が切れているものに(!)のアイコンを表示したいと思っています。

そのアイコンに「次の場合にオブジェクトを隠す」で以下の計算式を設定してうまくいっています。

  Get ( 日付)  ≤   顧客_介護保険::認定有効期間_終了日

ただし、過去の介護保険データについては、アラームを出す必要がないので、(過去の履歴は表示したい)
ポータル1行目でなければ表示を隠したいと思っています。

Get ( アクティブポータル行番号 )  ≠  1
or
Get ( 日付)  ≤   顧客_介護保険::認定有効期間_終了日

としてみたのですが、アクティブではないので、いつでも隠れてしまいます。
Get ( ポータル行番号 )というのはないので、どのように指定したらいいかと困っています。

Offline

#2 2015-03-26 12:24:03

Layouter
Guest

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

Get ( レコード番号 )では?

#3 2015-03-26 16:55:56

Moz
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

「!」を表示させるだけなら、
テキストツールに

!
{{レコード番号}}

2行目が見えないように高さを調整してポータル内に配置します。
この場合は[次の場合にオブジェクトを隠す]で Self でポータル行番号が取れるので、
計算式内で GetAsNumber ( GetValue ( Self ; 2 ) ) を使うとポータル行番号だけが取り出せます。

サンプル
http://xfs.jp/e9EAn

Offline

#4 2015-03-26 17:01:00

NK
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

Get ( レコード番号 )だと、ポータルの中のレコード番号でなく、リスト表示の方のレコード番号で評価されてしまいます。

ポータルの行に、{{レコード番号}}を置くと、きちんとポータル内のレコード番号がでるのに、
なぜか、次の場合にオブジェクトを隠すでうまく動きません。
ポータルの外に出てしまっているかと思い、サイズを小さくしたりしましたが、やはりうまく動きませんでした。

Offline

#5 2015-03-26 17:09:06

Moz
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

落ち着いてサンプルをよく見て下さい。

{{レコード番号}}
を取り出すのは Self 関数です。

Last edited by Moz (2015-03-26 17:09:52)

Offline

#6 2015-03-26 17:42:18

NK
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

Mozさん、#4は#2のLayouterさんの投稿への返事でした。

サンプルありがとうございます。
GetAsNumber ( GetValue ( Self ; 2 ) ) > 1
という部分が理解できないのですが、
このポータル行のオブジェクトを隠すの計算式の中のSelfは何になるんでしょうか

Offline

#7 2015-03-26 17:45:44

Moz
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

テキストツールでは

!
{{レコード番号}}

と書いている部分は実際にはポータルの1行目では

1
2行目では

2
となります。
Self は自分自身の内容なのでそのうち2行目を数字として取り出すと、
1行目では "1" 、2行目では "2" が返ってきます。
これを計算式で利用すれば 1行目は "1" ですから、
"1" 以外では非表示という式を成立させられるようになるという具合です。

テキストツールでも条件付き書式や「次の場合にオブジェクトを隠す」の計算式で Self が利用でき、
その場合はテキストツールのテキストそのものが返ってくるところがミソです。

Last edited by Moz (2015-03-26 17:51:45)

Offline

#8 2015-03-26 18:47:43

NK
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

ありがとうございます。

テキストの見えないところに改行した2行目に{{レコード番号}}があるわけですね。
理解できました。
なるほど!!!という感じです。

これをテキストでなく、オブジェクトでやることはできますか?

Offline

#9 2015-03-27 00:52:39

Moz
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

テキストツール以外では難しいですが、
テキストツールの[塗りつぶし]にもイメージ(画像ファイル)を指定できますので、

!
{{レコード番号}}

の「!」を空白(文字入力せず改行して2行目に{{レコード番号}}がある状態。
塗りのイメージに表示したい画像を指定すれば画像でも非表示にできますので応用してみると良いでしょう。
画像サイズによっては2行目では数字が見えてしまうかもしれないので、フォントサイズを調整するか、
改行を増やして3行目、4行目を取得して調整しましょう。

GetValue ( Self ; n ) ← n を {{レコード番号}} のある行にすれば O.K. です。

Last edited by Moz (2015-03-27 00:55:27)

Offline

#10 2015-03-27 08:57:39

Layouter
Guest

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

表示するテキストに数字関連のが入ってないので、改行がいくつあっても
Self+0
ぐらいでいいのでは?

Get(レコード番号)を使うのは、ポータルのテーブルに非保存計算フィールドを作ってやってたのでした。

#11 2015-03-27 09:25:55

NK
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

Layouterさん ありがとうございます。

Self+0 というのはどこで使うのですか?

Offline

#12 2015-03-27 09:31:07

Layouter
Guest

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

Mozさんので
GetAsNumber ( GetValue ( Self ; 2 ) )
の代りに使う式です。
2行目以外に数字に使われる文字(マイナスや小数点や"e")が無ければ簡略化可能では、という意味。
2行目と決まってれば簡略化する意味があんまりないですが、「改行を増やして」る場合には改行がいくつだか気にしないでよくなる。

#13 2015-03-27 09:41:48

NK
Member

Re: ポータルの中で「次の場合にオブジェクトを隠す」条件指定

なるほど!

シンプルになりますね。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 531.87 KiB (Peak: 552.77 KiB) ]