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

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

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

You are not logged in.

Announcement

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


#1 2016-11-18 16:39:26

初心者E
Guest

BusinessDays 関数を編集して使用したい

OS:[Win7]
FileMaker Ver:[ FileMaker Pro Advanced14 ]

ご質問大変失礼致します。
カスタム関数のBusinessDays 関数を編集したいのですが、
どのようにしたら下記のように表示するか御教示御願い致します。

【質問】
http://www.fmpro.jp/fmi/xsl/plugin/cf.xsl?ID=0014
上記記載の動作だと第2,第4土曜日が休日となり営業日としてカウントされないが、
万が一、開始日or終了日が土曜日だった場合、営業日としてカウントするように設定するには、
どうしたらよいのでしょうか。

大変お手数おかけしますが、ご回答御願い致します。

#2 2016-11-18 18:00:33

作者
Guest

Re: BusinessDays 関数を編集して使用したい

カスタム関数はそのままにして、

Let (
	[
	~startDate = Date ( 1 ; 15 ; 2016 ) ; 
	~endDate = Date ( 1 ; 21 ; 2016 )
	] ; 
	BusinessDays ( ~startDate ; ~endDate ) + 
	( DayOfWeek ( ~startDate ) = 6 ) + 
	( DayOfWeek ( ~endDate ) = 6 ) 
)

でどうでしょうか?
普通に計算して、開始日=6(土曜日) だったら +1 、終了日=6(土曜日) だったらさらに +1。
土曜日以外だったら、( DayOfWeek ( ~startDate ) = 6 )この部分が 0 になりますので、プラスされません。

#3 2016-11-19 12:11:50

とおりすがり
Guest

Re: BusinessDays 関数を編集して使用したい

社本さん。その説明は自称初心者の方には辛いでしょう。
この場合、開始日も終了日もフィールドがあるから、
Let関数なんか使わずに単に
BusinessDays ( 開始日 ; 終了日 ) +
( DayOfWeek ( 開始日 ) = 6 ) +
( DayOfWeek ( 終了日 ) = 6 )
と簡潔にすべきでしょう。
ステップアップしてもらうために
あえて
Case (( DayOfWeek ( 開始日 ) = 6 );1) +
Case (( DayOfWeek ( 終了日 ) = 6 );1)
としてもいいかもね。

#4 2016-11-21 11:55:06

初心者E
Guest

Re: BusinessDays 関数を編集して使用したい

作者様、とおりすがり様
ご回答ご意見ありがとうございました。

営業日及び作業時間を算出する関数等ですが…、
イレギュラー的なところも加味してしまうと、本当きりのない補正が必要なのですね…。

御二方の例文を参考にし、イメージに近い動作になりました。
創意工夫を加え良いDBを作成していきます。

また壁にぶつかった際はお力ご指導御願い致します。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 505.92 KiB (Peak: 515.94 KiB) ]