〜FileMakerを使って、ゆとりの時間を過ごしましょう〜
 名古屋在住。FileMakerを使ったシステムを受託開発中。
<< FM-Chubu vol.43 に参加してきました | main | スクリプトのコメント >>
Ver.UP:レコード作成者、更新者の名前を自動取得させる方法(の一つ…だと思う方法)
2014年の10月に書いたブログで、
レコードの作成者、更新者の名前を自動取得させる方法というのを書きました。
その時の方法だと、
レコードを複製したときに作成者が元のレコードのママになってしまうという不具合がありました。
…また複製のことを全く考えていませんでした<(_ _)>

作成者も「入力値の自動化」の「計算値」を利用するのですが、
「フィールドに既存の値が存在する場合は置き換えない」のチェックを外しておきましょう
というお話。
せっかくなので、こちらのブログで改めて書いておこうと思います。

レコードを作成したときや修正したときに
「いつ」「誰が」という情報を取得する方法のお話です。

まずは準備です。
ファイルを起動したときに、利用者の名前を設定しておきます。
作成者更新者1準備
起動時に表示されるレイアウトに利用者名を入力するフィールドを配置してみました。
(スクリプトでフィールドに値を設定すればフィールドを配置する必要はありません)
これで準備完了。

次に、
新規レコードを作成します。
新規レコードを作成する時の利用者は「愛知 県民」さんです。
作成者更新者2作成後
作成日時に今の日時が取得され、
作成者に「愛知 県民」が取得されます。
更新日時も今の日時が取得され、
更新者に「愛知 県民」が取得されます。


このレコードを別の利用者が使っているときに金額を変更します。
先ほどの利用者は「愛知 県民」さんでしたが、
金額を変更するのは「岐阜 鵜飼」さんです。
作成者更新者3更新後
金額変更後、
更新日時が今の日時に変わり、
更新者が「岐阜 鵜飼」さんに変わります。


このレコードを今度は複製します。
複製する時の利用者は「三重 真珠」さんです。
作成者更新者4複製後
複製後、
複製されたレコードの
作成日時に今の日時が取得され、
作成者に「三重 真珠」が取得されます。
更新日時も今の日時が取得され、
更新者に「三重 真珠」が取得されます。

※更新日時と作成日時に時差がありますが、
 これは複製後に品名フィールドにカーソルが入った状態になっていたのを
 カーソルを抜いてレコード確定状態にした時の日時が更新日時になったためです。


これがやりたいことです。

ここからはどうやってるかという説明です。

「作成者更新者の取得.fmp12」ファイルを作りました。
テーブルは2つ用意(1つでもいいんですが、今回は2つ)

「Temporary」テーブル
  作成者の名前を入力するためのテキストフィールド(グローバル格納)だけのテーブル。
  今回は「利用者名_gt」というグローバル格納のテキストフィールドを作りました。

「MoneyNote」テーブル」
  レコードを作って入力するためのテーブル。
  先ほどの画面はこちらのテーブルを元にしてレイアウトを作りました。
  作成者や更新者のフィールドはこちらに作ります。
作成者更新者5フィールド定義
「作成者」「作成日時」
「更新者」「更新日時」
これが今回のポイントになるフィールドです。
これ以外に
「品名」というテキストフィールドと「金額」という数字フィールドも作ってあります。

「作成日時」「更新日時」フィールドのタイプはタイムスタンプにして、
 オプションを設定します。
「入力値の自動化」の、
「作成日時」には作成情報の「タイムスタンプ」を指定、
「更新日時」には修正情報の「タイムスタンプ」を指定します。

これで「いつ」というのが自動で取得できます。

次に「誰が」なのですが、
これには「入力値の自動化」の作成情報や修正情報は使いません。
「名前」を選択するとFileMakerの環境設定の「ユーザ名」が取得されますし、
「アカウント名」を選択すると「セキュリティ」で設定した「アカウント」が取得されるのですが、
「ユーザー名」はそのパソコンにインストールされているFileMakerに設定しているものなので、
個人を特定したい場合はちょっと違うような気がするのです。
「アカウント名」も使い方次第…なんですが、これもちょっと違う気がするのです。

で、どうするかというと、
ファイルを起動したときの画面で入力した利用者の名前を利用します。
「Temporary」テーブルの「利用者名_gt」フィールドに入力した値です。


「MoneyNote」テーブルの
「作成者」「更新者」フィールドに「利用者名_gt」の値を取得するには、
いずれもオプションで「入力値の自動化」の「計算値」を利用します。

計算式は、
「作成者」フィールドには「Temporary::利用者名_gt
「更新者」フィールドには「Evaluate ( Quote ( Temporary::利用者名_gt ) ; 更新日時 )
と指定します。
これで値を取得することができます。
いずれのフィールドも
「フィールドに既存の値が存在する場合は置き換えない」のチェックを外しておきます。
作成者更新者6フィールドオプション
今回は「データ入力時の値変更の禁止」のチェックをつけました。
うっかり編集してしまうのを防ぐためにチェックをつけましたが、
つけなくても動作に問題はありません。

前にも書いたのですが、今回はグローバル格納のフィールドを使っています。
単独使用の場合はグローバル格納のフィールドの値はファイルを閉じても残りますが、
共有で使っている場合はグローバル格納のフィールドの値はファイルを閉じると消えてしまいます。
複数ファイルで構成されたシステム(カスタム APP)の場合、
グローバル格納のフィールドが作られているファイルを閉じるときは
システム(カスタム APP)全体を閉じるなどの工夫も必要かもしれませんね(^_^)

毎度、毎度で申し訳ございませんが、、、
ここに記載した内容についてのご質問などは受け付けておりませんので悪しからず…。
お使いになる場合は自己責任でお願いいたします<(_ _)>

間違いのご指摘やもっといい方法のご提案などいただけるとうれしいのですが、
かなりの小心者ですので、、、
間違いのご指摘などはこっそりご連絡いただけるとうれしいです。
| Hifumi N. | FileMakerのこと | 23:24 | comments(2) | - | pookmark |
アカウントとは別にユーザー名を管理しているので、このような方法を思いつかなかったので参考になります。

ありがとうございます。
| elaboration | 2019/11/24 2:02 PM |
elaborationさま、コメントありがとうございます。
お役に立てたならうれしいです。

最近、こちらのブログはイベント関連のことを書くことにしましたので、
あまり技術的なことは書いていないのですが、
仕事用のサイトに付随したブログの方に、
頻度はかなり低くめですが^^;
FileMakerの使い方などを書き足しております。

営業目的というものでもありませんのでよろしければ
https://usagi-mimi.com/blog/
↑こちらのブログもご覧くださいませ。
(よくご覧いただいている記事は移したりもしているので重複記事もあります)

コメントいただけると励みになります。
ありがとうございました<(_ _)>
| HifumiN. | 2019/11/26 12:33 AM |









CALENDAR
SMTWTFS
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
SELECTED ENTRIES
CATEGORIES
ARCHIVES
RECENT COMMENTS
  • Ver.UP:レコード作成者、更新者の名前を自動取得させる方法(の一つ…だと思う方法)
    HifumiN. (11/26)
  • Ver.UP:レコード作成者、更新者の名前を自動取得させる方法(の一つ…だと思う方法)
    elaboration (11/24)
  • 指定した月数分を足した日付の計算
    HifumiN. (08/07)
  • 指定した月数分を足した日付の計算
    Shoichi Miyamura (08/06)
  • 今年も北海道でフロコンが開催されます
    HifumiN. (04/09)
  • 今年も北海道でフロコンが開催されます
    さちりん (04/09)
  • MacでFileMaker 17、または16を使っている方はOSをアップするのは待ちましょう
    HifumiN. (12/13)
  • MacでFileMaker 17、または16を使っている方はOSをアップするのは待ちましょう
    nao (12/04)
  • MacでFileMaker 17、または16を使っている方はOSをアップするのは待ちましょう
    HifumiN. (11/28)
  • MacでFileMaker 17、または16を使っている方はOSをアップするのは待ちましょう
    nao (11/22)
商標について
FileMaker、ファイルメーカー、FileMaker Cloud、FileMaker Go およびファイルフォルダロゴは、Claris International Inc. (旧 FileMaker, Inc.) の米国および/またはその他の国における登録商標です。
Claris、Clarisロゴおよび FileMaker WebDirect は、Claris International Inc. (旧 FileMaker, Inc.) の商標です。その他のすべての商標は該当する所有者の財産です。

FileMaker、ファイルメーカー及び Bento は、米国およびその他の国における FileMaker, Inc. の登録商標です。
ファイルフォルダロゴ及び Bento ロゴは、FileMaker, Inc. の商標です。
なお本文では「®」「™」は明記しておりません。
このブログについて
FileMakerというデータベースソフトに関する話題を中心に書いています。
長年の受託開発会社での開発経験を元に、皆さまに役立つ情報が発信できればと思います。
profile
人気ブログランキングへ
FileMakerの取得資格
usagi-mimi
usagi-mimi
メールはこちらから
MOBILE
qrcode
LINKS
PROFILE
このページの先頭へ