みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
win8.1
FM13 advanced
現在請求の明細を表示できるように考えていますが、なかなか思ったようにできなく質問させていただきました。現在のテーブルの状況はすべてを説明するとややこしいので簡潔にするとメインテーブル、明細テーブル、会員テーブルとありメインテーブルと明細テーブルは伝票コードフィールドでつながっています。会員テーブルとメインテーブルでは会員IDフィールドでつながっている現状です。
会員テーブル メインテーブル 明細テーブル
会員ID=======会員ID
会員名 伝票コード======伝票コード
etc. G検索始日付 etc.
G検索終日付
ざっとこんな感じで、G検索始日付とG検索終日付を利用して月の集計で会員全員の請求一覧みたいなものは表示することはできました。ただやりたいことは会員IDを入力すると会員名がすぐに表示され尚且つG検索始日付とG検索終日付を入力してまとめて検索をしたいんですが、どこのテーブルを主にどのようにリレーションを張るのか、そもそも請求テーブルみたいなものを作らないとできないのかわからなくなってしまいました。説明不足の点があるかもしれませんが、教えていただけますでしょうか?
Offline
G検索始日付
G検索終日付
これらはグローバルフィールドですよね。
このようにすると、
請求書の記録が残りませんよね。
それでいいのなら、
明細テーブルの集計レイアウトで請求書が出来ますよ。
請求書として残すのなら、
1請求書(毎月ごとの会員一人ごと)を1レコードとしたテーブルにした方がいいでしょう。
これが有れば、請求に対する入金処理等が簡単ですよ。
Offline
チポ様早速の返信ありがとうございます。
”請求書として残すのなら、
1請求書(毎月ごとの会員一人ごと)を1レコードとしたテーブルにした方がいいでしょう。
これが有れば、請求に対する入金処理等が簡単ですよ。”
確かにそうですね。仰るように請求書のテーブルを作成してみます。ありがとうございます!
Offline
前回チポ様よりアドバイス頂いてわかった気になってやってみたところどうやればよいのかわからなくなってしまい、お恥ずかしいところですが、もう一度アドバイスいただきたいところです。前回チポ様が請求書として残す場合を想定して作成しようと思っております。請求書テーブルは作ったのですが、リレーションからしてうまく思いつきません。
会員テーブル メインテーブル 明細テーブル
会員ID=======会員ID
会員名 伝票コード====伝票コード
etc. etc.
請求書テーブル
請求書Id
会員Id
前回表示したように現在のリレーションがこのようになっており請求書テーブルを作ってはありますが、締日を想定した状態(20日締とか月末締め)で請求書を作るにはどのように作ればよいのでしょうか?まだファイルメーカーを理解しきれていなく初歩的なことを聞いているかもしれませんが、よろしくお願いします。
Offline
もう少し何をやりたいか補足させていただきますと、一般的な請求書をプリントしたいと思っており、ヘッダの部分に会員名・住所・etcとあり締日もあり、リスト表示で明細が書かれているような形にしたいと思っています。
Offline
伝票テーブルで、伝票日付を元に締日を計算させておき、明細テーブル側にその日付をルックアップしておきます。
明細テーブルで締日と会員データで検索すれば、請求する明細のリストが出来るはずです。それを請求書としてのレイアウトで表示すれば、一番簡単では。
明細テーブルでの検索は、会員データから関連レコードへ移動士、さらに締日で絞り込むと早いかもしれません。
Offline
Shin様いつもご回答ありがとうございます。さっそくアドバイスを元に試してみたいと思います。まずはお礼まで
Offline
請求書としての形を残したいのならば、その印刷をした時点で、請求書番号を明細レコードに設定しておけば良いかと思います。
Offline
伝票テーブルで、伝票日付を元に締日を計算させておき、明細テーブル側にその日付をルックアップしておきます。
というところの”伝票日付を元に締日を計算させておき”とは、例えば20締めの場合は伝票の日付が20日以内なら”20”にするということでしょうか?
Offline
前にも書いた通り、
請求に対する入金や、翌月繰越等の処理は請求書テーブルが有効ですヨ。
例えば、
請求書が月締めなら、請求年月を請求書テーブルに持たせ、
明細テーブルではその日付から、請求年月を計算で持たせます。
このフィールドと会員IDでリレーションすればいいでしょう。
説明に書かれた「メインテーブル」がどういうものか理解できていません;;
Offline
前にも書いた通り、
請求に対する入金や、翌月繰越等の処理は請求書テーブルが有効ですヨ。
チポ様ご回答ありがとうございます。まだ頭の中で整理しきれていないところですいません。チポ様のいう通り請求書テーブルを使って翌月繰り越しなどの処理が楽であればそのようにしたいと思っております。因みにメインテーブルは伝票テーブル?と言いかえた方が良いのでしょうか?まだ知識が浅く説明不足でしたらごめんなさい。もう一度いただいたアドバイスを元に整理したいと思っております。
Offline
前にも書いた通り、
明細テーブルではその日付から、請求年月を計算で持たせます。
現在頭を整理しているところですが、請求年月を計算で持たせた場合20日締めの時はどうすればよいのでしょうか?
Offline
締日は
Date ( Month ( 日付 ) + ( Day ( 日付 ) > 20 ) ; 20 ; Year ( 日付 ) )
で求められます。
これから締め月は、
例えば
Year ( 締日 ) * 100 + Month ( 締日 )
とすると
201511
201601
の様な値が得られます。
締日はフィールドとして特に必要ないですね。
メインテーブルは伝票テーブル
明細テーブルは、納品?1件を1レコード
メインテーブルは、複数の納品をまとめた納品書1件を1レコード
でしょうかね。
とすると、
請求書テーブルはメインテーブルを無視して、直接明細とリレーションしていいのでは。
Offline
さっそくご回答ありがとうございます。いつも回答いただくたびにそうかぁ~っていう感じでしびれますね~。感謝です。メインテーブルは1件を1レコードで、明細テーブルはメインテーブルの1レコードに対して複数の商品を登録している認識です。また
締日は
締日はフィールドとして特に必要ないですね。
というのは締日のフィールドは作る必要がないのでしょうか?
Offline
メインテーブルは1件を1レコードで、明細テーブルはメインテーブルの1レコードに対して複数の商品を登録している認識です
了解です。
納品伝票とその明細の関係ですよね。
締日フィールドは特に必要ないでしょう、締め年月が必須です。
締め年月を一度に求める計算式
Let ( 締日 = Date ( Month ( 日付 ) + ( Day ( 日付 ) > 20 ) ; 20 ; Year ( 日付 ) ) ;
Year ( 締日 ) * 100 + Month ( 締日 ) )
でいいでしょう。
Offline
締日は、
Date ( Month ( 日付 - 締日 ) + 1 ; 締日 ; Year ( 日付 - 締日 ) )
で求められます。20日締めならば、締日に20を設定し、月末締めならば0を設定します。汎用の式ですので、得意先ごとに締日が違っても、マスターに設定しておけば計算できます。
請求日は、この締日を元にして、同じ式を使えば良いですね。
チポさんと考え方が違うけど、締日フィールドにしておいた方が利便性は良いかも。例えば、21日頃になって、20日締めの請求書を作る、という状況では、その日で抽出すれば、得意先ごとに集計すれば完成です。
こんな形で。
https://dl.dropboxusercontent.com/u/926 … 30.fp7.zip
https://www.dropbox.com/s/40eeg8lzdx0nx … 7.zip?dl=0
Last edited by Shin (2017-06-06 14:58:34)
Offline
Shin様アドバイスありがとうございます。現在いろいろアドバイスいただいている中、まだ整理しきれておりませんでまずはお礼まで。
Offline
Shin様
わざわざサンプルまで作っていただいてありがとうございます。只今拝見中でこれで頭のもやもやが解消されそうです。一つ気になることがあるのですが、チポ様の言う
請求に対する入金や、翌月繰越等の処理は請求書テーブルが有効ですヨ。
というところでは無理が出てくるのでしょうか?お二人の仰っていることがよくわかっているつもりなのですが、まだ未熟のため判断しにくいところで入金や繰り越し金などはShin様はどのように考えるのでしょうか??
Offline
明細の中に、入金も別レコードで入れてしまう、という方法も有りますよ。これは、1ヶ月あたりの明細数が数百程度の小規模な所では、構造が簡単で良いかもしれません。
経営上は、請求と入金の比較管理を行う必要が有るでしょうから、請求書を作る際に、その情報を書き出すか集計するための別テーブルを作り、入金の管理もその中で行うと良いと思います。チポさんの言う請求書テーブルを少し拡張したものです。
Offline
回答していただきありがとうございます。昨日より拝見することができなくチポ様とShin様のアドバイスを元にやってみたいと思います。また報告させていただきます。ありがとうございます。
Offline
現在いろいろ試しており、自分がどのように実際したいのか見えてきたので挑戦しているところです。Shin様から頂いたファイルを元に考えてみましたが、会員名ごとの請求が1件ごと出来るようにしたいと思っていることと、前回入金の管理も行う上でのShin様からのアドバイス
(”その情報を書き出すか集計するための別テーブルを作り、入金の管理もその中で行うと良いと思います。チポさんの言う請求書テーブルを少し拡張したものです。”)
の中でもやはり請求テーブルを作ったうえで請求時のレコードを増やしながら作成するのが良いのかと感じているところです。現在試していることは請求テーブルを作り、プリント時に1枚に収まらなくても2枚目に続くようにリスト表示でレイアウトを考えてます。また例えば月末締めの請求書で翌月の1日にその請求書を制作する場合を考えるとShin様が仰っている”21日頃になって、20日締めの請求書を作る”という現象が起こると感じました。お二人の仰っていることを元に再度アドバイスを見ながらも試しているのですがうまくいきません。現在の状況は
請求テーブル メインテーブル 明細テーブル
会員ID=====会員ID
締め年月 伝票コード======伝票コード
メインテーブル(上のと同じ) 会員テーブル
会員ID================会員ID
というリレーションになっており、請求テーブルを元にレイアウトを作っています。頂いたファイルですと明細テーブルを元に請求書を作成しておりますが、
私が請求テーブルを増やした時点でリレーションの組み合わせが間違っている気がします。因みにチポ様の”請求年月”Shin様の”締日”ともに理解して作成することができました。またアドバイスいただけますでしょうか?
Offline
Shinさんのサンプルは見ていないので、
私の方法だけで進めるとして。。
前にも書きましたが、
ここではメインテーブルを考えずに、
請求書テーブルと、明細テーブルをリレーションします。
請求書 明細
会員ID = 会員ID
and
締め年月 = 締め年月
請求書の締め年月は単に、
201511
の様な値を入力、
明細の締め年月は、
その日付けと締日から前記のような計算で求められますね。
請求書テーブルのレイアウトに明細のポータルで明細を表示できますが、
印刷が複数ページにまたがることが有るのでしたら、
その印刷は、明細テーブルのリスト表示で行った方が簡単です。
Offline
チポ様ご回答ありがとうございます。今サイトを開いて確認したところです。、まだバタバタしているところでしておりますのでまずはお礼まで。もう少し落ち着いたら挑戦してみます。
Offline
何度も繰り返し読んでいるのですが、なかなかうまくできず申し訳ないところです。現状下記のようにしておりますが、
会員テーブル メインテーブル 明細テーブル 請求テーブル
会員ID=======会員ID
伝票コード≂=======伝票コード
会員ID=======会員ID
締め年月≂=====締め年月
完全にメインテーブルを切り離して
明細テーブル 請求テーブル
会員ID=======会員ID
締め年月≂=====締め年月
という形でよいのでしょうか?会員IDは当初メインの会員IDとつながっていましたが、この場合は関係なくでよいのでしょうか?初歩的なことかもしれなく申し訳ございませんが教えていただけますでしょうか?
Offline
明細テーブル 請求テーブル
会員ID=======会員ID
締め年月=====締め年月
これでいいのですが、
今回の場合、明細が関連テーブルになりますから、
請求テーブルをデフォルト、
明細テーブルが塞がっているのならそれをコピー
ですね。
逆だと面倒なことになります。
Offline
[ Generated in 0.013 seconds, 7 queries executed - Memory usage: 582.4 KiB (Peak: 619.3 KiB) ]