みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
複数画面がありますが、B画面(Bファイル)にユーザAの操作した文字や変数などを他のC画面(Cファイル)、D画面(Dファイル)にも使いたい。
下記の対応で問題ないでしょうか?
1、B,C,D画面ごとに同じ名前のテーブルgXXXtable(複数テキストの項目があります)を追加する
2、B画面に操作後の文字をgXXXtableテーブルのテキスト項目に設定する
3、C画面、D画面にgXXXtableテーブルのテキスト項目を参照する。
Offline
ファイル全体の構造がわからないと、見当がつきません。
テーブルを作っても、そのテーブルとのリレーションを張らないと、テーブルの参照はできません。
Offline
今、グローバルテーブル追加してもダメ見たいです。わからないことが多いので、一応実現したい内容を説明します。
あるユーザログイン中に、このユーザ操作のデータを複数画面間に共有したいです。ログアウト時データクリアする。データベースに保持する必要がないです。
最初.net開発と同じように グローバルテーブルを追加して、テーブルテーブルの一部データを複数画面間に使用すると思いましたが、
画面ごとに同じ名前のグローバルテーブルを追加し、テーブルに同じ項目を追加しました。それぞれの画面に参照または設定処理を追加しました。
だめぽい。
ファイル全体の構造がわからないと、見当がつきません。
テーブルを作っても、そのテーブルとのリレーションを張らないと、テーブルの参照はできません。
Offline
グローバルテーブル とは何のことでしょうか。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
根本的な考え方が間違っていると思いますよ。
他のテーブル(ファイル)の値を参照するには、
リレ-ションでしょう。
参照するレコードと、参照されるレコードの関係が明確になっていないとだめですね。
Offline
「画面」という用語はFMには存在しません。
.net開発の経験はほとんど役に立たないと思うので、まずはFMの用語を一通り学んでみる必要があるのでは。
既に作りかけてるようですが、もしかするとファイルがBCDに分かれてることが大問題かもしれません。
大変ありがとうございました。確かにその通りです。
グローバルテーブル とは何のことでしょうか。FIleMaker には、その概念はありません。
また、おそらく SQL 系のデータベースの概念を持ち込もうとされているのでしょうが、全く違う概念で動いていますので、考え方をゼロから変えてください。SQL 系は、極端に言うと、ファイルを開いて個別に必要なデータをワークテーブルへ取り込んでそのファイルへのアクセスはせずに、ローカルでワークテーブルに対して処理を行い、その結果をサーバーのファイルへ書き戻す、という動きです。FM は、共有するファイルを開いて、そのレコードのデータを直接操作して、結果をそのまま書き込む、という動きです。共有するファイルは、直接クライアントが同時にアクセスできる開いたままになります。1ファイルの中で、テーブルを横断して共通のデータを持たせ、保存の必要がないのでしたら、いずれかのテーブルに作ったグローバルフィールドを参照するのがいいでしょう。グローバルフィールドは、リレーションに関係なく参照できます。グローバルフィールドのみを持たせた、グローバルテーブルみたいなテーブルも作成できます。
マスターになるようなテーブルということでしたら、テーブルを1個作り、別のテーブルからそのテーブルを参照するようにリレーションを張ればいいのかも。
ただし、別ファイルは参照出来ませんので、共有するファイルが必要になります。ただ、
> B画面に操作後の文字をgXXXtableテーブルのテキスト項目に設定する
> C画面、D画面にgXXXtableテーブルのテキスト項目を参照する。
画面というのがレイアウトのことで、レイアウトごとに別のテーブルに紐付いている、という構造なのでしたら、
そのテーブル間の関連性(リレーション)によっては、テーブルBのフィールドを関連フィールドとして参照すればいいのでは。今お使いのDBMSとは、かなり概念が違っているようです。
https://www.claris.com/ja/resources/
の公式トレーニング資料に目を通されればいかがでしょうか。
Offline
Pages: 1
[ Generated in 0.009 seconds, 10 queries executed - Memory usage: 583.4 KiB (Peak: 588.65 KiB) ]