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

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

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

You are not logged in.

Announcement

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


#1 2017-11-04 14:56:06

moomin
Member

アカウント名取得について

FM初心者です、医療機器管理データベースを作成しています。
現在ユーザマスタテーブルのアカウントを有効にしてFMのログイン画面からログインしています。
下記の変更を行いたいのですが、うまくいきません、申し訳ありませんがご指導よろしくお願い致します。

<現在>
「ユーザマスタ設定」  アカウント名フィールド:山田太郎    パスワードフィールド:●●●
  ↓
「ログイン」      アカウント:山田太郎 パスワード:●●● を入力
  ↓
「新規レコード作成時」 作成者フィールドに山田太郎を自動入力(入力値の自動化→作成情報→アカウント名)

<やりたいこと>
「ユーザマスタ設定」  アカウント名フィールド:1234(スタッフID)    パスワードフィールド:●●●   スタッフ名フィールド:山田太郎
  ↓
「ログイン」      アカウント:1234 パスワード:●●● を入力
  ↓
「新規レコード作成時」 作成者フィールド:山田太郎を自動入力

Offline

#2 2017-11-04 21:09:58

mic
Member

Re: アカウント名取得について

一案ですが。

・テーブル「変数」
ログインアカウント名:テキスト(グローバル)

・リレーション
「変数::ログインアカウント名」=「ユーザマスタ設定::アカウント名」


・ファイルオープン後の初期化スクリプト(必ず一度は実行されるトリガで実行)
フィールド設定[変数::ログインアカウント名; Get(アカウント名)]
変数を設定[$$スタッフ名; 値:ユーザマスタ設定::スタッフ名]


・「作成者」フィールドのオプション「入力値の自動化」で
「計算値」= $$スタッフ名
フィールドの既存の値が存在する場合は置き換えないにチェック

Offline

#3 2017-11-04 22:52:16

Shin
Member

Re: アカウント名取得について

ログイン時に、アカウントマスターをアカウント番号で検索し、グローバル変数にアカウント名を保存しておきます。
新規レコードの自動入力では、そのグローバル変数を参照するのが簡単です。

または、管理者以外では、アカウントマスターにアクセス権限を設定し、自分のアカウントのみ閲覧許可します。それでデカルト積でのリレーション(いわゆるXリレーション)を張っておき、関連レコードの値でアカウント名を引いてもいいでしょう。管理者は、一人だけならば、アカウントマスターのトップになるようにソートしておくと良いです。複数ならば、変数に保存などの他の方法を併用します。

Last edited by Shin (2017-11-05 23:26:03)

Offline

#4 2017-11-06 12:03:11

moomin
Member

Re: アカウント名取得について

micさま、ご返信ありがとうございます。
提案していただいた内容で設定しログインしたところ、新規レコード作成しても作成者フィールドが空欄となってしまいます。
テーブル:「変数」のログインアカウント名フィールドには入力したアカウントが表示されています。
なにか原因として考えられることがあるでしょうか。。。

shinさま、ご返信ありがとうございます。
提案していただいた内容は頭では理解できたのですが、実際にどう設定を組んだらよいのでしょうか。
色々試してみたのですがうまくいきません、ご教授していただけると大変助かります。

Offline

#5 2017-11-06 13:44:32

mic
Member

Re: アカウント名取得について

変数を設定[$$スタッフ名; 値:ユーザマスタ設定::スタッフ名]

試しにこの部分を

変数を設定[$$スタッフ名; 値:"test"]

としてファイルを開き直し、新規レコードを作成するとどうなりますか?

これで作成者フィールドが「test」になっているなら「変数」テーブルと「ユーザマスタ設定」テーブルのリレーションがうまくできていないか、スタッフ名フィールドが空になっているかではないかと思います。
「test」ではなく空のままなら、変数の設定がうまくできていないか入力値の自動化ができていないかのどちらかでしょう。
変数は「$」ではなくちゃんと「$$」になっているか、変数名が「変数を設定」ステップと入力値の自動化の両方で一致しているか確認してみてください。

Offline

#6 2017-11-06 14:34:47

moomin
Member

Re: アカウント名取得について

micさま

確認致しました。
新規レコード作成者フィールドに「test」が自動入力されました。
テーブル:「ユーザマスタ」のスタッフ名フィールドには氏名を入力してあります。
ということはmicさまがおっしゃるとおり、テーブル「変数」と「ユーザマスタ」のリレーションがうまくいっていないのが原因ですよね。
ただ、「変数」のログインアカウント名と「ユーザマスタ」のアカウント名でリレーションはつないであるのです。。。
教えていただいているのでうまくできず申し訳ありません。。

Offline

#7 2017-11-06 14:54:23

チポ
Member

Re: アカウント名取得について

ログインするテーブルに
アカウント名フィールドを作り、自動入力。

このフィールドでリレーションして
スタッフ名をルックアップ等で入力。

でいいのでは。

Offline

#8 2017-11-06 17:05:52

mic
Member

Re: アカウント名取得について

変数::ログインアカウント名 がグローバル格納になっていなかったりしませんかね。

どのように利用するのか分かりませんが、私なら作成者フィールドは作成情報アカウント名をそのまま入れておき、アカウント名でリレーションしてユーザマスタ側を参照して表示するようにします。
ソートや検索条件に使う場合は、レコード数が多いならチポさんのようにルックアップや計算値で入力しておくこともありますね。

分離モデルの場合はテーブルを開いているファイルによって変数が設定されていない可能性も出てくるので、素直に作成情報アカウント名を入力しておいた方がいいかもしれません。

Offline

#9 2017-11-06 17:06:43

moomin
Member

Re: アカウント名取得について

色々いじくった結果です。

フィールド設定[変数::ログインアカウント名; Get(アカウント名)]
レイアウト切り替え「変数テーブル」
変数を設定[$$スタッフ名; 値:ユーザマスタ設定::スタッフ名]
レイアウト切り替え「ホーム画面」

上記スクリプトで新規レコード作成者が自動入力(スタッフ名)されました。
ご教授いただいたmicさまはじめ、shinさま、チポさま、ありがとうございました!

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 569.56 KiB (Peak: 585.75 KiB) ]