みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM11 Win7利用
Filemaker上で出勤退勤を管理しているのですが、あまりにも押し忘れが多いのでポップアップヘルプで注意して押し忘れをなくしたいですが。
仕事が始まったら必ずとあるスクリプト(今後はスクリプトA)を実行します。
出勤時間フィールドが空白の場合、ポップアップペルプが出現して「出勤ボタンを押して下さい」と表示したいのです。
そんなことはFilemakerで可能でしょうか?
Offline
出勤時間フィールド のフィールド定義で制限をかけて、空白不可にし、エラーコメントにカスタムメッセージを設定すれば良いでしょう。
http://www.filemaker.co.jp/11help/html/ … tml#346081
または、トリガーを使って同じ様な動きを作る事も可能です。
全く逆の発想で、スクリプトAのどこかで、カスタムダイアログで出勤時刻を入力させるように仕組むとか、ログインした時に自動設定する、でも良いかも。
Offline
>出勤時間フィールド のフィールド定義で制限をかけて、空白不可にし、エラーコメントにカスタムメッセージを設定すれば良いでしょう。
しましたが、ビクともしません。
出勤時間フィールドのあるレイアウトとスクリプトAを始動するレイアウトが違うのですが、なにか影響はありますでしょうか?
ちなみにログイン時に設定するというのはどうやってやるのですか?
Offline
フィールドの制限で、常時制限 にされていますか。
レイアウトが異なっても、このエラーは表示されますが、どのように入力するかは、エラーを出さないようにしてレイアウトを変更するなど、考える必要があります。(テーブルが異なる、ということはありませんよね)
仕事が始まって、必ずすぐにログインするのでしたら、開始のスクリプトで出勤時刻を設定してしまえばいいでしょうが、少しの誤差は考えられますね。
Offline
開始時=出勤、終了時=退勤 というのはいいですね!
ファイル → ファイルオプションからだと思うのですが、
現在のスクリプトを編集して使いたいのですが、どうもうまくいきません。
現在↓↓
---------------------------
エラー処理[オン]
レイアウトの切り替え[「タイムカード」(タイムカード)]
検索モードに切り替え[]
フィールド設定[タイムカード::アカウント名;Get(アカウント名)]
フィールド設定[タイムカード::出退勤;GetAsTime(ホストのタイムスタンプ)]
検索実行[]
If[Get(最終エラー)=401]
新規レコード/検索条件
フィールドの設定[タイムカード::アカウント名;Get(アカウント名)]
フィールドの設定[タイムカード::出退勤日時;GetAsDate(ホストのタイムスタンプ)]
フィールドの設定[タイムカード::出勤打刻;GetAsTime(ホストのタイムスタンプ)]
Else
If[タイムカード::退勤打刻]
フィールドの設定[タイムカード::退勤打刻;GetAsTime(ホストのタイムスタンプ)]
End If
End If
---------------------------
というスクリプトを作り一個のボタンで作業しています。
これを開始時と終了時に分けたいのですが、とある条件があります。
一日のうちに何度かファイルを終了したり、再度立ち上げたりするのです!
①.出勤打刻は同日で更新されないようにする(一番最初に立ち上げた時間を出勤時間とする)
②.退勤打刻は退勤されるごとに毎回更新される(最終のファイル終了時を採用)
この2点の条件をみなしたスクリリプトを「開始時」、「終了時」と分けて教えて頂くと非常に有り難いです。
よろしくお願い致します。
Offline
> フィールド設定[タイムカード::出退勤;GetAsTime(ホストのタイムスタンプ)]
は、どういう意図ですか?
フィールド設定[タイムカード::出退勤日時;GetAsDate(ホストのタイムスタンプ)]
にすれば、出勤時に既存レコードを検索するんでは。
日時なのにGetAsDateというのは変だけど。
> If[タイムカード::退勤打刻]
これがあると、打刻済(で、たまたま00:00だった場合を除く)の場合のみ変更する。
日をまたぐ勤務は、ないのですね。
ファイルを立ち上げた時点と終了させる時点で、全てのタイムスタンプとアカウントを保存していきます。
その中からその日の最初の立ち上げと最後の終了を探せば良いのでは。
Offline
Timさま
ありがとうございます。
♯5の上記の式間違ってました。
× フィールド設定[タイムカード::出退勤;GetAsTime(ホストのタイムスタンプ)]
○ フィールド設定[タイムカード::出退勤日時;GetAsDate(ホストのタイムスタンプ)]で合ってます。
さらにこれも間違ってます。
× If[タイムカード::退勤打刻]
○ If[タイムカード::退勤打刻 = ""]
日にちを跨ぐことはありません!
Shinさま
ありがとうございます。
そういう発想もあるんですね!
余計なレコードやレイアウトなどを増やしたくはないのですが、それって簡単にできますか?
Offline
https://fm-aid.com/bbs2/viewtopic.php?id=829
で私も出来ました。
ShinさまTimさま
ありがとうございます。
Offline
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 522.59 KiB (Peak: 527.49 KiB) ]