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

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

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

You are not logged in.

Announcement

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


#1 2016-02-15 16:12:44

見習い
Member

配達状況の統計表示

WIN7 FM14 adv
WIN2008 FMS14

いつもご質問させていただいておりありがとうございます。
集計?LIST?どうしたらいいかわからず困っている内容です。

1レコード1貨物1運転手が基準のレコードがあります。

Aさんの1日の配達状況を配達日で絞り込むと(発地↓着地↓ソート)

大阪 神戸
大阪 神戸
大阪 神戸
大阪 神戸
神戸 大阪
神戸 大阪
神戸 大阪
大阪 名古屋
大阪 名古屋
大阪 名古屋

というレコードが集まります。

この運転手の日報(別ファイル)に
スクリプトで
フィールド配達内容

のところに
大阪⇒神戸:4 神戸⇒大阪:3 大阪⇒名古屋:3

といった形でデータを入力したいです。(集計結果と呼ぶんですかね?)

元ファイルを開く
該当運転手の氏名・配達日で検索
発地↓着地↓でソート
????
????
日報ファイルへ戻る
フィールド設定::配達内容:::??????

ステップはこんな感じがいいなと思いつつ一番大事なところができませんでした。

教えて頂ければ幸いです。
根本的に不可であれば違った方法も教えて頂ければ幸いです。

Offline

#2 2016-02-15 17:08:15

Shin
Member

Re: 配達状況の統計表示

1日のうちで、神戸⇒大阪、大阪⇒神戸、神戸⇒大阪、という様な動きがあると思いますので、その中の神戸⇒大阪 の2回を区分するための情報が必要です。何かありますか。

Offline

#3 2016-02-15 17:12:58

見習い
Member

Re: 配達状況の統計表示

Shin wrote:

1日のうちで、神戸⇒大阪、大阪⇒神戸、神戸⇒大阪、という様な動きがあると思いますので、その中の神戸⇒大阪 の2回を区分するための情報が必要です。何かありますか。

ご指摘ありがとうございます。

今回そこに関しては評価する必要はありません。
神戸⇒大阪:4が午前、
神戸⇒大阪:3が夕方最終
という運行になっても日報には
神戸⇒大阪:7というデータが入れば問題ありません。

よろしくお願いします。

Offline

#4 2016-02-16 13:08:14

チポ
Member

Re: 配達状況の統計表示

配達テーブル(勝手に命名しました^^)
で自己リレーション
    運転手
  and
    日付
  and
    発地
  and
    着地
  (全て「=」で照合)
として、計算フィールド
   Count (自己リレーション::運転手 )
で目的の集計は出来ます。

これを、日報のレイアウトにポータルを置いて表示できます。


このままでは関連レコード全て表示されます。

集計結果だけの表示なら、
発地 & 着地
ごとに各ひとつずつ表示する工夫が必要ですね。

お分かりにならなければお尋ね下さい。

Offline

#5 2016-02-16 13:40:38

見習い
Member

Re: 配達状況の統計表示

チポさま
ありがとうございます。

自己リレーション後
テストフィールドに全置換にて
COUNTしてみました

大阪 神戸  4
大阪 神戸  4
大阪 神戸  4
大阪 神戸  4
神戸 大阪  3
神戸 大阪  3
神戸 大阪  3
大阪 名古屋 3
大阪 名古屋 3
大阪 名古屋 3

カウントの結果は正しく表示されました。

申し訳ありませんがポータルを表示させるのではなく
この結果から同テーブルのグローバルフィールドや変数でも構いませんので

大阪⇒神戸:4 神戸⇒大阪:3 大阪⇒名古屋:3

この形を入力させる方法は難しいでしょうか。


日報テーブルはレイアウトの構造上(寸法上?)
ポータルの配置は難しく(ポータルはフィルタをかけて上記結果だと3行必要ですよね)
実現しようとしている集計の情報は小さくメモ程度で表示させたいので
ひとつのフィールドに上記結果を入れていきたいです。

Offline

#6 2016-02-16 14:28:00

チポ
Member

Re: 配達状況の統計表示

同グループの内ひとつだけに表示するようにカウントのフィールドを変更します。

シリアル番号等ユニークなフィールドを作り、
計算式
  Case ( シリアル = 自己リレーション::シリアル ; 発地 & "⇨" & 着地 & ":" & Count (自己リレーション::運転手 ) )


日報で、このフィールドのListを得て、
その ¶ を空白等に変換すればいいですね。

Offline

#7 2016-02-16 14:28:41

Moz
Member

Re: 配達状況の統計表示

見た目が1行になっていればいいなら、

ExecuteSQL ( "select \"発地\",\"着地\",count(*)  from \"テーブル\" group by \"発地\",\"着地\"" ; "" ; " " )

戻り値:大阪,名古屋,3 大阪,神戸,4 神戸,大阪,3


"発地⇒着地" という表示が固定なら 発地 & "⇒" & 着地 という計算フィールドを作ります。
例)「発着地」として作成した場合、

ExecuteSQL ( "select \"発着地\",count(*)  from \"テーブル\" group by \"発着地\"" ; ":" ; " " )

戻り値:大阪⇒名古屋:3 大阪⇒神戸:4 神戸⇒大阪:3

とか、、、思いつきですが。

フィールド名は適宜実際にあわせてく獺祭。

Last edited by Moz (2016-02-16 14:35:33)

Offline

#8 2016-02-16 14:34:15

Moz
Member

Re: 配達状況の統計表示

配達日と担当者があるのですな(汗)

ExecuteSQL ( "select \"発着地\",count(*)  from \"テーブル\" where \"担当者\" = ? and \"配達日\" = ? group by \"発着地\"" ; ":" ; " " ; 担当者フィールド ; 配達日フィールド )

こんな感じで。

追記)
すみません。切れとりました。

Last edited by Moz (2016-02-16 14:35:05)

Offline

#9 2016-02-16 14:41:55

見習い
Member

Re: 配達状況の統計表示

チポ wrote:

同グループの内ひとつだけに表示するようにカウントのフィールドを変更します。

シリアル番号等ユニークなフィールドを作り、
計算式
  Case ( シリアル = 自己リレーション::シリアル ; 発地 & "⇨" & 着地 & ":" & Count (自己リレーション::運転手 ) )


日報で、このフィールドのListを得て、
その ¶ を空白等に変換すればいいですね。


Case ( シリアル = 自己リレーション::シリアル ; 発地 & "⇨" & 着地 & ":" & Count (自己リレーション::運転手 ) )

これすごいです。
あとは改行削除で望み通りになりました。
もともとユニークなシリアルのデータはあったので。

でもなぜシリアル=自己リレーション::シリアルを加えるだけで
ひとつだけに表示されたんでしょうか。

差し支えなければ解説頂ければ幸いです。

Offline

#10 2016-02-16 14:43:54

見習い
Member

Re: 配達状況の統計表示

Moz wrote:

配達日と担当者があるのですな(汗)

ExecuteSQL ( "select \"発着地\",count(*)  from \"テーブル\" where \"担当者\" = ? and \"配達日\" = ? group by \"発着地\"" ; ":" ; " " ; 担当者フィールド ; 配達日フィールド )

こんな感じで。

追記)
すみません。切れとりました。


ExecuteSQL
この単語、SQLという単語から今も逃げてます。汗
いきなり難しい見た目になりますよね。
そろそろそういう視点も勉強していこうと思うので参考になりました、ありがとうございます。

Offline

#11 2016-02-16 15:27:38

チポ
Member

Re: 配達状況の統計表示

リレーションには、照合順が有ります。
リレーションの設定でソート順が有りますが、その設定が有ればソートされた順
設定がなければ、レコード作成順(レコードID順ですね)になります。


自己リレーション::シリアル
これは照合順1番の値を返します。
ですから、
前の計算式は、照合順1番のレコードのみ値が入り、
他は空白になります。

Offline

#12 2016-02-16 15:47:31

Hiro
Member

Re: 配達状況の統計表示

お求めの日次集計結果をFM標準関数から計算式で取得する作例。
データ入力・編集を反映した集計結果を即時自動更新できます。

●サンプル「配達管理.fmp12」→ http://yahoo.jp/box/eQe645

Offline

#13 2016-02-16 19:07:04

見習い
Member

Re: 配達状況の統計表示

チポ wrote:

リレーションには、照合順が有ります。
リレーションの設定でソート順が有りますが、その設定が有ればソートされた順
設定がなければ、レコード作成順(レコードID順ですね)になります。


自己リレーション::シリアル
これは照合順1番の値を返します。
ですから、
前の計算式は、照合順1番のレコードのみ値が入り、
他は空白になります。

解説ありがとうございます。
納得できて非常に助かりました。
またよろしくお願いします!!

Offline

#14 2016-02-16 19:08:02

見習い
Member

Re: 配達状況の統計表示

Hiro wrote:

お求めの日次集計結果をFM標準関数から計算式で取得する作例。
データ入力・編集を反映した集計結果を即時自動更新できます。

●サンプル「配達管理.fmp12」→ http://yahoo.jp/box/eQe645


サンプル拝見しました。
作りを勉強して活用させてもらいます。

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

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: 554.81 KiB (Peak: 575.72 KiB) ]