みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Win10、FM18です。
ファイルメーカー初心者です。
集計表の列タイトルを下記の繰り返しフィールドとして、日付ごとに集計しようと考えております。
GetValue ( ValueListItems ( Get ( ファイル名 ) ;"日付一覧" ) ; Get ( 計算式繰り返し位置番号 ) )
この日付一覧は、フィールドの値を使用しており、過去から未来にわたって、幅広い日付の一覧となります。
しかし、集計したいのは現在の日付以降の日付であって、過去の日付は集計表に表示しないようにしたいです。
どのように修正したらよいか、ご教授願えますと幸いです。
本日からの連続した日付を繰り返しフィールドに入力。
なら、
値一覧不要で出来るでしょう。
その日付と同じように、
集計される繰り返しフィールドも有るんですよね。
とすれば、いい方法とは言えませんよよ。
1日付・1レコードの別テーブル
とするべきでしょう。
Offline
全体の構造がわからないのですが。
もし、集計対象のテーブル上での動きでしたら、そのレコードを現在の日付以降で抽出します。
日付を一覧集計する集計フィールド s_日付 を作っておき、
SortValues ( UniqueValues ( GetSummary ( s_日付 ; s_日付 ) ) )
が日付一覧になります。それを展開すればいかがでしょう。
ただし、日付が手入力されていると、2023/6/6 2023/06/06 は区別されてしまいます。対策として、日付フィールドの自動入力で、計算で GetAsDate ( self ) を上書きを許可して設定しておくと、統一された表記になります。
Offline
チポ様、Shin様
ご丁寧に教えて下さいまして、ありがとうございます。
私自身の思い込みで、説明がかなり不足しておりまして、申し訳ございません。
具体的には、納期日ごとに出荷数を集計する下記のような表です。
毎日一定の時間に集計し直して、その時点での現在の日付以降の出荷数を集計したいです。
(現時点で、納期に間に合わせるように生産する場合には、あとどれだけ生産しなければならないかを確認するための表です。)
納期日 6/14 6/15 6/16 6/17 6/18 6/19 6/20
出荷数 2 3 4 5 6 4 3
別テーブルには、下記のようなデータがあります。
納期日 品名 出荷数
6/13 A 1
6/14 A 2
6/15 B 3
6/16 A 1
6/16 B 3
6/17 C 5
・
・
・
日付一覧は、このテーブルの納期日フィールドを一覧としております。
この場合、6/13は過去の日付なので含めず、6/14以降の日付のみを値一覧としたいです。
色々と試行錯誤しまして、レイアウト上で変更することを検討してみたり、値一覧を現在の日付以降で集計し直そうとしてみたりしましたが、
うまくいきませんでした。
お忙しいところお手数をおかけしますが、ご教授の程よろしくお願いいたします。
本日以降の日付の値一覧は、
本日以降を関連レコードとするリレーションの動的値一覧で可能です。
しかし、
説明の別テーブルを本日以降で検索して、集計レイアウト
とか、
自レコードの日付以降のリレーションで
集計できますよ。
Offline
こんな形がいいのでしょうか
https://www.dropbox.com/s/8k60tv35jpy4p … 2.zip?dl=0
Offline
チポ様、Shin様
Shun様、ファイルのご提供までしていただき、本当にありがとうございます。
このような場合にも、新規ウィンドウを作成する方法もあると知り、勉強になります。
ただ、元のレイアウトを作成した上で。。。となると、今後過去の日付が膨大に蓄積されていくことを考えると動作が遅くなりそうな気がします。
そうなると、レイアウト上で変更するより、値一覧自体を現在の日付以降とする方法しかないのかなぁと思っています。
チポ様、色々な案をご教示いただきましてありがとうございます。
教えていただいた①②の方法を試みたのですが、レイアウト上に過去の日付も表示されてしまいました。(出荷数の集計は現在の日付以降にはなるのですが。)
レイアウト上の変更の方がファイルが重くならないと思うので、可能であればその方がよいのですが、過去の日付が表示されないようにすることは、できるのでしょうか。
①説明の別テーブルを本日以降で検索して、集計レイアウト
②自レコードの日付以降のリレーションで集計できますよ。
そこで、動的値一覧を試みようとしたのですが、不慣れでよく分かりませんでした。
追加で作成するテーブルは、どのようなテーブルになるのでしょうか。(日付のみを現在の日付以降へ変更した、上記説明で記載した別テーブルと同じものでよいのでしょうか。)
お忙しいところ大変恐縮ですが、よろしくお願い致します。
> ①説明の別テーブルを本日以降で検索して、集計レイアウト
書いてある通り、
本日以降で検索しないとだめですよ。
これは、
#4で書かれた別テーブルだけで完結します。
> ②自レコードの日付以降のリレーションで集計できますよ。
これは自己リレーション、
テーブル::納期日 >= テーブル2::納期日
とすれば、自レコードの納期日以降のレコードと照合します。
説明では、品名にかかわらず集計していますが、
それでいいのでしょうか?
Offline
チポ様、Shin様
ありがとうございます。お陰様で、作りたい形にたどり着くことが出来ました。
値一覧の使用にこだわり過ぎていましたが、考え方を変えてShin様に教えていただいた一覧のフィールドを作成したら、
納期日を現在の日付以降で検索し絞ることが出来ました。
チポ様
省略ばかりで申し訳ございませんでしたが、品名にかかわらず集計しているのは、説明簡略化のためでした。
実際には、品名等で4段階のパートを設定しております。
余計なお手間をおかけしまして、申し訳ございませんでした。
本当に感謝の限りです。ありがとうございました。
> 元のレイアウトを作成した上で。。。となると、今後過去の日付が膨大に蓄積されていくことを考えると動作が遅くなりそうな気がします。
この懸念は、根拠があったのですか。
サンプルファイルの構造で、200000レコードに対してほぼ同じことを運用しているのですが、全くレスポンスに問題ありませんよ。
簡単に確認できる事ですので、頭で考えずに動かしみましょう
Offline
Shin様
懸念に根拠はありません。
filemakerの構造が良く分かっていないのに、すみません。
記載した後、自身のデータがある程度入ったファイルでスクリプトを動かしてみても、動作に問題はありませんでした。
ありがとうございました。
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 590.6 KiB (Peak: 607.51 KiB) ]