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

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

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

You are not logged in.

Announcement

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


#1 2015-10-09 23:32:37

aries106
Member

翌月の日付を書き換える方法

みなさま、こんばんは。

FM12 WIN7です。

マスタと請求書のテーブルがあります。

マスタのレイアウトは基本情報として編集しています。
請求書のレイアウトは作成用として編集しています。

マスタ::m_符合NO [=] 請求書::符合NO のリレーションを張っています。

マスタの品名欄に「●月分・・・・・・・」というふうに入力しています。

「請求書作成へ反映」ボタンを押すと請求先レイアウトへ切り替えて、先ほど編集したマスタの内容からルックアップされます。

そこで教えて頂きたいのは、
・「複製」ボタンを押下したとき、s_月に翌月の日付を変えてほしい。
・翌月の日付を変えたあとにs_品名の月分に置き換えてほしい。
(例)s_月が2015/12/1を「複製」ボタンを押すと2016/1/1に上書きされ、s_品名も「1月分・・・・・・」に置き換えたい。

私がわかる範囲で作成したのですがどうもうまくいきません。
私が作成したfm12ファイルはYahooの公開ファイルからダウンロードできます。
https://box.yahoo.co.jp/guest/viewer?si … ype=detail

文章が下手ですみませんが、このファイルをダウンロードしてどなだか教授くださいますようお願いいたします。

Last edited by aries106 (2015-10-09 23:35:19)

Offline

#2 2015-10-10 11:33:31

NoName
Guest

Re: 翌月の日付を書き換える方法

質問1の月については、請求日を定めて(レコード作成日にするか、末日にするかは運用による)
Month関数で求めたほうが良いかと思います。
月だけでなく年も計算で求める必要があるならば同様にYear関数で求めれば良いかと思います。

質問2については
”●”の部分を本月分に置換スクリプトを下記のように変更すれば目的の動作はします
----
変数を設定[$i;1]
Loop
  フィールド設定[請求書::s_品名[$i];Substitute(請求書::s_品名[$i];"●";s_月)]
  変数を設定[$i;$i+1]
  Exit Loop If[$i > Count(s_品名)]
End Loop
----
とりあえず質問事項についてはこんなところだと思います。

#3 2015-10-11 16:37:25

aries106
Member

Re: 翌月の日付を書き換える方法

NoName wrote:

質問2については
”●”の部分を本月分に置換スクリプトを下記のように変更すれば目的の動作はします
----
変数を設定[$i;1]
Loop
  フィールド設定[請求書::s_品名[$i];Substitute(請求書::s_品名[$i];"●";s_月)]
  変数を設定[$i;$i+1]
  Exit Loop If[$i > Count(s_品名)]
End Loop
----
とりあえず質問事項についてはこんなところだと思います。

NoNameさん、お返事ありがとうございます。
上記の通りやってみたらうまくいきません。
ずっと回りっぱなしなんだからEscキーで止めました。

Shinさん、申し訳ございませんがどうかご教授願えないでしょうか。

Offline

#4 2015-10-11 22:22:54

aries106
Member

Re: 翌月の日付を書き換える方法

みなさん、こんばんは。

「請求書」レイアウトの【複製】ボタンに対するスクリプトについて、いろいろと試行錯誤して作ってみました。
If関数とElse If関数を使って条件分岐のスクリプト文を組み込んでみたらうまくできました。

条件としては、下記の通りでうまくいけました。

①残回数が「0」に達した場合は【複製】ボタンをクリックできない。
②s_月が「12」と一致した場合の置換方法
③s_月が「12」以外の場合の置換方法

検証完了とのことで、解決といたします。
ありがとうございました。

Offline

#5 2015-10-12 11:43:35

Shin
Member

Re: 翌月の日付を書き換える方法

終わっているようですが
年跨ぎの場合は、場合分けしても良いのですが、Date () 関数を使って、単純に月に1を足しておけば良いです。13月になれば、計算結果は翌年の1月に変換されています。
または、Year * 12 + Month という数字フィールド YM を持たせておき、それに1を足しておく、年は、Div ( YM - 1 ; 12 ),、月は Mod ( YM - 1 ; 12 ) + 1 で戻せます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 12 queries executed - Memory usage: 511.71 KiB (Peak: 516.62 KiB) ]