初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2017-12-04 18:24:18

step
Member

アクティブなレコードが常に最初のレコードになってしまう

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

#2 2017-12-04 18:57:08

Shin
Member

Re: アクティブなレコードが常に最初のレコードになってしまう

別ウィンドウで作業して、終了すればウィンドウを閉じればいいでしょう。

または、ID と 月 をグローバルフィールドに格納し、自己リレーションを張っておき、関連レコードの作成を許可しておきます。出勤日数は関連レコード先としてレイアウトに表示させます。
入力済みでしたらその数字が表示され、未入力またはレコードが無い場合には空白で表示され、そこに入力すれば、入力、または、新規レコードが作成されます。

Last edited by Shin (2017-12-04 23:52:13)

Offline

#3 2017-12-05 09:25:51

チポ
Member

Re: アクティブなレコードが常に最初のレコードになってしまう

> 都度ソートしていると現在入力したいレコードから最初のレコードに移動してしまいます
これが理解できません。
入力中に他のレコードに移動することは考えられませんが。。

また、
Bスクリプトでは「月」の重複を見ていますが、
レコードを作ってから重複を見るより、
重複のレコードができないような仕組みを考えた方がいいのでは。

全従業員の毎月のレコードが必ず必要なら、
一度に全従業員のその月のレコードを自動作成できますよ。

もっといえば、1年分位の自動作成もできますよね。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 509.88 KiB (Peak: 516.9 KiB) ]