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

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

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

You are not logged in.

Announcement

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


#1 2019-11-17 13:17:39

minami
Guest

クロス集計のデータの表示がうまくいかない

(FileMaker17 Win8です)

はじめまして。
過去のクロス集計の投稿やサンプルなどを拝見しています。
このたび、施設の利用者毎に週間の予定表をA時間帯、B時間帯に分けてクロス集計で作成したいのですが、違うデータが取得され非常に苦戦しております。
再現ファイルがあるので、お手数ではありますが、見て頂けないでしょうか。

再現クロス集計


入力レイアウト(テーブル名 "入力")は、
・_予定id    数字
・利用者名   テキスト
・作成日    日付
ポータル(テーブル名 "テーブル")
・予定id      数字 索引
・レコードid    計算 索引 fronテーブル、=Get ( レコード ID )
・曜       テキスト 索引(日月~土を選ぶ)
・ヘルパー      テキスト 索引
・開始h     時刻
・終了h     時刻
・区分     テキスト  (Case( 開始h < Time ( 16 ; 0 ; 0 );"A" ;終了h > Time ( 16 ; 00 ; 0 );"B" ) //開始時刻が16時より前ならA、後ならB
・曜日設定   計算[7]       Choose(Get(計算式繰り返し位置番号);"";TextColor("日";RGB(255;0;0));"月";"火";"水";"木";"金";TextColor("土";RGB(0;0;255)))
・その他、一覧表示させるための繰返しフィールド

があり、入力されたデータをAとBに分け曜日ごとに集計を取りたいのですが
週ごとにデータを並べるまでは出来たのですが、

● せっかく16時を起点にAとBの区分に分けたのに、取得されているデータが違う。
● 明細の曜と、クロス集計の曜日、ヘルパー、時間のデータが違う、

自己リレーションの照合に問題があるのか、
GetValue(ValueListItems(Get(ファイル名) ; "値一覧"); Get(計算式繰り返し位置番号))の値一覧の表示順番の問題なのか、計算式ごと違うのか混乱しています。

ご指導いただけると嬉しいです。

#2 2019-11-17 16:07:53

Shin
Member

Re: クロス集計のデータの表示がうまくいかない

簡単な、集計機能でのクロス集計のサンプルです。
https://www.dropbox.com/s/pc6o8123uumtk … 2.zip?dl=0

Last edited by Shin (2019-11-18 04:25:59)

Offline

#3 2019-11-17 20:00:43

minami
Guest

Re: クロス集計のデータの表示がうまくいかない

Shinさん、ありがとうございます。
リンクをクリックすると
「ファイルをアップロード中」と出ます。
よろしくお願いします。

#4 2019-11-17 20:08:45

Hiro
Member

Re: クロス集計のデータの表示がうまくいかない

提示「再現クロス集計」を拝見しましたが、構成が大分ぐじゃぐじゃなので、
それの修正・校正ではなく、新たなファイルを作り直してアップしました。

クロス集計に面倒なリレーション処理は一切使わず、ExecuteSQL計算式だけの
簡潔な作例です。

●作例サンプル「週間割り予定表.fmp12」 → https://1drv.ms/u/s!AlaCGhTKTWEOp3uxzYP … P?e=jwuTcC

Last edited by Hiro (2020-05-12 21:48:20)

Offline

#5 2019-11-17 20:48:05

minami
Guest

Re: クロス集計のデータの表示がうまくいかない

Hiroさん、ファイルを拝見しました。
サンプルファイルまで作っていただきましてありがとうございます。
すごく綺麗で嬉しいです!
ExecuteSQLはまだ全然分からないのですが、この機会に勉強したいと思います。

ExecuteSQL(
"
SELECT \"担当\",\"開始時刻\",\"終了時刻\"      //取得するフィールド名
FROM \"詳細\"                    //検索するテーブル名
WHERE \"ID\"=? AND \"曜日\"=? AND \"区分\"=?  //詳細テーブルの検索場所
  "
; ¶
; ""
; ID[1]
; g曜日配列
; g区分配列[1]
)

この最後の3行の
; ID[1]
; g曜日配列
; g区分配列[1]
は、マスタ側テーブルの配列データの項目名という意味なのでしょうか?
配列という概念が無かったので勉強になります。

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

#6 2019-11-17 22:04:24

Hiro
Member

Re: クロス集計のデータの表示がうまくいかない

minami wrote:

ExecuteSQLはまだ全然分からないのですが、この機会に勉強したいと思います。

ExecuteSQL(
"
SELECT \"担当\",\"開始時刻\",\"終了時刻\"      //取得するフィールド名
FROM \"詳細\"                    //検索するテーブル名
WHERE \"ID\"=? AND \"曜日\"=? AND \"区分\"=?  //詳細テーブルの検索場所検索条件を指定、?は検索キーワードを動的引数(=ダイナミック・パラメータ)として指定する時に使います。
  "
; ¶
; ""
; ID[1]
; g曜日配列
; g区分配列[1]
)

この最後の3行の   //※繰り返し内からのフィールド参照は、[ ]で位置指定が必須、省略は自己と同じ繰り返し位置を参照する。
; ID[1]   //1番目の?に対応した検索キーワードに[1項目]「ID[1]」フィールドの値を代入。
; g曜日配列   //2番目の?に対応した検索キーワードに[省略→自己と同じ繰り返し位置を参照]「g曜日配列」フィールドの値を代入。
; g区分配列[1]   //3番目の?に対応した検索キーワードに[1項目]「g区分配列[1]」フィールドの値を代入。
は、マスタ側テーブルの配列データの項目名という意味なのでしょうか?

Offline

#7 2019-11-17 22:54:02

minami
Guest

Re: クロス集計のデータの表示がうまくいかない

?に対応した検索キーワードにフィールドの値を代入
という意味がやっと分かりました。

他にもExecuteSQLで練習したいと思いました。
ありがとうございました。

#8 2019-11-18 04:27:25

Shin
Member

Re: クロス集計のデータの表示がうまくいかない

ファイルを更新しました。
https://www.dropbox.com/s/pc6o8123uumtk … 2.zip?dl=0

Offline

#9 2019-11-18 13:52:42

minami
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.008 seconds, 10 queries executed - Memory usage: 521.23 KiB (Peak: 526.14 KiB) ]