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

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

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

You are not logged in.

Announcement

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


#1 2021-09-09 16:25:57

charliezx
Member

ファイル間のデータ保持について

複数画面がありますが、B画面(Bファイル)にユーザAの操作した文字や変数などを他のC画面(Cファイル)、D画面(Dファイル)にも使いたい。
下記の対応で問題ないでしょうか?
1、B,C,D画面ごとに同じ名前のテーブルgXXXtable(複数テキストの項目があります)を追加する
2、B画面に操作後の文字をgXXXtableテーブルのテキスト項目に設定する
3、C画面、D画面にgXXXtableテーブルのテキスト項目を参照する。

Offline

#2 2021-09-09 17:35:24

Shin
Member

Re: ファイル間のデータ保持について

ファイル全体の構造がわからないと、見当がつきません。
テーブルを作っても、そのテーブルとのリレーションを張らないと、テーブルの参照はできません。

Offline

#3 2021-09-09 18:13:35

charliezx
Member

Re: ファイル間のデータ保持について

今、グローバルテーブル追加してもダメ見たいです。わからないことが多いので、一応実現したい内容を説明します。
あるユーザログイン中に、このユーザ操作のデータを複数画面間に共有したいです。ログアウト時データクリアする。データベースに保持する必要がないです。

最初.net開発と同じように グローバルテーブルを追加して、テーブルテーブルの一部データを複数画面間に使用すると思いましたが、
画面ごとに同じ名前のグローバルテーブルを追加し、テーブルに同じ項目を追加しました。それぞれの画面に参照または設定処理を追加しました。
だめぽい。

Shin wrote:

ファイル全体の構造がわからないと、見当がつきません。
テーブルを作っても、そのテーブルとのリレーションを張らないと、テーブルの参照はできません。

Offline

#4 2021-09-09 18:24:49

Shin
Member

Re: ファイル間のデータ保持について

グローバルテーブル とは何のことでしょうか。FIleMaker には、その概念はありません。
また、おそらく SQL 系のデータベースの概念を持ち込もうとされているのでしょうが、全く違う概念で動いていますので、考え方をゼロから変えてください。SQL 系は、極端に言うと、ファイルを開いて個別に必要なデータをワークテーブルへ取り込んでそのファイルへのアクセスはせずに、ローカルでワークテーブルに対して処理を行い、その結果をサーバーのファイルへ書き戻す、という動きです。FM は、共有するファイルを開いて、そのレコードのデータを直接操作して、結果をそのまま書き込む、という動きです。共有するファイルは、直接クライアントが同時にアクセスできる開いたままになります。

1ファイルの中で、テーブルを横断して共通のデータを持たせ、保存の必要がないのでしたら、いずれかのテーブルに作ったグローバルフィールドを参照するのがいいでしょう。グローバルフィールドは、リレーションに関係なく参照できます。グローバルフィールドのみを持たせた、グローバルテーブルみたいなテーブルも作成できます。
マスターになるようなテーブルということでしたら、テーブルを1個作り、別のテーブルからそのテーブルを参照するようにリレーションを張ればいいのかも。
ただし、別ファイルは参照出来ませんので、共有するファイルが必要になります。

ただ、
> B画面に操作後の文字をgXXXtableテーブルのテキスト項目に設定する
> C画面、D画面にgXXXtableテーブルのテキスト項目を参照する。
画面というのがレイアウトのことで、レイアウトごとに別のテーブルに紐付いている、という構造なのでしたら、
そのテーブル間の関連性(リレーション)によっては、テーブルBのフィールドを関連フィールドとして参照すればいいのでは。

今お使いのDBMSとは、かなり概念が違っているようです。
https://www.claris.com/ja/resources/
の公式トレーニング資料に目を通されればいかがでしょうか。

Last edited by Shin (2021-09-10 11:17:50)

Offline

#5 2021-09-10 08:53:49

チポ
Member

Re: ファイル間のデータ保持について

根本的な考え方が間違っていると思いますよ。

他のテーブル(ファイル)の値を参照するには、
リレ-ションでしょう。
参照するレコードと、参照されるレコードの関係が明確になっていないとだめですね。

Offline

#6 2021-09-10 08:58:30

himadanee
Guest

Re: ファイル間のデータ保持について

「画面」という用語はFMには存在しません。
.net開発の経験はほとんど役に立たないと思うので、まずはFMの用語を一通り学んでみる必要があるのでは。

既に作りかけてるようですが、もしかするとファイルがBCDに分かれてることが大問題かもしれません。

#7 2021-09-10 12:14:54

charliezx
Member

Re: ファイル間のデータ保持について

大変ありがとうございました。確かにその通りです。

Shin wrote:

グローバルテーブル とは何のことでしょうか。FIleMaker には、その概念はありません。
また、おそらく SQL 系のデータベースの概念を持ち込もうとされているのでしょうが、全く違う概念で動いていますので、考え方をゼロから変えてください。SQL 系は、極端に言うと、ファイルを開いて個別に必要なデータをワークテーブルへ取り込んでそのファイルへのアクセスはせずに、ローカルでワークテーブルに対して処理を行い、その結果をサーバーのファイルへ書き戻す、という動きです。FM は、共有するファイルを開いて、そのレコードのデータを直接操作して、結果をそのまま書き込む、という動きです。共有するファイルは、直接クライアントが同時にアクセスできる開いたままになります。

1ファイルの中で、テーブルを横断して共通のデータを持たせ、保存の必要がないのでしたら、いずれかのテーブルに作ったグローバルフィールドを参照するのがいいでしょう。グローバルフィールドは、リレーションに関係なく参照できます。グローバルフィールドのみを持たせた、グローバルテーブルみたいなテーブルも作成できます。
マスターになるようなテーブルということでしたら、テーブルを1個作り、別のテーブルからそのテーブルを参照するようにリレーションを張ればいいのかも。
ただし、別ファイルは参照出来ませんので、共有するファイルが必要になります。

ただ、
> B画面に操作後の文字をgXXXtableテーブルのテキスト項目に設定する
> C画面、D画面にgXXXtableテーブルのテキスト項目を参照する。
画面というのがレイアウトのことで、レイアウトごとに別のテーブルに紐付いている、という構造なのでしたら、
そのテーブル間の関連性(リレーション)によっては、テーブルBのフィールドを関連フィールドとして参照すればいいのでは。

今お使いのDBMSとは、かなり概念が違っているようです。
https://www.claris.com/ja/resources/
の公式トレーニング資料に目を通されればいかがでしょうか。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.018 seconds, 9 queries executed - Memory usage: 587.03 KiB (Peak: 592.28 KiB) ]