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

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

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

You are not logged in.

Announcement

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


#1 2017-02-20 11:39:02

くりの
Guest

関連レコードへ移動からのレコードの削除

初心者になります。
win7
FM13
を使ってます。

テーブルA
テーブルB
テーブルCがあります。
・テーブルAには、顧客情報
・テーブルBには、作業一覧
・テーブルCには、作業指示依頼用になっています。

テーブルAのレイアウトに、
ポータルで、顧客毎のテーブルBの作業一覧を表示しています。

今までは、ポータルの作業一覧の一番下から、レコードに直接入力して、作業指示依頼をしていましたが、
同じ依頼内容で依頼部門が違う依頼を、一度の依頼(作業)で同じテーブルBの作業一覧に依頼部門の違う、
作業指示依頼を出したいということなので、
テーブルAのレイアウトに、テーブルCの作業指示依頼用の一行ポータルを設置したタブを追加し、
テーブルCの作業指示依頼の内容をボタンを押すことで、テーブルBの作業一覧に、インポートして処理後
ポータル行の削除で、入力用のテーブルCのレコードを削除していましたが、うまく動作することがほとんど
なのですが、場合によって、ポータル行の削除がうまく行かず、テーブルCにレコードが残ってしまう為、
他の依頼を入力する度に、残った依頼がどんどん増えてしまっている状況になっている為、困っています。

このレコードを確実に削除する為、ポータル行の削除ではなく関連レコードに移動をした後、レコードを削除を試してみましたが、
関連レコードが無い場合に、レイアウトの移動も行われないので、ポータルを設置してる、テーブルAの
顧客情報のレコードが削除されてしまいます。

テーブルCは基本的に入力したレコードを削除する為に追加したので、別のファイルに作成しています。
(以前こちらの書き込みで、レコードを削除を繰り返すとファイルが破損するというのを拝見して別にしています。)

1.関連レコードが無かった場合には、削除を行わない方法。
2.レイアウトを移動後、テーブルBにある作業IDのフィールドを検索して、テーブルCのレコードを削除する方法
かと思ったのですが、どちらもやり方が分かりません。
3.ポータル行の削除で確実に削除する方法。(起こる原因が特定できていないので、無理っぽいですが)
この方法か、他のやり方でよい処理方法がありましたら、教えてください。

#2 2017-02-20 12:08:26

Shin
Member

Re: 関連レコードへ移動からのレコードの削除

テーブルBの作業一覧と、テーブルCの作業指示依頼は、同じ内容か。1対1の内容なんですよね。それを2重に持たせているのでややこしいのでは。

Offline

#3 2017-02-20 12:32:56

くりの
Guest

Re: 関連レコードへ移動からのレコードの削除

Shinさん 返信有難うございます。
テーブルBの作業一覧とテーブルCの作業指示依頼は、フィールドにある【依頼部門】だけが違うものです。同じ依頼を複数入力するのが面倒という意見があり、
テーブルCの作業指示依頼のテーブルを作成し、内容を記入し、依頼部門はチェックを入れるようにしています。入力完了ボタンを押すことで、依頼部門にチェックが入っている、部門名を拾ってその数だけインポートしている状況でしたので、最終的に入力用に入力したものは削除していました。
かなり無理のある、やり方とは思っておりましたが、他に方法も分からず無理やりやっている方法でした。


Shin wrote:

テーブルBの作業一覧と、テーブルCの作業指示依頼は、同じ内容か。1対1の内容なんですよね。それを2重に持たせているのでややこしいのでは。

#4 2017-02-20 13:19:59

Shin
Member

Re: 関連レコードへ移動からのレコードの削除

同じ依頼内容で,複数の部署へ配信する,という事なんでしょうか。
作業指示一覧に管理番号を付けておきます。作業一覧には,その管理番号と依頼部署名のみを置いておき,そこから参照の形で持たせれば簡単では。
作業一覧側では,自部署の依頼された一覧が標示できればいいのでしたら、作業指示一覧を抽出一覧すればいいだけかも。

Offline

#5 2017-02-20 15:04:36

くりの
Guest

Re: 関連レコードへ移動からのレコードの削除

Shinさん 返信有難うございます。
各部署で拾ったのち、作業の進捗が発生しまして、作業フローから完了まで、若干ことのるのでレコードを複数用意していました。


Shin wrote:

同じ依頼内容で,複数の部署へ配信する,という事なんでしょうか。
作業指示一覧に管理番号を付けておきます。作業一覧には,その管理番号と依頼部署名のみを置いておき,そこから参照の形で持たせれば簡単では。
作業一覧側では,自部署の依頼された一覧が標示できればいいのでしたら、作業指示一覧を抽出一覧すればいいだけかも。

#6 2017-02-20 15:29:42

チポ
Member

Re: 関連レコードへ移動からのレコードの削除

テーブルBのレコード複製、必要部分を編集。
ではまずいのでしょうか。

テーブルCは不要に思いますが。。

Offline

#7 2017-02-20 16:19:55

Shin
Member

Re: 関連レコードへ移動からのレコードの削除

> 各部署で拾ったのち、作業の進捗が発生しまして、作業フローから完了まで、若干ことのる
作業完了の日時等を、部署毎に記録しているのですか。

Offline

#8 2017-02-20 16:59:46

くりの
Guest

Re: 関連レコードへ移動からのレコードの削除

Shinさん 返信有難うございます。
作業完了までが、部署ごとに異なるので、1つのレコードが完了まで行きましたら、フラグは完了済みで終了としていました。完了の場合は日付を記録します。

Shin wrote:

> 各部署で拾ったのち、作業の進捗が発生しまして、作業フローから完了まで、若干ことのる
作業完了の日時等を、部署毎に記録しているのですか。

#9 2017-02-20 17:09:29

くりの
Guest

Re: 関連レコードへ移動からのレコードの削除

チポさん 返信有難うございます。
--------------------------------------------
If[PatternCount(テーブルB::部署名;"動作部")
レコードのインポート
End If

If[PatternCount(テーブルB::部署名;"電子部")
レコードのインポート
End If

If[PatternCount(テーブルB::部署名;"業務部")
レコードのインポート
End If

If[PatternCount(テーブルB::部署名;"品質管理部")
レコードのインポート
End If
--------------------------------------------
のように、フィールドの値 チェックボックスにチェックが入っている場合、
部署名をフィールド設定で入力し、インポートしていました。
レコードの複製、必要部分を編集の方法を詳しく教えていただけないでしょうか。



チポ wrote:

テーブルBのレコード複製、必要部分を編集。
ではまずいのでしょうか。

テーブルCは不要に思いますが。。

#10 2017-02-20 17:31:42

チポ
Member

Re: 関連レコードへ移動からのレコードの削除

説明がよく理解出来ていません、、

> If[PatternCount(テーブルB::部署名;"動作部")
> レコードのインポート
> End If
・・・

テーブルB::部署名
のレコードに複数のチェックが入っているのですか?


例えば、
テーブルBで「動作部」のレコードが有り、
それと同じレコードを「電子部」で作りたい。

ということではないのでしょうか?

Offline

#11 2017-02-20 18:40:38

Shin
Member

Re: 関連レコードへ移動からのレコードの削除

ちょっとリレーションの設定が面倒ですが、こんな動きにしてしまうと、部署のチェックを入れるだけで複数のレコードを作っていけますよ。
https://www.dropbox.com/s/udr1y56gu92nj … 7.zip?dl=0

もう少し工夫すれば、ポータルの中でのチェックだけで動けるかもしれません。

Last edited by Shin (2017-02-20 18:42:10)

Offline

#12 2017-02-21 10:34:17

くりの
Guest

Re: 関連レコードへ移動からのレコードの削除

チポさん有難うございます。
すみません。
テーブルB::部署名には、チェックボックスにしており、依頼者が必要な部署にチェック(複数の場合もあります)をいれて、依頼を出します。
スクリプトで If[PatternCountを連続でいれまして、チェックがあればインポート、チェックが無ければスルーして次を見に行くようになっていて、最後にポータル行の削除になっています。
インポートの時に、フィールド設定で、部署名を入れるようになっています。
フィールドBに、チェックが入れた部署名の入った、部署名だけが異なる、その他同じ内容のレコードを作製したいです。
その後、テーブルCに入力した内容がなぜか削除されず残っていると、次の別の依頼を入力したタイミングで、またインポートされてしまうのです。
宜しくお願い致します。


チポ wrote:

説明がよく理解出来ていません、、

> If[PatternCount(テーブルB::部署名;"動作部")
> レコードのインポート
> End If
・・・

テーブルB::部署名
のレコードに複数のチェックが入っているのですか?


例えば、
テーブルBで「動作部」のレコードが有り、
それと同じレコードを「電子部」で作りたい。

ということではないのでしょうか?

#13 2017-02-21 10:35:48

くりの
Guest

Re: 関連レコードへ移動からのレコードの削除

Shinさん 有難うございます。
サンプルまで頂き有難うございます。
こちらのサンプルの動きがわからずでした。初心者の為すみませんが、サンプルの説明を頂けますと助かります。
宜しくお願い致します。

Shin wrote:

ちょっとリレーションの設定が面倒ですが、こんな動きにしてしまうと、部署のチェックを入れるだけで複数のレコードを作っていけますよ。
https://www.dropbox.com/s/udr1y56gu92nj … 7.zip?dl=0

もう少し工夫すれば、ポータルの中でのチェックだけで動けるかもしれません。

#14 2017-02-21 11:01:11

チポ
Member

Re: 関連レコードへ移動からのレコードの削除

> スクリプトで If[PatternCountを連続でいれまして、チェックがあればインポート
このインポートの部分を、
  レコード複製
とすればいいのでは。

Offline

#15 2017-02-21 12:41:30

Shin
Member

Re: 関連レコードへ移動からのレコードの削除

リレーション元側に,グローバルフィールドに各部署名を保存し,そこから各部署毎のリレーションを張っておきます。その部署名(リレーション側)をチェックで入力する事によって、関連レコードを作る、という動きです。
作業一覧側には内容を一切持たせず、一覧側に内容を持たせてそれを参照しています。コピーや複製等や、まして通常は行うべきではないレコードの削除等のややこしい処理は一切ありません。唯一、チェックをしてしまってそれを取り消す時に、部署名は消去されていますので有効レコードではなくなりますが,不要ならば削除しても良いかも知れません。

Last edited by Shin (2017-02-23 15:08:22)

Offline

#16 2017-02-23 10:23:35

くりの
Guest

Re: 関連レコードへ移動からのレコードの削除

shinさん、チポさん 有難うございます。
とても参考になります。どちらの方法も試してみたいと思います。
初心者の為、時間がかかるのでまた質問させてください。
宜しくお願いします。

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: 558.67 KiB (Peak: 579.58 KiB) ]