みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
いつも大変お世話になっております。
バージョン19.6.1.45になります
レコードを更新された順に修正のタイムスタンプでソートしています。
この場合、一部のアカウントやユーザーの修正は修正情報タイムスタンプに反映されない。ということは可能でしょうか?
例えば、
社員Aが案件書を更新→この場合は一番上に来て欲しい
その案件書を上長が確認フィールドにチェック←これを修正履歴として残したくない。
要は上長のレコード変更を履歴に反映させたくない。社員の変更履歴のみの最新を表示させたい。といった感じです。
何か他の対策があればご教授お願いします。
何卒よろしくお願いいたします。
反映させたくないのが確認フィールドだけでしたら、簡単ですよ。案件書テーブルと別に案件書確認テーブルを作り、リレーションしておきます。
上長のすべての編集を反映させない、でしたら、本来の修正情報と別に、アカウントをみて修正情報を取得するフィールドを作ればいいでしょう。
例えば、検証してませんが、
Evaluate ( "Case ( Get ( アカウント名 ) = "上長" ; self ; 修正情報 )" ; 修正情報 )
でいいかも。
Offline
Shinさん
ありがとうございます。
案件書テーブルに
Evaluate ( "Case ( Get ( アカウント名 ) = "上長" ; self ; 修正情報 )" ; 修正情報 )でよろしかったでしょうか?
案件書テーブルと案件書確認テーブルはどのようにリレーションをすればよろしいでしょうか?
お手数ですが、ご教授よろしくお願いいたします。
1つの方法としては、「レコードのインポート」を使うと、自動入力させずにフィールド値を変更することができます。
チェック(1つのフィールドの固定値)ぐらいなら、サーバ側のスクリプトでレコードIDを引数にする、で簡単にできそうですが、任意のフィールドとか値だと、インポートするデータを作るのが手間そうです。
リレーションは、レコード固有のデータなら何でもいいです。UUID の主キーが最適かと思います。
Offline
計算フィールドの計算式
Evaluate ( "Case ( Get ( アカウント名 ) = ""上長"" ; 計算フィールド名 ; 修正情報 )" ; 修正情報 )
でいいでしょう。
「上長」
が新規レコードを作製する場合があるともう一工夫必要でしょう。
Offline
アカウント名を文字列でフィールド計算式に埋め込むと、「上長」が異動するたびに変更しないといけないので、アクセス権セットに「上長」的なのを定義しておいた方がいいかも。
みなさま
ありがとうございます。
ひとまず、案件確認テーブルを作成し、主キーでリレーションをはりました。
これで、案件テーブルに計算フィールドを作成すればよろしかったでしょうか?
案件確認テーブルはリレーションをはるだけで何もしなくてよいのでしょうか?
お世話になっております。
案件テーブルに下記の計算フィールドを作成
Evaluate ( "Case ( Get ( アカウント名 ) = \"上長\" ; self ; 修正情報タイムスタンプ)";修正情報タイムスタンプ )
で、計算結果をタイムスタンプにしているのですが、どこかおかしいところがございますでしょうか?
フィールドが?になります。
""上長""で入力しましたが、上記のようになりました。
ご教授願えますか?
> 案件確認テーブルを作成し、主キーでリレーションをはりました。
関連フィールドとして、確認フィールドを案件テーブルへ配置すればいいです。
Offline
私の前レスを見てください。
Self
が使えないんですよ。
Offline
すみません。
案件確認テーブルのほうに、
Evaluate ( "Case ( Get ( アカウント名 ) = \"上長\" ; 案件確認テーブルに作成した計算フィールド ; 案件テーブルの修正情報タイムスタンプ)";案件テーブルの修正情報タイムスタンプ )
計算結果タイムスタンプのフィールドを作成しました。
これを、
案件テーブルのレイアウトに配置しているのですが、?のままです・・・
どこがおかしいか教えていただけますか?
計算フィールドの場合は案件書テーブルだけですよ。
他テーブル、リレーションは不要です。
Offline
案件テーブルに計算フィールド「上長を抜いた修正情報」計算フィールド。計算結果タイムスタンプ
を作成し、
上長を抜いた修正情報の計算式が
Evaluate ( "Case ( Get ( アカウント名 ) = \"上長\" ; 上長を抜いた修正情報 ; 修正情報タイムスタンプ)";修正情報タイムスタンプ )
にしているのですが、やはりフィールドの表示が?のままになってしまいます・・・
「上長」のアカウントで
「?」
となっているフィールドの計算式を変更したのでしょうか?
とするとそのままになるかもしれませんね。
Case ( IsValid ( Self ) ;
Evaluate ( "Case ( Get ( アカウント名 ) =
\"上長\" ; 上長を抜いた修正情報 ;
修正情報タイムスタンプ)";
修正情報タイムスタンプ ) ;
修正情報タイムスタンプ )
こうすれば問題なくなるかな。。
Offline
チポさん
ありがとうございます。
出来ました。
申し訳ありません。
もう一点よろしいでしょうか?
Get(アカウント名)を複数にしたい場合はどのような計算式にすればよろしいでしょうか?
自分でもorを使用したりしたのですが、うまくできません・・・
何卒よろしくお願いいたします。
申し訳ありません。
自己解決できました。
ありがとうございました。
みなさま
大変ありがとうございました。
自分でも計算式を勉強していきます。
引き続き何卒よろしくお願いいたします。
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 599.84 KiB (Peak: 616.38 KiB) ]