みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
あけましておめでとうございます。
今年も、こちらを利用させていただきたいと思います。
さて、年明け最初の相談なんです。
タイトルにもあるようにクロス集計についてです。
当方は、何度もこちらに相談させていただいていますが
ある工場内でファイルメーカーを使って、いろいろなシステムを
作成している一環でお弁当の受発注システムも作成しています。
システムの大筋はこちらへの相談等で何とか完成に近づいていますが
ついに集計の部分に着手することになりました。
そこで、いまいちアイデアが出てこなくてこちらに相談させていただきます。
まず、当方の環境ですが、
OS:Win7 FM:ファイルメーカーPro11
テーブル構成は(主要なものだけを記述します)
テーブル1:日々の弁当の注文を格納するテーブルで、1社員1日1件になっています。
社員CD 社員名 区分 注文日付 弁当種
テーブル2:お弁当の種類を格納するマスタです。
メニューCD メニュー名 表示用メニュー 注文数
となっています。リレーションはテーブル1の『弁当種』とテーブル2の『表示用メニュー』が
『×』で行って『注文数』の計算式に『PatternCount ( List ( テーブル1::弁当種 ) ; 表示用メニュー )』と
弁当種ごとの集計は取ることができたのですが、区分別・弁当種別の集計の取り方が思いつきません。
どなたかご教授いただけると幸いです。
集計のイメージとしては、
区分 A弁当 B弁当 C弁当・・・
1 10 2 3
2 15 5 6
3 5 7 4
4 2 0 0
という感じです。
区分も弁当種も数が変動する可能性があるので固定できません。
よろしくお願いします。
テーブル1で、日付で抽出し、区分と弁当種で集計したら良いのでは。
クロス表に編集するには、過去レスを探ればたくさん出てきます。
複数の日付を含めて一括集計できるサンプルです。日毎に、該当の無い弁当種は省く表示になっています。
https://www.dropbox.com/s/ra94kmjurv1hq … 7.zip?dl=0
Last edited by Shin (2016-01-07 00:03:52)
Offline
Shin様、返信が遅くなりました。
テーブル1で、日付で抽出し、区分と弁当種で集計したら良いのでは。
クロス表に編集するには、過去レスを探ればたくさん出てきます。複数の日付を含めて一括集計できるサンプルです。日毎に、該当の無い弁当種は省く表示になっています。
https://www.dropbox.com/s/ra94kmjurv1hq … 7.zip?dl=0
お教えいただいた方法で試してみましたが、計算が行われませんでした。
サンプルのまま、当方のテーブルにフィールドを追加しました。
『弁当種一覧』はそのままので、『弁当種_』は『配列弁当種』、『s_弁当種』は『弁当種合計』という名前で
追加して、タイプも当然同じにしました。
計算式も、参照する名前は当然変えていますが式としては全く同じものを入力しています。
ですが、『弁当種一覧』には『弁当種』が入らず『s_弁当種』にも計算結果が入りません。
原因がわからず難儀しています。
Hiro様、返信が遅くなりました。
こちらの 公開サンプル も参考になさってみてください。
リンクを参考に当方のプログラムに組み込んでみましたが、うまく計算されませんでした。
『集計』に該当する部分に集計結果は表示されました。
『項目一覧』に該当する部分に項目名は入力されました。
『集計一覧』に該当する部分に集計結果は表示されました。
ここまでは、何とかなったんですが
『区分トップIDs』に該当する部分にどうやっても結果が入力されませんでした。
まだ、いまいちサンプルの解析が追い付いていないのも原因なんですが
原因がわからず、今はShin様の方法を試しているところです。
ま、こちらも動かなくて困っているんですが。
値一覧は設定されていますか。
それで値を選択するためのリレーションが張ってあるのですが、それも設定されていますか。
また、クロス集計表の表示は集計機能を使っていますので、ソートが必要です。
Last edited by Shin (2016-01-08 22:31:05)
Offline
リンクを参考に当方のプログラムに組み込んでみましたが、うまく計算されませんでした。
『集計』に該当する部分に集計結果は表示されました。
『項目一覧』に該当する部分に項目名は入力されました。
『集計一覧』に該当する部分に集計結果は表示されました。
ここまでは、何とかなったんですが
『区分トップIDs』に該当する部分にどうやっても結果が入力されませんでした。
『区分トップIDs』計算フィールドが「計算結果を保存しない」の設定になっていないのでは?
Offline
Shin様、返信ありがとうございます。
値一覧は設定されていますか。
それで値を選択するためのリレーションが張ってあるのですが、それも設定されていますか。
また、クロス集計表の表示は集計機能を使っていますので、ソートが必要です。
できました。
『値一覧』の名前をサンプルでは『弁当種一覧』となっていたのでそのまま使っていたんですが
当方では『弁当種』という名前で値一覧を作っていました。
なので『GetValue ( ValueListItems ( Get ( ファイル名 ) ;"弁当種一覧" ) 』の『弁当種一覧』を
『弁当種』にしたところ、日付順で区分ごと弁当種ごとに集計が表示されました。
ありがとうございました。
ただ、新たに問題が出てきました。
これを、特定の日付だけを表示させるにはどうしたらいいのでしょうか。
というのも、当方で考えているのは注文書を発行する際日付を選択して集計結果を確認してから
注文書の発行をさせようと考えています。
それと、この集計結果をポータルで表示させようとしたんですがうまくいきませんでした。
どうしたらいいのでしょうか。お教えください。
Hiro様、返信ありがとうございます。
弁当屋 wrote:リンクを参考に当方のプログラムに組み込んでみましたが、うまく計算されませんでした。
『集計』に該当する部分に集計結果は表示されました。
『項目一覧』に該当する部分に項目名は入力されました。
『集計一覧』に該当する部分に集計結果は表示されました。
ここまでは、何とかなったんですが
『区分トップIDs』に該当する部分にどうやっても結果が入力されませんでした。『区分トップIDs』計算フィールドが「計算結果を保存しない」の設定になっていないのでは?
なるほど。そこは確認していませんね。
ただ、今はShin様からお教えいただいた方法にテーブル構造なども改修してしまったので確認ができません。
せっかくアドバイスをいただいたのに申し訳ありません。
まだ、開発途上ですのでHiro様の方法も改めて検証しないといけないと思いますので
もう少しお待ちください。
ありがとうございました。
いつもお世話になります。
いろいろな方からご助力をいただき、なんとかクロス集計ができるようになりました。
Shin様から、お教えいただいた方法を軸にポータルで表示させようとしたんですが
画面の表示領域の問題などからポータル表示はせずに
レイアウトを見直して集計パートを使って表示させる方法にしました。
ありがとうございました。
これで注文票まで作成が可能になりましたが、さらに新たな要望が入り
頭を悩ましています。
そちらは別スレッドを立てたいと思いますのでよろしくお願いします。
Pages: 1
[ Generated in 0.011 seconds, 10 queries executed - Memory usage: 546.8 KiB (Peak: 567.71 KiB) ]