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

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

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

You are not logged in.

Announcement

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


#1 2015-02-05 16:15:29

にも
Guest

請求書の振込期日を月末の最終営業日にしたい

☆FMpro12利用中

現在、請求書の発行日を指定した際、自動入力で同月の最終日を振込期日とする計算式を入れています。

Date ( Month ( 契約マスタ::請求書発行日 )+1 ; -1; Year ( 契約マスタ::請求書発行日 ) )

私の会社では、最終営業日が振込期日です。2月の場合は28日が土曜なので、27の金曜にしなければなりません。
なので毎月、月が変わる毎に土日祝日を確認して、-1や-2など手入力しています。

これを自動化したいのですが、そもそもFMに土日祝日を判別させることは可能なのでしょうか…

以上宜しくお願いします。

#2 2015-02-05 16:36:22

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

土日は可能です。
祝日はカスタム関数が有ります。

http://www.fmpro.jp/fmi/xsl/plugin/cf.x … nd&-skip=5

しかし、
個々の会社の休業日は分るはずも有りませんよね。


営業日のカレンダーを作ればそれを参照できるでしょう。

Offline

#3 2015-02-06 10:56:32

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

会社の休業日=土日+日本の祝日です。

やり方がよく分からないのですが、詳しく教えて頂けますか?

#4 2015-02-06 11:37:12

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

やはり、
営業日のカレンダーを作った方が簡単でしょう。


1日を1レコードとして、
全日付のレコードを作り、営業日フラグをたてるか、
営業日だけのレコードとするか、
どちらでもいいです。


契約マスタで、発行日の月末フィールドを作り、
リレーションを
  契約マスタ::発行日月末 >= 営業日カレンダ::営業日
                                          営業日の降順でソート指定

で振込期日が得られます

Offline

#5 2015-02-06 15:01:39

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

新規のテーブルで営業カレンダーを作成して、休日にフラグを立てるのですか?

【日付】【営業日】
[1/1] [1]
[1/2] [1]
[1/3] [1]
[1/4] [1]
[1/5] [  ]
[1/6] [  ]



[12/31][1]

こんな感じですか?

#6 2015-02-06 15:12:10

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

考え方はその通りですが、
リレーションの照合のために、
営業日に 1 を入力した方がいいですね。

入力値の自動化で、土日以外は 1
として、その他は手入力でもいいのでは。

日付も入力値の自動化・既存値置換えで
  Self + 1
とすれば、
最初のレコードのみ日付を入力して、
後はレコード複製(キーボードショートカットがあります)を
押しっぱなしでできちゃいますよ。

Offline

#7 2015-02-06 15:14:51

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

とりあえず一度挑戦してみます。
またご質問させて頂くかもしれません。
ありがとうございます!

#8 2015-02-06 16:41:48

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

早速つまづいてしまったのですが…
1年分のレコードは
>日付も入力値の自動化・既存値置換えでSelf + 1
こちらで出来ました。

次のステップで、土日祝日意外にフラグを立てたいのですが、
祝日は手入力で良いとして、土日を判別して非表示にし、
全てに1というフラグを立てるにはどうしたら良いのでしょうか。

#9 2015-02-06 17:02:44

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

Case ( DayOfWeek (日付) = 1 or DayOfWeek (日付) = 7 ; 0 ; 1 )

この式を入力値の自動化にすればいいのですが、
既にレコードを作った様ですので、
このままでは入力されません。

日付フィールドを、自身の値で全置換すればいいですね。



このフィールドの変更は、
フィールドをボタンにして、
  フィールド設定[ 営業日 ; not 営業日 ]
とするといいですよ。

Offline

#10 2015-02-09 10:54:44

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

ご説明頂いたのですが
>>日付フィールドを、自身の値で全置換すればいいですね。
こちらがよく分からず、レコードを全部消してやり直しました。

日付フィールドに、Self+1
営業日フィールドに、Case ( DayOfWeek (日付) = 1 or DayOfWeek (日付) = 7 ; 0 ; 1 )
を入れて作ったところ、全てに1が入ってしまいました。

フィールドをボタンにするのはできたので、クリックすると手動で0にはすることができます。

土日の部分を0にするのはどうしたら良かったのでしょうか?

#11 2015-02-09 11:13:20

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

営業日フィールドのタイプは数字として、
入力値の自動化計算式・既存値置き換えで
  Case ( DayOfWeek (日付) = 1 or DayOfWeek (日付) = 7 ; 0 ; 1 )
としていますか?

Offline

#12 2015-02-09 13:27:39

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

数字フィールド・既存値置き換えになってなかったからですね。
もう一度やり直したところできました!
ありがとうございます。

これを今使っている発行日フィールド・請求期日フィールドと入れ替えたいのですが、教えて頂けますか?

>>契約マスタで、発行日の月末フィールドを作り、
リレーションを
  契約マスタ::発行日月末 >= 営業日カレンダ::営業日
                                          営業日の降順でソート指定

ここまでは出来ました。
実際に配置すると、営業日の日付フィールドは真っ白なままクリックもできない、契約マスタの発行日月末フィールドは日付も何も入りません。

#13 2015-02-09 13:42:03

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

リレーションを確認したところ、顧客情報を管理する顧客テーブルがあり、
その顧客テーブルが請求書レイアウトの主テーブルになっていました。

#14 2015-02-09 14:15:34

Shin
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

リレーションの形を少し変えてありますが、同じ様なもの
https://dl.dropboxusercontent.com/u/926 … 81.fp7.zip

Offline

#15 2015-02-09 14:39:12

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

リレーションを
  契約マスタ::発行日月末 >= 営業日カレンダ::営業日
                                          営業日の降順でソート指定

カレンダーの営業日だけと照合したいのですから、

契約マスタでグローバルフィールドを作り、1を入力
照合を
   契約マスタ::発行日月末 >= 営業日カレンダ::日付
   and
   契約マスタ::グローバルフィールド = 営業日カレンダ::営業日
                                                 営業日の降順でソート指定
とします。

Offline

#16 2015-02-09 16:43:47

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

shin様

やってみましたが同じように動きませんでした。
コピペしましたが、workdayという関数はありませんと表示されてしまいました。


チポ様
グローバルフィールドにするのは発行日月末フィールドですか?
1の入力はどこでするのでしょう、ブラウザの画面でひとつのレコードだけに入れるのでしょうか。
照合というのはリレーションでしょうか。

分からないだらけで申し訳ありません…
言い回しが難しく、意味がよく分からないので、初心者でも分かるように説明して頂けるとありがたいです…

#17 2015-02-09 17:07:53

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

新たにグローバルフィールドを作り、
そこへ1を入力します。

グローバルフィールドはテーブルで唯一の値を持ちますから、
どのレコードで入力しても同じです。


で、リレーションを

契約マスタ::発行日月末 >= 営業日カレンダ::日付
and
契約マスタ::グローバルフィールド = 営業日カレンダ::営業日
                                                 営業日の降順でソート指定

として、
契約マスタで、振込期日をルックアップとして、
コピー元を
営業日カレンダの日付
とします。

表示だけでいいのでしたら、振込期日フィールドを作らずに、
参照フィールド
  営業日カレンダ::日付
の配置でもいいでしょう。

Offline

#18 2015-02-09 17:51:28

Shin
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

にも wrote:

コピペしましたが、workdayという関数はありませんと表示されてしまいました。

カスタム関数です。
adv版をお持ちでしたら、私のファイルからインポートされると良いでしょう。
pro版でしたら、
http://www.fmpro.jp/fmi/xsl/plugin/cf.x … nd&-skip=5
からカスタム関数をダウンロードし、Let() 関数を使って、引数を変数へセットする部分を追加して、中身を、計算フィールドに設定して、みてください。

Offline

#19 2015-02-09 18:06:22

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

チポ様

何度も設定を見返してみたのですが、日付が入力できません(;_;)

フィールドを置いているのが顧客テーブルが主になっているテーブルだからでしょうか…?

#20 2015-02-09 18:22:13

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

Shin様

Pro版なのですが、関数をダウンロードというのは「式を保存」のことでしょうか?

#21 2015-02-09 21:02:31

Shin
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

カスタム関数を、計算フィールドの中に組み込んだサンプルです。
https://dl.dropboxusercontent.com/u/926 … 81.fp7.zip

https://www.dropbox.com/s/59xatdb1ybulo … 7.zip?dl=0

Last edited by Shin (2017-05-26 19:07:45)

Offline

#22 2015-02-10 09:18:44

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

フィールドを置いているのが顧客テーブルが主になっているテーブルだからでしょうか

テーブル構成が分らなくなりました。

今までの話は、契約マスタでの請求書で進めてきましたよね、、

Offline

#23 2015-02-10 15:02:34

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

Shin様
ありがとうございます、やってみます。


チポ様

にも wrote:

リレーションを確認したところ、顧客情報を管理する顧客テーブルがあり、
その顧客テーブルが請求書レイアウトの主テーブルになっていました。

昨日の13時半頃の時点で気付いたのですが、請求書の主テーブルは顧客マスタ、
そこに表示させているフィールドが契約マスタのフィールド、という状態でした。

確認・説明不足でした、申し訳ありません。

#24 2015-02-10 15:19:33

チポ
Member

Re: 請求書の振込期日を月末の最終営業日にしたい

テーブル名だけで中は推測しろと言われても・・


今までやってきたのは契約マスタですよね。

取りあえず、契約マスタのレイアウトを作って、
そこで検証したらいかがでしょう。

Offline

#25 2015-02-10 16:20:57

にも
Guest

Re: 請求書の振込期日を月末の最終営業日にしたい

チポ様

中を推測しろということではなく、リレーションがつながってないせいかと思ったのですが、
それを判断するには中のフィールドなどが詳しく分からないと駄目なのでしょうか。

契約マスタのレイアウトでも試したのですが、結果は同じで日付はクリックできない、振込期日は手入力ができる、という状態でした。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 577.7 KiB (Peak: 614.6 KiB) ]