みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Win 10
FileMaker Pro 12 Advanced
FileMaker初心者です。
従業員の月ごとの出勤日数を管理するテーブルがあります。
フィールドは「従業員ID」「月」「出勤日数」の3つです。
トップ画面からこのレイアウトに移動するボタンでAスクリプトを実行します。
新規レコード作成時にデータの重複を防ぐためにBスクリプトを実行します。
このレイアウトでは常に月(昇順)にレコードを作成するとは限らないので、月でソートしていたいですが、スクリプト実行時などにそのソートが崩れてしまいます。
ですが、都度ソートしていると現在入力したいレコードから最初のレコードに移動してしまいます。
常にソートが掛かった状態で入力中レコードから他のレコードに移動しない方法はありますか?
できれば、ポータルは作りたくないです。
Aスクリプト
レイアウトの切り替え[「出勤日数」(出勤日数)]
全レコードを表示 ←検索結果が残っていると困るので一応
検索モードに切り替え[]
Bスクリプト
変数を設定[$従業員ID;出勤日数::従業員ID]
変数を設定[$月;出勤日数::月]
検索モードに切り替え[]
フィールド設定[出勤日数::従業員ID;$従業員ID]
フィールド設定[出勤日数::月;$月]
検索実行[]
If[Get(対象レコード)=1]
次のフィールドへ移動 ←ある従業員に同月のレコードがなければそのまま進んで出勤日数フィールドへ移動
Else If[Get(対象レコード)>1]
カスタムダイアログを表示[”エラー”;”既にこのスタッフの今期指定月の出勤日数は登録済みです。"]
フィールドへ移動[出勤日数::月] ←月の再入力を促したい
End If
検索モードに切り替え[]
フィールド設定[出勤日数::従業員ID;$従業員ID]
検索実行[]
以上です。
ご教示ください。
Offline
別ウィンドウで作業して、終了すればウィンドウを閉じればいいでしょう。
または、ID と 月 をグローバルフィールドに格納し、自己リレーションを張っておき、関連レコードの作成を許可しておきます。出勤日数は関連レコード先としてレイアウトに表示させます。
入力済みでしたらその数字が表示され、未入力またはレコードが無い場合には空白で表示され、そこに入力すれば、入力、または、新規レコードが作成されます。
Last edited by Shin (2017-12-04 23:52:13)
Offline
> 都度ソートしていると現在入力したいレコードから最初のレコードに移動してしまいます
これが理解できません。
入力中に他のレコードに移動することは考えられませんが。。
また、
Bスクリプトでは「月」の重複を見ていますが、
レコードを作ってから重複を見るより、
重複のレコードができないような仕組みを考えた方がいいのでは。
全従業員の毎月のレコードが必ず必要なら、
一度に全従業員のその月のレコードを自動作成できますよ。
もっといえば、1年分位の自動作成もできますよね。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 509.79 KiB (Peak: 516.8 KiB) ]