初心者のFileMaker pro Q&A

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

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス

#1 2018-06-20 16:25:52

popo1
ゲストユーザー

[解決] 休憩時間を加味した時間の表示について

いつもお世話になっております。
FMはバージョンは16 OSはwin になります。

品番  作業開始 終了予定 標準時間
A    9: 00     10:00   1:00
B  10: 10   11 : 10   1:00
C  11: 10   12 : 00   0:50
D  12: 50     13 : 30         0: 40

上のように以下の休憩時間を含めたスケジュールの表示をしたいです。
「10:00~10:10」「12:00~12:50」「15:00~15:15」

フィールドは 「品番」「作業開始」「作業終了予定」 「標準時間」
別ファイルより「休憩時間」  があります。

休憩時間を加味していない場合はこちらの関数で表示できました。
Case ( Get ( レコード番号 ) = 1 ; 加工者一覧 2::勤務時間 ; GetNthRecord( 作業終了時間 ; Get ( レコード番号 ) - 1 ))

加味する場合はどう記述すればよいのでしょうか?
どうかご教示のほどお願いいたします。

#2 2018-06-21 13:11:42

チポ
メンバー

Re: [解決] 休憩時間を加味した時間の表示について

元のテーブルを仮に「作業」テーブルとし、
フィールドを追加

  作業開始予定時刻
     計算フィールド 計算式を popo 1さんが提示された計算式とします。

  作業終了予定時刻 (ご説明の「作業終了予定」は「作業終了」としてください)
     計算フィールド  計算式   作業開始 + 標準時間


休憩テーブルのフィールドを
  休憩開始時刻
  休憩終了時刻
として、1休憩を1レコードで各時刻を入力。


リレーション
            作業                休憩
  作業開始予定時刻 > 休憩開始時刻
  and
  作業開始予定時刻 < 休憩終了時刻
として、
この関連レコードがあれば作業開始が休憩時間内にあるということですから、
関連レコードの休憩終了時刻を作業開始とします。


作業終了も同様に考えて設定します。

と書いて、、
もし作業終了が休憩時間内の場合、
  1. 休憩時間を加えて終了をのばす
  2. 二つのレコードに分ける
        (二つ以上の休憩にまたがるような作業もあるのか?・・とても面倒そう!)

と考えられましたが、いかがでしょう?

オフライン

#3 2018-06-21 18:46:43

popo1
ゲストユーザー

Re: [解決] 休憩時間を加味した時間の表示について

チポ様
リレーションまでは設定できたのですが
その先の作業終了が休憩時間内の場合、休憩時間を加えて終了をのばす
というのはどう関数を記述すればよいのでしょうか?

#4 2018-06-22 09:10:22

チポ
メンバー

Re: [解決] 休憩時間を加味した時間の表示について

私の前レスであげたリレーションは、
作業開始時刻のためのものですが、
それは出来たのでしょうか?

作業終了時刻のためには新たなリレーションが必要ですが、
それも出来ているのでしょうか?

また、
前レスの私の質問の解答がないとその先へ進めません。

オフライン

#5 2018-06-22 19:01:44

popo1
ゲストユーザー

Re: [解決] 休憩時間を加味した時間の表示について

チポ様

やりたいことは作業終了が休憩時間内の場合、その休憩時間を含めて表示させたい...ですので
1. 休憩時間を加えて終了をのばす。というのができればいいです。
また、2つ以上の休憩をまたぐような作業は今のところありません。

リレーションについてですが、作業開始はチポ様が書いてくださったように設定。終了時間も同じように
            作業                休憩
  作業終了 > 休憩開始時刻
  and
  作業終了 < 休憩終了時刻
で設定しました。

関連レコードの休憩終了時刻を作業開始とします。
の作業開始とは、「作業開始予定時刻」とは別のフィールドということでよろしいでしょうか?

#6 2018-06-25 09:11:02

チポ
メンバー

Re: [解決] 休憩時間を加味した時間の表示について

作業開始予定時刻
は休憩時間を加味しない時刻で、
この時刻から休憩を考慮して作業開始時刻に入力します。

終了も同様です。


前々レスのリレーションを使い、作業開始時刻は
  Case ( IsValid ( 休憩テーブル::休憩開始時刻 ) ; 休憩テーブル::休憩終了時刻 ; 作業テーブル::作業開始予定時刻 )
                              ↑                                         ↑
                 作業テーブルとリレーションした休憩テーブルのテーブル名

で求められます。


作業終了は、終了時刻が休憩をまたいだ先もあり得ると考慮して、
リレーションを
              作業               休憩 2(休憩テーブルのコピー、作業テーブルをコピーしては行けません)
        作業開始時刻 < 休憩終了時刻
  and
  作業終了予定時刻 > 休憩開始時刻
として、

作業終了時刻の計算式
  作業テーブル::作業終了予定時刻 + Case ( IsValid ( 休憩 2テーブル::休憩開始時刻 ) ; 休憩 2テーブル::休憩終了時刻 - 休憩 2テーブル::休憩開始時刻 )

で求められます。

オフライン

#7 2018-06-25 13:55:05

Shin
メンバー

Re: [解決] 休憩時間を加味した時間の表示について

スクリプトで1個ずつ計算していけば簡単なのですが、一挙に計算で行うとすると、相当ややこしい問題です。
9時作業開始、休息時間は #1 の条件ですと、休息を無視してタイムテーブルを作り(終了時刻は10:59分などで)、すべての時刻に対して
10:00以降は、10分遅らせる
11:50以降は、60分遅らせる
14:00以降は、75分遅らせる
という計算をすればいいです。これを汎用にするのが結構面倒で、特に開始時刻が変わると相当面倒です開始時刻が9:00以外の場合には、ダミーの作業を入れておく、という運用が簡単です。
とりあえず、開始時刻が9:00に固定されているサンプルです。
https://www.dropbox.com/s/66ctmdbbbycsl … 7.zip?dl=0

編集者 Shin (2018-06-26 13:53:07)

オフライン

#8 2018-06-26 19:10:17

popo1
ゲストユーザー

Re: [解決] 休憩時間を加味した時間の表示について

チポ様

#6のように入力をしてみましたが以下のようになってしまいます。

品番  作業開始 作業終了 標準時間
A    9: 15     10:00   0:45
B  10: 00     10 : 29   0:19
C  10: 19     10 : 49   0:30
D  10: 49     11 : 06   0 : 17 ...

F 11:42      13 : 06   0 : 34
G   12:50      13 : 10   0 : 20 ...

A→Bまでは休憩時間を含まれていますが、Cの「作業開始」が前レコードの「作業終了」を引き継いで表示されませんでした。
それ以降も休憩時間をまたいだ次のレコードから上記のようになってしまいます。
自分のやり方が間違っているのでしょうか...

それと休憩テーブルについての確認ですが、1休憩を1レコードで各時刻を入力。
       休憩開始時刻  休憩終了時刻
レコード1   10:00               10:10
レコード2      12:00               12:50
レコード3      15:00               15:15
という表記で間違いはないでしょうか。

#9 2018-06-26 19:15:16

popo1
ゲストユーザー

Re: [解決] 休憩時間を加味した時間の表示について

Shin様

サンプルありがとうございます。ダミーを使う方法もあるのですね、参考にさせていただきます。

#10 2018-06-27 09:22:57

チポ
メンバー

Re: [解決] 休憩時間を加味した時間の表示について

作業開始予定時刻の計算式はpopo1さんが書かれた
  Case ( Get ( レコード番号 ) = 1 ; 加工者一覧 2::勤務時間 ; GetNthRecord( 作業終了時間 ; Get ( レコード番号 ) - 1 ))
ですが、

ここで使っている
  作業終了時間
が、
  作業終了予定時刻
になっていませんか?

私が書いた
  作業終了時刻
が正しいですよ。

オフライン

#11 2018-06-27 09:57:06

チポ
メンバー

Re: [解決] 休憩時間を加味した時間の表示について

書き落とした!

休憩テーブルのレコードは、
popo1さんが書かれた通りでいいですね。

オフライン

#12 2018-07-02 19:18:55

popo1
ゲストユーザー

Re: [解決] 休憩時間を加味した時間の表示について

チポ様
ご指摘の通り「作業開始予定時刻」の式を直したらうまく表示されました。
このたびはありがとうございました。

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer