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

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

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

You are not logged in.

Announcement

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


#1 2022-10-19 12:53:45

宗司
Guest

前日の釣銭を取り込む方法で確認したいです。

お世話になっております。質問お願い致します。
環境:Filemaker 19

当日の釣銭を出すのに、[設定]というテーブルの釣銭金額設定値フィールドから毎日 本日釣銭 というフィールドに呼び出しています。
しかし、1日の現金売上が出金などによりマイナスになることがあるので、そういった場合は釣銭から出しています。
釣銭から出すと レジ内入出金 というフィールドに出した金額を入力しています。(出す場合はマイナス表記)
翌日にその金額を入金するという感じで前日の本日釣銭からレジ内入出金を足して当日の本日釣銭として、通常の釣銭に足りない分は
レジ内入出金に不足分を入れて、翌日に合うようにしています。
現在の本日釣銭の計算式は以下の通りです。※前提として常に全レコード表示でレコードは日付順に並んでいます。

If ( IsEmpty ( GetNthRecord ( レジ内入出金 ; Get ( レコード番号 ) -1 ) ) ; 設定::釣銭金額設定値 ;
GetNthRecord ( 本日釣銭 ; Get ( レコード番号 )-1 ) + GetNthRecord ( レジ内入出金 ; Get ( レコード番号 ) -1 )
)
訳)本日釣銭は前日のレジ内入出金が空白なら、設定テーブルの釣銭金額設定値を呼び出して、レジ内入出金が空白じゃなければ、前日の本日釣銭+前日のレジ内入出金にする

問題点として別スレッドでGetNthRecordで参照をすると繰り返しになるため、スタックオーバーフローすると拝見しました。
このような式で問題はないか、またもしこういった式でスタックオーバーフローするのであれば、他に適切な方法はあるでしょうか?
ご教授のほど、お願い致します。

#2 2022-10-19 13:47:54

Shin
Member

Re: 前日の釣銭を取り込む方法で確認したいです。

本日釣銭が、前日釣銭を参照しているので、同じことです。

解決策としては、前日釣銭というフィールドを作り、前日以前を参照するリレーションを張っておき、前日金額をルックアップしておきます。そのフィールドに対して、
If ( IsEmpty ( リレーション::前日レジ内入出金 ) ; 設定::釣銭金額設定値 ; 前日釣銭 + リレーション::前日レジ内入出金 )
という計算フィールドで当日釣銭にしておけばいいでしょう。
途中で修正があった場合は、再ルックアップすれば、修正されます。

Last edited by Shin (2022-10-19 17:40:01)

Offline

#3 2022-10-20 21:11:01

宗司
Guest

Re: 前日の釣銭を取り込む方法で確認したいです。

なるほど。毎日ルックアップすれば解決するわけですね。
今までのやりかたを変更するようにしました。
Shinさんありがとうございます!

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 547.98 KiB (Peak: 579.84 KiB) ]