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

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

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

You are not logged in.

Announcement

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


#1 2016-11-30 11:58:25

保存しないで終了ボタン
Guest

レコード削除の相談です

OS:[7 ]
FileMaker Ver:[12 ]

保存しないで終了ボタンを作成し、入力最中や入力完了後に不要となったために、レコード削除のスクリプトを作成したいのですが、
レコード削除はあまり良くない方法であると説明を受けました。
皆さんはどうされているのでしょうか?

#2 2016-11-30 12:33:49

あると
Member

Re: レコード削除の相談です

・間違えて消してしまった→回復したい。
・削除したいが、過去の履歴は残しておきたい。
という場合は、削除フラグを作ると良いです。
表示=0、削除=1などとして、削除ボタンを押すと1を挿入する。
そして、0のものだけを表示する検索対象にすると良いかと思われます。

自分だけで使用して、削除しても全く問題ないというなら、レコード削除も方法としてはありです。

Offline

#3 2016-11-30 14:07:13

保存しないで終了ボタン
Guest

Re: レコード削除の相談です

あると wrote:

・間違えて消してしまった→回復したい。
・削除したいが、過去の履歴は残しておきたい。
という場合は、削除フラグを作ると良いです。
表示=0、削除=1などとして、削除ボタンを押すと1を挿入する。
そして、0のものだけを表示する検索対象にすると良いかと思われます。

自分だけで使用して、削除しても全く問題ないというなら、レコード削除も方法としてはありです。

削除フラグの意味はこのようなことでしょうか。
1.削除フラグフィールドを作成
2.保存しないで終了ボタンを押すと、そこに1を自動入力させる。(ファイルからはレコード削除していない)
3.通常の入力者などがレコードを見る際のボタンは1を除いて見る。
このスクリプトを作成した場合、本当に不要なレコードはどの様にしてレコード削除するのでしょうか。

#4 2016-11-30 14:11:19

Shin
Member

Re: レコード削除の相談です

普通の利用者には,そのフラグが1のレコードへのアクセスを禁止する様にしておくと,そのレコードは見えなくなります。(全レコードを表示した時以外)
管理者は,その制限を受けませんので,全レコードへのアクセスが可能です。その権限でレコード削除をしましょう。

Offline

#5 2016-11-30 14:29:22

チポ
Member

Re: レコード削除の相談です

入力を、それ専用のグローバルフィールドにして、
「保存」で新規レコード作成、グローバルの値をそれぞれのフィールドに移す。

という方法も有りますね。

Offline

#6 2016-11-30 15:13:50

保存しないで終了ボタン
Guest

Re: レコード削除の相談です

Shin wrote:

普通の利用者には,そのフラグが1のレコードへのアクセスを禁止する様にしておくと,そのレコードは見えなくなります。(全レコードを表示した時以外)
管理者は,その制限を受けませんので,全レコードへのアクセスが可能です。その権限でレコード削除をしましょう。

セキュリティ管理を見ましたが、フラグが1のレコードへのアクセス禁止する設定らしきのが見当たりません。
別の方法でしょうか。

#7 2016-11-30 18:32:35

Moz
Member

Re: レコード削除の相談です

「レコードアクセス権の編集」4.以降が参考になるかと。
http://www.filemaker.com/help/12/fmp/jp … 14.20.html

入力最中や入力完了後に不要となったために

入力している途中や全フィールド埋めたあとでヤンピしたいだけならチポさんの提案や
確定をトリガでキャンセルさせて「保存」ボタン押したときだけ確定できるようにする程度で良さそうですね。

レコード削除はあまり良くない方法

「確定前に不要と気付いたレコードを一度確定させてから削除」するなら好ましくないですがレコードの削除そのものはケースバイケースです。

Last edited by Moz (2016-11-30 18:34:57)

Offline

#8 2016-11-30 18:36:50

あると
Member

Re: レコード削除の相談です

>セキュリティ管理を見ましたが、フラグが1のレコードへのアクセス禁止する設定らしきのが見当たりません。
自分でスクリプト組まないといけません。
If(フラグ=1)
現在のスクリプト終了
EndIf
といったものをトリガなどに仕込むと良いかと。

Offline

#9 2016-11-30 23:22:10

Shin
Member

Re: レコード削除の相談です

アクセス権セットの中の、レコードの閲覧の設定で許可、禁止がコントロールできます。
スクリプトで組み込むと、全ての場合を考えていく必要があるので、後々地獄を見ますよ。

Offline

#10 2016-12-01 11:34:36

保存しないで終了ボタン
Guest

Re: レコード削除の相談です

チポ wrote:

入力を、それ専用のグローバルフィールドにして、
「保存」で新規レコード作成、グローバルの値をそれぞれのフィールドに移す。

という方法も有りますね。

試したいと思います。
こちらの方法で宜しいのでしょうか。
全ての入力フィールドはグローバルフィールドにする。
データはそのフィールドに入力。
保存時は「保存」ボタンを押すと、新規レコード作成し、変数設定とフィールド設定で入力する。
入力最中や入力完了後に不要な場合は「削除」ボタンを押すと、グローバルフィールドを空白にする。

#11 2016-12-01 11:50:06

Hiro
Member

Re: レコード削除の相談です

> 全ての入力フィールドはグローバルフィールドにする。
全ての入力フィールドをすべて個別のグローバルフィールドにしなくとも、
1つの繰り返しグローバルフィールドで代表してもらえば設定が楽になります。
また、繰り返しフィールドは1コマごと切り分け配置もできますから、
レイアウトデザイン上の制約も生じません。

Last edited by Hiro (2016-12-01 12:06:34)

Offline

#12 2016-12-01 11:54:55

チポ
Member

Re: レコード削除の相談です

> 全ての入力フィールドはグローバルフィールドにする。
> データはそのフィールドに入力。

その通りです。

> 保存時は「保存」ボタンを押すと、新規レコード作成し、変数設定とフィールド設定で入力する。
特に変数を経由する必要はないでしょう。
フィールド設定で直接グローバルフィールドの値をコピーできます。

> 入力最中や入力完了後に不要な場合は「削除」ボタンを押すと、グローバルフィールドを空白にする。
そうですね、使い勝手で方法はいろいろ考えられるでしょう。


今回はレコード作成途中で、それを中止した場合の処理ですよね。
中断で、後で完成させるならともかく、それをアクセス出来なくして、
作成途中のレコードを残しておくのもいかがなものでしょうかね。

Offline

#13 2016-12-01 11:59:20

qb_dp
Member

Re: レコード削除の相談です

レイアウト設定
└□レコードの変更を自動的に保存する(S)

まずは、
上記のチェックを外した状態で動作を確認してみては、いかがでしょう。

Offline

#14 2016-12-01 13:45:04

保存しないで終了ボタン
Guest

Re: レコード削除の相談です

Hiro wrote:

> 全ての入力フィールドはグローバルフィールドにする。
全ての入力フィールドをすべて個別のグローバルフィールドにしなくとも、
1つの繰り返しグローバルフィールドで代表してもらえば設定が楽になります。
また、繰り返しフィールドは1コマごと切り分け配置もできますから、
レイアウトデザイン上の制約も生じません。

入力フィールド(グローバル)繰り返し数3を作成し、この方法を試しました。
繰り返し1コマ目は「123」
繰り返し2コマ目は「東京」
繰り返し3コマ目は「日本 太郎」
と入力。
ところが番号,都市,名前の各フィールドに入力させるためのスクリプトがわかりません。
フィールド設定で良いのですよね。

#15 2016-12-01 14:32:09

わーい
Guest

Re: レコード削除の相談です

繰り返しのグローバルフィールドは、フィールドタイプに問題が起きませんか?
問題っていうより不便さかな?
例えば日付フィールドのようなエラーが出ないとか。

#16 2016-12-01 15:30:39

チポ
Member

Re: レコード削除の相談です

フィールド設定で各フィールドに順に入力してゆけばいいのでは。

繰り返しフィールド[n]
で繰り返しn回めの値が得られます。

Offline

#17 2016-12-01 15:36:50

チポ
Member

Re: レコード削除の相談です

繰り返しフィールドだと、そのタイプは一つになってしまいますから、
例えばテキストと日付を入力するのなら、
日付でもテキストとして入力することになりますね。

この場合日付としての整合性を見るのが面倒になりますね。

また、入力値の制限で空欄不可としても、
繰り返しのどこか一つでも入力してあればスルーしちゃいます。

そこらも考慮して考えるべきでしょう。

Offline

#18 2016-12-01 15:39:37

あると
Member

Re: レコード削除の相談です

Shinさんへ
>アクセス権セットの中の、レコードの閲覧の設定で許可、禁止がコントロールできます。
>スクリプトで組み込むと、全ての場合を考えていく必要があるので、後々地獄を見ますよ。
ゲストユーザーは削除したものは閲覧はしない、管理者のみとしていれば良いですが、
この仕組みがゆえに、削除リストをゲストユーザーが確認したいなどあった場合は、アクセス権で禁止してしまうと出来なくなります。
そういった自由度が下がるのでは無いかと。

はじめにシッカリと決めておけば良いことですが。
Shinさんの言われる方法は、レコード削除の許可・禁止で使ってます。操作がどのように間違えても消されることが無いようにと。

Offline

#19 2016-12-01 16:11:45

Hiro
Member

Re: レコード削除の相談です

入力値の整合性は、普通(Webの入力フォームなど)、正規フィールドへ転記するときに精査します。
もっとも、オブジェクトタイプなどではどうしようもありませんが、...

Last edited by Hiro (2016-12-01 16:16:14)

Offline

#20 2016-12-01 17:17:21

わーい
Guest

Re: レコード削除の相談です

正規フィールドへ転記するときに精査されたら、色々と面倒じゃないですか?
自分でやるのはいいけど、パソコンに不慣れな人にさせるのには問題があると思います。

#21 2016-12-01 17:19:04

Moz
Member

Re: レコード削除の相談です

> わーいさん
問題点を解消したアイデアに期待しています。

Offline

#22 2016-12-01 20:08:28

Hiro
Member

Re: レコード削除の相談です

精査するのは入力者ではありません。
もちろん、あなたが作ったスクリプトに従って、FMがやるのです。

Offline

#23 2016-12-01 21:40:44

わーい
Guest

Re: レコード削除の相談です

Hiroさん、それはわかってますよw
でも、精査された後直すのは入力者じゃないでしょうか?

Mozさん、いい答えが浮かべば書きますよ。
へっぽこですみません。
ただ、指摘するのもいいんじゃないかと。

仲良しクラブじゃないんだからw

#24 2016-12-01 21:46:24

わーい
Guest

Re: レコード削除の相談です

最初の質問の、レコード削除はあまり良くない方法であると説明を受けました。
ココがよくわからない。
Mozさんも良くないと言っているけど、何でか答えてないし。
やっぱグローバルを使うなら面倒だけど、個々に作るのがいいんじゃないでしょうか?

#25 2016-12-02 02:30:43

Shin
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.010 seconds, 7 queries executed - Memory usage: 575.32 KiB (Peak: 612.23 KiB) ]