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

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

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

You are not logged in.

Announcement

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


#1 2013-12-03 13:29:28

Raming
Member

2種類のレポートを表示

いつもこのサイトではお世話になっております。

FMP12で開発を行っている初心者です。よろしくお願いいたします。
レポートについて質問させてください。

精算書をレポートで出力したいと考えております

会社毎・日付毎に売り上げた商品・個数・金額を表示し、合計も表示します
ここまではレポートを作成することができるのですが、このレポートと同じレイアウト上に会社毎に集計した控除金額も表示したいのです。
さらに、合計-控除金額を計算させた差引金額も同様に表示したいです

この様に、2種類のレポートを一つの様式に表示することは可能なのでしょうか?

具体的には・・・

精算書のレイアウトは以下の様式です
例えば11/1~11/2の精算書の場合
--------------------------------------------------------------

AA会社 殿   


日付   商品名    個数   金額   消費税   税込金額           
11/1   商品1    10    100    5      105
      商品3    10    100    5      105
11/2   商品2    20    200   10      210
/*/*/合計/*/*/   40    400    20     420            ←会社・日付・商品毎に集計して出力しています

控除1   控除2   控除3   控除4   控除合計              ←会社毎11/1~11/2の期間で集計して出力しています
10     20     10     10        40

                        合計      400
                        消費税     20
                        税込金額   420
                        控除合計    40
                        差引金額   380
---------------------------------------------------------------

よろしくお願いいたします

Offline

#2 2013-12-03 14:34:10

mice
Guest

Re: 2種類のレポートを表示

控除合計が40というのが意味不明ですが
控除金額はどこに入れてるんですか?

#3 2013-12-03 14:40:53

Raming
Member

Re: 2種類のレポートを表示

返信ありがとうございます。
分かりにくい文面で申し訳ありません。
しかも、例えの内容も間違えてました。控除合計は40ではなく50ですね。。。。申し訳ありませんでした。

現在作成しているテーブルは
「売上テーブル」
・会社コード
・売上日
・商品コード
・個数
・金額
・消費税
・税込金額

「控除テーブル」
・会社コード
・控除日
・控除コード
・控除金額

リレーションは
会社コード(売上テーブル)=会社コード(控除テーブル)
売上日(売上テーブル)=控除日(控除テーブル)

上記のように設定しています。
よろしくお願いいたします。

Offline

#4 2013-12-04 09:45:12

mice
Guest

Re: 2種類のレポートを表示

控除コードが1~4までですか。
1~4で固定なら、売上テーブルに集計用のリレーションキーフィールドを4個作ればSum(控除1;;控除金額)等で出ますけど

>売上日(売上テーブル)=控除日(控除テーブル)
各売上日に対して1控除?別のテーブルにしないほうが簡単?(控除という商品を売り上げ計上する)

控除の意味がいまいちよくわからないので

#5 2013-12-04 10:23:05

Raming
Member

Re: 2種類のレポートを表示

何度も返信していただきありがとうございます。
そして、説明不足で申し訳ありません

控除は固定ではありません任意で変動します。
売上の内容は会社・売上日で集計した結果を表示したく、控除の内容は会社で集計した結果を表示したいのです。
ちなみに、控除は、売上金額から差し引く金額項目として設けているものです。
売上日(売上テーブル)=控除日(控除テーブル)とリレーションを設定しているのは、指定期間で抽出したく設定しています。

>各売上日に対して1控除?別のテーブルにしないほうが簡単?(控除という商品を売り上げ計上する)
やはり、同じテーブルにした方がよいのでしょうか。
テーブル設計を少し考え直してみます。

ありがとうございました。

Offline

#6 2013-12-04 10:23:23

チポ
Member

Re: 2種類のレポートを表示

会社ごとに考えて、、


> 11/1   商品1    10    100    5      105
>      商品3    10    100    5      105
これは二つのレコードですよね?

として、
控除は日ごとに1レコードですか?

売り上げごとに発生するのではない?



詳細が分からない・・

Offline

#7 2013-12-04 10:58:49

mice
Guest

Re: 2種類のレポートを表示

>控除は日ごとに1レコードですか?
このあたりが不明なんで、どういう構造がいいのか何ともいえないのです。
精算ごとに1レコードの気もしてきた...その場合は控除テーブルというより精算テーブル?
「1~4でなく変動する」といっても上限をかなり小さく限定できないと、横に並べるレイアウト自体が不可能ですし。
控除コードごとに集計する必要があるのか(今作ろうとしてるレイアウトだけでなく、1ヶ月や1年の合計とか)、も関係する。

#8 2013-12-05 11:55:08

Raming
Member

Re: 2種類のレポートを表示

チポ様
mice様
詳細不明な点が多い中返信いただきありがとうございます。

>控除は日ごとに1レコードですか?
控除テーブルは会社コード・控除日・控除コードでユニークになっており、一日で数レコード発生します。
しかし、運用的に10も20も発生することはなく、通常は5レコードほどで、最大は15レコードです。

売上は毎日発生しますが、控除は売上1件に対して発生するものと、精算書を発行する際に
発生すものがあります。
ですので、表示を売上とは別にし、会社毎に集計したものを別に同帳票内に表示したいのです。

>控除コードごとに集計する必要があるのか(今作ろうとしてるレイアウトだけでなく、1ヶ月や1年の合計とか)、も関係する。
控除項目ごとに金額を明記するので集計する必要があります。
ご指摘の通り月計や年計でも集計する必要がありますが、年計月計の帳票レイアウトは会社毎に集計したものを表示するので、会社コードでリレーションを設定し、集計すればよいかと考えておりました。

Offline

#9 2013-12-05 13:20:01

mice
Guest

Re: 2種類のレポートを表示

そうすると、
>売上日(売上テーブル)=控除日(控除テーブル)
ではなく、左辺は日付範囲にする必要があるのでは。

テーブルはよさそうな感じです。

あと不明なのは控除コード。「最大は15レコード」はデータの数で、集計結果の数じゃないですよね。
例では控除1~4ですけど、これの最大数と、存在しない場合の表記方法
クロス集計の一種(縦が1行)なので、今のテーブル構造では若干面倒かも。
ExecuteSQLでやるといいのかな。

#10 2013-12-05 14:30:21

Raming
Member

Re: 2種類のレポートを表示

mice様
返信ありがとうございます。

>>売上日(売上テーブル)=控除日(控除テーブル)
>ではなく、左辺は日付範囲にする必要があるのでは。

なるほど、確かに。。。。納得です。

ExecuteSQLですね。
ただ、これまで何度か使用してみようと試みてはいたのですが、failemaker独自の記述方法がよく分かっておらず、現在勉強中なので、
この機会にしっかりと勉強しなおしたいと思います。

これまで何度も返信いただきありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 585.97 KiB (Peak: 602.51 KiB) ]