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

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

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

You are not logged in.

Announcement

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


#1 2018-08-23 08:49:15

yamada88k
Guest

7連勤チェック

環境
WIN7
FMpro16

いつも拝見させて頂いております。
勤務表を作成中です。
現在1人1日1レコードをリスト形式にて繰り返しフィールドにルックアップしています。
前回質問させていただきましたが、21日から翌月の20日までの勤務形態で表示しております。

今回は調整する際に7連勤(間の半休は連勤とカウント)以上の場合条件付き書式で色を付けたいと思います。
宜しくお願いします。

#2 2018-08-23 10:53:42

Shin
Member

Re: 7連勤チェック

月またぎのチェックも必須でしょうから、元のテーブルでチェックしておいて、それを反映させた方がいいでしょうね。
サンプルのような構造で、連勤数がカウントできます。
https://www.dropbox.com/s/xvr7ywpfjkvbw … 7.zip?dl=0

Offline

#3 2018-08-23 12:01:07

yamada88k
Guest

Re: 7連勤チェック

SHINさんへ

サンプル作成ありがとうございます。
サンプルについて質問させて下さい。
構造はサンプルをみて理解できました。
ただ、私にはcount_preとcount_postの計算式が理解できなかったです。
このサンプルはレコードが無いところからの無いところまでの数をカウントしていると思うのですが、
現在作っている勤務表が”休”にもレコードが存在する為、計算式をどう変えたらいいでしょうか?

#4 2018-08-23 14:07:52

Hiro
Member

Re: 7連勤チェック

追加設定を全く必要としない、単独計算式だけによる簡便法の提案です。
テーブル構成の詳細が分からないですが、適当に考察して作式......。

そもそも不要な非出勤日(休日)のレコード(データ)をわざわざ
作っての非正規化・非効率的なDB運用法は お勧めできませんが、
一応 それを前提に式(論理式)は立ててあります。

//////////////////////////////
7
=
ExecuteSQL(
   "
      SELECT COUNT(*)
      FROM ""マスタテーブル名""
      WHERE ""名前""=? AND ""日付""<=? AND ""日付"">? AND ""出欠""<>'休'
   "
   ; ""
   ; ""
   ; 自己テーブル名::名前キー[1]
   ; 自己テーブル名::日付キー配列
   ; 自己テーブル名::日付キー配列 - 7
)
//////////////////////////////

Last edited by Hiro (2018-08-23 15:22:21)

Offline

#5 2018-08-23 15:06:35

Shin
Member

Re: 7連勤チェック

yamada88k wrote:

このサンプルはレコードが無いところからの無いところまでの数をカウントしていると思うのですが、
現在作っている勤務表が”休”にもレコードが存在する為、計算式をどう変えたらいいでしょうか?

計算は、再帰を行わないとできませんので、自分で自分を呼び出す再帰式を使っています。

レコードの定義については先に書いていただきたかったですが、レコードの中に、勤務、というフラグフィールドを作り、リレーションでそれも条件にすれとか、勤務の日だけの日付リストを使う、などとすればいいですよ。

Last edited by Shin (2018-08-23 15:16:13)

Offline

#6 2018-08-23 16:54:08

yamada88k
Guest

Re: 7連勤チェック

HIROさんへ

ありがとうございます。
休みの日のレコードは有休、夏休などの休みの種類を記録したいため必要でした。
ExecuteSQLは今は全くわからないので勉強させて頂きます。

SHINさんへ
ありがとうございます。
出勤フラグで試してみます。

#7 2018-08-24 13:49:55

Hiro
Member

Re: 7連勤チェック

ExecuteSQL関数式による一発解法が、どうみても最適最善な楽勝案件です。
>#6『勉強させて頂きます』なら、絶対絶好   ★今でしょう!!★

参考:SELECT構文(検索クエリー)だけだから、そんなに恐れる程の内容でも量でもありません (^^)
・「ExecuteSQL」関数ヘルプ
         → https://fmhelp.filemaker.com/help/16/fm … ect_header
・「SQL リファレンスガイド」pdfマニュアル 頁8 SELECT文ガイド(だけでOK)
         → https://fmhelp.filemaker.com/docs/16/ja … df?#page=8


テーブル構成など もっと具体的な詳細説明を頂けたら、実装サンプルも可能なのですが、.....残念!

Last edited by Hiro (2018-08-24 21:48:42)

Offline

#8 2018-08-24 15:11:19

Shin
Member

Re: 7連勤チェック

SQL って、ちょっと勉強したくらいで、Hiro さんのレベルになれませんよ。Hiroさんは、超上級者ですので。
かなりのレベルに達しないと、思った処理を、上の様な作式でけませんは。SQLなら簡単そう、と思ったけど、思いつかんかった

Last edited by Shin (2018-08-24 15:43:17)

Offline

#9 2018-08-24 18:58:13

Shin
Member

Re: 7連勤チェック

勤務表として一覧できる形で、7連勤以上を識別できるかたちにして見ました。とりあえずは、見えるところまで
https://www.dropbox.com/s/xvr7ywpfjkvbw … 7.zip?dl=0

この一覧から編集できるような機能も付け加えることができます。
繰り返しフィールドへの入力のままでは、月またぎの7連勤の識別は、月末処理の不規則のために超面倒な仕組が必要で、1手間では作り切れなかったです。13手間作るか、4手間作って分岐しておけばいいのですが。(Hiroさんならできるのかな)

それと、できればメンバー登録してください。過去のスレッドが探しやすくなります。

一覧から内容を編集する機能を追加しています。サンプルを更新しています。

Last edited by Shin (2018-08-25 12:29:17)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 522.08 KiB (Peak: 526.98 KiB) ]