みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になっております。
FMP19を利用しています。
「次の場合にオブジェクトを隠す」を活用し、ユーザーごとの専用メモフィールドを作りたいと思っています。
ユーザーは10人で、ユーザーごとのテキストフィールドを10個作成しました。
10フィールドをレイアウトへ配置し、自分用以外のオブジェクトを隠す条件を指定したいのですが、
下記以外で簡単な条件はありますでしょうか。
下記だと、すべてのフィールドに設定が必要となりますしメンテが大変なので、アドバイスいただけますと幸いです。
アカウント1以外のときに隠す条件
Get ( アカウント名 ) = "アカウント2" or
Get ( アカウント名 ) = "アカウント3" or
Get ( アカウント名 ) = "アカウント4" or
Get ( アカウント名 ) = "アカウント5" or
Get ( アカウント名 ) = "アカウント6" or
Get ( アカウント名 ) = "アカウント7" or
Get ( アカウント名 ) = "アカウント8" or
Get ( アカウント名 ) = "アカウント9" or
Get ( アカウント名 ) = "アカウント10"
よろしくお願いいたします。
not(Get ( アカウント名 ) = "アカウント1")
Offline
not(Get ( アカウント名 ) = "アカウント1")
こちらで出来ました!
下記で出来なかったので悩んでましたが、( )を付けなければいけなかったのですね。
not Get ( アカウント名 ) = "アカウント1"
ありがとうございました!
こういうのは、別テーブルにアカウント名(とレコードID)でリレーションして作るものではないかな?
ユーザーというかアカウントが増えるごとにフィールドの追加が必要になるのは、よい作り方ではないです。
こういうのは、別テーブルにアカウント名(とレコードID)でリレーションして作るものではないかな?
ユーザーというかアカウントが増えるごとにフィールドの追加が必要になるのは、よい作り方ではないです。
himadaneeさん
ありがとうございます。
さっそくリレーションでの方法を勉強してみます。
もちろん自分で調べますが、参考になるQ&Aがあれば教ていただきたいです。
よろしくお願いいたします。
Get ( アカウント名 )
という非保存の計算フィールドを作っておきます。そのフィールドと主キー で、別のテーブルにリレーションを張っておき、そのテーブルにフィールドを作っておきます。
それだけでいいですよ。
Offline
Get ( アカウント名 )
という非保存の計算フィールドを作っておきます。そのフィールドと主キー で、別のテーブルにリレーションを張っておき、そのテーブルにフィールドを作っておきます。
それだけでいいですよ。
ありがとうございます。
不勉強ながら実施したことを見ていただけますでしょうか。
1.元々あったテーブルAに、非保存の計算フィールド GET(アカウント名)を作成
2.別テーブルBを作成
3.テーブルBに、フィールド「主キー」「アカウント」「入力用」を作成
4.テーブルAとテーブルBでリレーションを設定
A:非保存の計算フィールド GET(アカウント名) = B:アカウント
and A:主キー = B:主キー
5.テーブルAのレイアウトにフィールドを配置
配置するテーブル:テーブルBの入力用フィールド
実際にテーブルAのレイアウトで入力するときは、
スクリプトなどでテーブルBにレコードを作成し、
主キーとアカウントを入力するということで良いでしょうか。
手動で実施しましたら、問題なく動作いたしました。
大変お手数ですがご回答いただけますと幸いです。
よろしくお願いいたします。
そのリレーションで、テーブルB 側のレコード作成を許可しておきます。
テーブルA のレイアウトに、テーブルB::入力用フィールド を配置するだけでいいです。これで、レコード毎アカウント毎に別の値が保存できます。
Offline
そのリレーションで、テーブルB 側のレコード作成を許可しておきます。
テーブルA のレイアウトに、テーブルB::入力用フィールド を配置するだけでいいです。これで、レコード毎アカウント毎に別の値が保存できます。
ありがとうございます。
希望通りの動作ができました!
レコード作成の許可でしたか、まだまだ勉強することがたくさんです。。。
本当にありがとうございました!!
そのリレーションで、テーブルB 側のレコード作成を許可しておきます。
テーブルA のレイアウトに、テーブルB::入力用フィールド を配置するだけでいいです。これで、レコード毎アカウント毎に別の値が保存できます。
お世話になります。
テーブルA上のレイアウトに配置した、テーブルBのフィールドを検索するとエラーとなります。
メッセージ「これらのテーブル間の1つまたは複数のリレーションシップが無効なため、この操作は実行できません。」
こちらは正しい挙動でしょうか。
それともなにか設定が間違っているためでしょうか。
下記のリレーションだけ削除したら検索できました。
テーブルA:getアカウント = テーブルB:アカウント
ご存知でしたらご教授頂けますと幸いです。
よろしくお願いいたします。
検索があるのでしたら、Get ( アカウント名 ) はグローバルフィールドにしておいた方がいいですね。この場合、OnFirstWindowOpem トリガーでフィールド設定しておきます。
Offline
検索があるのでしたら、Get ( アカウント名 ) はグローバルフィールドにしておいた方がいいですね。この場合、OnFirstWindowOpem トリガーでフィールド設定しておきます。
グローバルフィールドにしたら検索ができました!
計算フィールドだと発生するのですね。
大変助かり、とても勉強になりました。
ありがとうございました。
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 529.84 KiB (Peak: 550.38 KiB) ]