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

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

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

You are not logged in.

Announcement

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


#1 2017-04-07 12:16:58

taka
Member

特定の条件下でフィールドを隠したい

いつもお世話になっています。 FM15ad Win7

経過記録を作っています。
テーブルA(親テーブル):「レコードID」「ID」「氏名」
テーブルB(子テーブル):「レコードID」「親ID」「内容」「状態」

テーブルAのレイアウトにテーブルBのポータルを設置(テーブルA::レコードID=テーブルB::親ID)
テーブルAのレイアウト(ポータル外)にボタンを設置し、テーブルBに新規レコードを作成するようにスクリプトを設定しています。
入力はテーブルAのレイアウトで行い、入力完了後に登録ボタンを押すようにしています。

状態フィールドは新規作成中なら「新規」、入力が終了して登録ボタンを押したら「登録」となるようにしています。

レコードの削除は状態Fが「新規」のときだけ出来るようにしたいと考えています。
このボタンもテーブルAのレイアウト(ポータル外)におきたいです。

このとき削除ボタンを「ポータル内のアクティブなレコードの状態フィールドが「新規」のとき」だけ表示したいのですが出来ますでしょうか?

宜しくお願いします。

Offline

#2 2017-04-07 13:17:09

チポ
Member

Re: 特定の条件下でフィールドを隠したい

書かれた方法だと、
テーブルBでレコードを作成し、それを削除
することが有るんですよね。

レコード削除を前提の方法はいいとはいえないのでは。

Offline

#3 2017-04-07 13:38:32

taka
Member

Re: 特定の条件下でフィールドを隠したい

チポ様
ありがとうございます。

レコード削除は 新規レコード作成から1度登録するまで に限って行えるようにしたいと考えています。
削除が前提とは考えていません。
レコード削除は間違ってレコードを作成した場合などのための措置として考えています。

スクリプト内容含めて流れは
①テーブルAで新規作成ボタンを押す(スクリプト開始)
②テーブルBのレイアウトに移動
③テーブルBで新規レコード作成:親ID入力 状況Fに「新規」入力
④テーブルAのレイアウトに移動
⑤テーブルBのポータル内の③で作成されたレコードに移動(スクリプト終了)
⑥状況Fに入力
⑦登録ボタンを押す:状況Fに「登録」入力

これ以降はレコードの削除が出来ないです。
編集する場合は状況Fを「修正中」として変更の履歴をとっています。

基本的に状況Fに「登録」を入力しないとファイルを閉じたり他のレイアウトに移動したり新規レコードを作製したりはできないようにしています。

Last edited by taka (2017-04-07 13:41:43)

Offline

#4 2017-04-07 14:35:24

チポ
Member

Re: 特定の条件下でフィールドを隠したい

それでも削除が有りますよね。。

オブジェクトを条件で非表示に出来ます.
ヘルプのリンクです。
  http://www.filemaker.com/help/15/fmp/ja … ts.html%23


リレーションの設定で新規レコード作成に許可を与えれば、
ポータルの最終行に入力してレコード作成が出来ます。

Offline

#5 2017-04-07 14:48:50

taka
Member

Re: 特定の条件下でフィールドを隠したい

チポ様
ありがとうございます。

特定の条件下でも削除はやめておいたほうがいいのでしょうか?
それとも削除のログを残すことをすればいいのでしょうか?

オブジェクトを隠すでやりたいのですがどのような式を打てば良いのかわからないのです。
今もいろいろやってみている最中ではありますが、なかなかできなくて・・・

Offline

#6 2017-04-07 17:15:38

Shin
Member

Re: 特定の条件下でフィールドを隠したい

削除は、原則行わない方が良いでしょう。
削除のフラグを立てればいかがですか。そのフラグがあれば、ユーザーからはアクセス禁止にしておけば良いです。

そのような隠しレコードが不都合でしたら、一旦グローバウフィールド等にデータを入力させておき、登録操作で新規の実レコードへそのデータを移行させるような動きが良いかと思います。

Offline

#7 2017-04-07 17:23:11

チポ
Member

Re: 特定の条件下でフィールドを隠したい

> 削除ボタンを「ポータル内のアクティブなレコードの状態フィールドが「新規」のとき」だけ表示したい
ここだけ、、

テーブルAにフィールドを作り、アクティブポータル行の「レコードID」を入力。
このフィールドとテーブルBの「レコードID」とリレーション。
このリレーション先の「状態」が「新規」以外なら非表示とすればいいでしょう。

「レコードID」の入力は、スクリプトにして、
ポータル行のスクリプトトリガで出来ますね。

Offline

#8 2017-04-10 10:17:08

taka
Member

Re: 特定の条件下でフィールドを隠したい

Shin様 チポ様
ありがとうございます。

やりたかったことはチポ様の方法で無事に作成することができました。

削除に関しては今は行えてしまっているので変えていってみようと思います。
カスタムアクセス権で設定すればいいのですよね?

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 563.01 KiB (Peak: 582.13 KiB) ]