みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
(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(計算式繰り返し位置番号))の値一覧の表示順番の問題なのか、計算式ごと違うのか混乱しています。
ご指導いただけると嬉しいです。
簡単な、集計機能でのクロス集計のサンプルです。
https://www.dropbox.com/s/pc6o8123uumtk … 2.zip?dl=0
Last edited by Shin (2019-11-18 04:25:59)
Offline
Shinさん、ありがとうございます。
リンクをクリックすると
「ファイルをアップロード中」と出ます。
よろしくお願いします。
提示「再現クロス集計」を拝見しましたが、構成が大分ぐじゃぐじゃなので、
それの修正・校正ではなく、新たなファイルを作り直してアップしました。
クロス集計に面倒なリレーション処理は一切使わず、ExecuteSQL計算式だけの
簡潔な作例です。
●作例サンプル「週間割り予定表.fmp12」 → https://1drv.ms/u/s!AlaCGhTKTWEOp3uxzYP … P?e=jwuTcC
Last edited by Hiro (2020-05-12 21:48:20)
Offline
Hiroさん、ファイルを拝見しました。
サンプルファイルまで作っていただきましてありがとうございます。
すごく綺麗で嬉しいです!
ExecuteSQLはまだ全然分からないのですが、この機会に勉強したいと思います。
ExecuteSQL(
"
SELECT \"担当\",\"開始時刻\",\"終了時刻\" //取得するフィールド名
FROM \"詳細\" //検索するテーブル名
WHERE \"ID\"=? AND \"曜日\"=? AND \"区分\"=? //詳細テーブルの検索場所
"
; ¶
; ""
; ID[1]
; g曜日配列
; g区分配列[1]
)
この最後の3行の
; ID[1]
; g曜日配列
; g区分配列[1]
は、マスタ側テーブルの配列データの項目名という意味なのでしょうか?
配列という概念が無かったので勉強になります。
ありがとうございました。
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
?に対応した検索キーワードにフィールドの値を代入
という意味がやっと分かりました。
他にもExecuteSQLで練習したいと思いました。
ありがとうございました。
Offline
Shinさん、ファイルありがとうございました。
勉強させていただきます。
Pages: 1
[ Generated in 0.011 seconds, 8 queries executed - Memory usage: 521.89 KiB (Peak: 526.8 KiB) ]