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

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

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

You are not logged in.

Announcement

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


#1 2015-05-28 13:53:30

jose
Member

カスタム関数の編集(祝日)

ファイルメーカープロのカスタム関数ページのHolidayJを使って祝日を抽出しています。
http://www.fmpro.jp/fmi/xsl/plugin/cf.xsl?ID=0005

この式に、年末と年始の休日を追加して(12月29日〜1月3日)自動的に祝日(休日)にしたいと思っているのですが、例えば

    //
    // 三ケ日1(1月2日)
    // Sanganichi1
    //

        "三ヶ日1¶" &
        Case ( ~year ≥ 1949 ; Date ( 1 ; 2 ; ~year ) * 1 ) & ¶ &

元旦の後にこの式を追加してみましたが、ただHolidaylistの中にコピーしてもうまく反映されません。
カスタム関数はなかなか難しくて、どなたかご教授いただければ幸いです。

Offline

#2 2015-05-28 17:46:19

Shin
Member

Re: カスタム関数の編集(祝日)

それで良いはずですが。作成された文字列を書き出してみて確認されればいかがでしょう。

別のカスタム関数でしたら、年末年始の休みにも対応していますよ。
http://www.fmpro.jp/fmi/xsl/plugin/cf.xsl?ID=0037

Offline

#3 2015-05-28 21:13:19

jose
Member

Re: カスタム関数の編集(祝日)

>Shinさん
返信ありがとうございます。じつはそのカスタム関数もダウンロードさせてもらったんですが、カスタム関数が難しくて(引数?パラメーターが多すぎて)どのようにフィールドを設定していいかわからず困っています。せっかく教えていただいたのに勉強不足で申し訳ないです。

Last edited by jose (2015-05-28 21:35:27)

Offline

#4 2015-05-28 23:07:17

Shin
Member

Re: カスタム関数の編集(祝日)

説明に書いてある通りでしょう。
workday ( calcdate ; regularHoliday ; halfHoliday ; halfHoliday1 ; halfHoliday2 ; halfHoliday3 ; halfHoliday4 ; halfHoliday5 ; mayDay )
regularHoliday は、日曜日が定休日なら1
halfHoliday は、隔週休みなどの設定に使えます。例えば、だい1、3土曜日のみが営業日ならば、
halfHoliday:7、halfHoliday1:1、halfHoliday2:0、halfHoliday3:1、halfHoliday4:0、halfHoliday5:0
maydayは、5月1日(メーデー)で、休業日ならば0、営業日なら1
ですね。
まだ、山の日には対応していないみたい。

Offline

#5 2015-08-10 10:58:04

jose
Member

Re: カスタム関数の編集(祝日)

>shinさん
いつもありがとうございます。しばらく課題を放置していてすいません。
このカスタム関数を使用したファイルサンプルなどありますか?

http://www.fmpro.jp/fmi/xsl/plugin/cf.xsl?ID=0037

Last edited by jose (2015-08-10 10:58:30)

Offline

#6 2015-08-10 22:56:27

Shin
Member

Re: カスタム関数の編集(祝日)

Offline

#7 2015-08-12 14:16:40

jose
Member

Re: カスタム関数の編集(祝日)

Shinさん
ありがとうございます。計算式に関して初心者なのでしっかりと勉強させてもらいます!

Offline

#8 2015-08-26 17:00:13

jose
Member

Re: カスタム関数の編集(祝日)

workdayのカスタム関数をShinさんのサンプルのおかげで少しずつ使い方がわかるようになってきました。
Shinさんありがとうございます。

この関数に少し個人的な物を加えたいと思っています。

regularHolidayは1で日曜日に設定しているのですが、年に1度だけ(例えば今年度は2月14日)だけ出勤日があります。
この日だけはworkdayとしたいのですが、どのような計算式を加えるのか迷っています。

この出勤日は年ごとに変更するので、ひとまず、ファイルオープンのスクリプトにグローバル変数として設定しています(仮)

変数を設定 [ $$出勤日 ; 値: Date ( 2 ; 14 ; 2015) ]

といった感じです。

で、workdayのカスタム関数に戻って、Case関数を使っているので、

/*定休日*/
DayOfWeek (calcdate) = regularHoliday ; 0 ;

の前に

/*出勤日*/
calcdate = $$出勤日 ; 1 ;

と入れてみました。
でもきっとこれではこの関数の解釈が間違っているようですので、どなたかご教授いただけないでしょうか
宜しくお願いします。

Offline

#9 2015-08-26 17:22:10

Shin
Member

Re: カスタム関数の編集(祝日)

カスタム関数は触らずに、テーブル側で、
日付 = $$出勤日 or workday ( ...... )
としておけば如何でしょう。

Offline

#10 2015-08-28 14:12:35

calcer
Guest

Re: カスタム関数の編集(祝日)

どうしても関数を変えたければ、他の条件より優先なのだから
/*定休日*/の前に
ではなく一番最初に入れるべき。

#11 2015-11-17 21:05:00

jose
Member

Re: カスタム関数の編集(祝日)

Shinさん、calcerさん
ありがとうございます。アドバイス通りで解決できました。
ちなみに上のカスタム関数を使って、指定の年度で出勤日が何日あるかなんて計算はできるのでしょうか?
できるだけシンプルに、可能だったらグローバルフィールドに格納できると嬉しいのですが

Offline

#12 2015-11-17 22:32:15

Shin
Member

Re: カスタム関数の編集(祝日)

2015年でしたら、365の繰り返しフィールドを作り、workday ( Date ( 1 ; Get ( 計算式繰り返し位置番号 ) ; 2015 ) , .... ) という計算式を設定しておきます。このフィールドを Sum() すれば如何でしょうか。

Offline

#13 2015-11-18 13:50:57

jose
Member

Re: カスタム関数の編集(祝日)

shinさん、ありがとうございます。グローバル格納用のテーブルに格納しておけそうです。
ちなみに、年度で計算したいのですが、その場合、; 2015 がどのように設定したらよいのでしょうか?

2015/4/1 ~ 2016/3/31 となるのですが、単純に 2015/4/1...2016/3/31 でいいのですか?

Offline

#14 2015-11-18 23:39:24

Shin
Member

Re: カスタム関数の編集(祝日)

workday ( Date ( 4 ; Get ( 計算式繰り返し位置番号 ) ; 2015 ) , .... ) という計算式にすればいいでしょうね。

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, 9 queries executed - Memory usage: 524.96 KiB (Peak: 545.87 KiB) ]