みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
ページ: 1
FMで「対象レコード」というのは、検索結果のことを言うので、自己リレーションでは得られませんが、「関連レコード数」とどっちを数えたいんでしょうか。
「対象レコード数をcount」であれば、Get(対象レコード数)で出ます。
これは全レコードに対して1つの数字なので、「全置換」する意味は全くありません。(同じ数字を全レコードに入れることになります)
書いてるような全置換が必要だとしたら「全対象レコードの各関連レコード数」ということになりますが...
全置換しなくても計算フィールドでも出ますよね。その結果を検索したりしないなら計算フィールドでいいと思いますが...
必要な時に計算するので余計な時間はかかりません。(対象レコード数が多いと時間がかかるのは、必要な時間ということになる)
具体的にどのような集計を行っているのですか。
> valuelistitemを使い、対象数をloopする
集計したい項目が複数あるのですよね。その項目ごとのレコード数がお欲しいのでしょうか。
一般的には、全レコードで何らかの値が入っている適当なフィールドをカウントする集計フィールドを作ります。
新しいレイアウトを作り、項目をキーとする小計パートのみを作ります。そのパートに項目フィールドと上の集計フィールドを配置します。項目でソートすると分別されてカウントされます。
または、その項目を値一覧(カスタム値にしておいたほ方が集計は早くなりますが)にしておき、1項目ずつ繰り返しフィールド「項目名」に振り分けておきます。
計算フィールド(繰り返し) 項目名 = 項目[1] を作り、それを個別に合計する集計フィールドを作り、ヘッダ、フッタ、総計パートなどに配置します。
全レコードを対象にして、その集計フィールドをみれば、項目ごとのカウントがでていますよ。(リレーションはいりません)
FM12 は、大きくファイル構造が大きく変わった最初のバージョンで、不具合が多く残っています。また、集計などの速度も遅いような気がします。サポートも切れていますし、使わない方がいいですよ。(私は、このバージョンは業務では使いませんでした。)
編集者 Shin (2023-11-10 16:45:27)
オフライン
何をしてるのか今一わかりにくいですね。
>集計項目は二つ
集計の区分けが2つ?自己リレーションに2つのフィールドで結合してるってことですか?
しかし、カウントという言葉は集計結果として使ってましたから、
頭文字2桁を区分けにして(リレーションキーにして)、最大5桁のカウント(レコード数)ということ?
例えば
あああ
ああい
あいい
というレコードがあれば、
ああ:2件
あい:1件
となる。
しかしこれを全置換で求めるのは、2レコードの
あああ 2
ああい 2
と同じ結果を複数レコードに入れることになって、無駄な処理をしています。
検索に使うというから、例えば「2」で検索した結果
あああ
ああい
を対象レコードにしたい、ということであれば、全然別のやり方も考えられます。
Shinさん、himadaneeさん、ありがとうございます。
>>しかしこれを全置換で求めるのは、2レコードの
>>あああ 2
>>ああい 2
>>同じ結果を複数レコードに入れることになって、無駄な処理をしています。
himadaneeさんが仰るとおりの検索結果を求めたいです。
たしかに、無駄な処理をしているのですが、一つ一つのレコードが固有のレコードになっています。
そして、全置換後(集計結果)に集計結果の個数に応じて処理をしたいと考えています。
>>検索に使うというから、例えば「2」で検索した結果
>>あああ
>>ああい
>>を対象レコードにしたい、ということであれば、全然別のやり方も考えられます。
対象の頭文字は数字の羅列ですが可能ですか
オフライン
11001
11002
12001
12002
22001
みたいな感じになっていて、11, 12, 22 でカウントしたい、ということでしょうか。続く残りの数字は間径ないのですね。
Left ( 数字 ; 2 )
という計算フィールドを作っておき、集計するのが簡単なのでは。
https://www.dropbox.com/scl/fi/357xiliy … xzwg7&dl=0
編集者 Shin (2023-11-11 12:01:20)
オフライン
ページ: 1