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

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

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

You are not logged in.

Announcement

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


#1 2021-02-25 10:32:57

トリトンりき
Guest

複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

windows10 FileMaker18

全レコードは15レコードありまして、1レコードにフィールドが21個ありまして、このフィールドの値を変数にインクリメントで代入させたいです
そして、今度は、この変数の値をこの21フィールドに代入させたいです
直接、フィールドの数だけ代入させるのも大変なので、フィールド名を変数化してLOOで21回して変数に代入し、また、その逆で、変数をフィールドに代入できないかといろいろ試していますが、うまくいきません

こういうことです

フィールドには数が入っています。例えば、フィールド3には2が、フィールド5には1という具合です

1レコード目 フィールド01、フィールド02、フィールド03、フィールド104、フィールド05・・・、フィールド21
2レコード目 フィールド01、フィールド02、フィールド03、フィールド104、フィールド05・・・、フィールド21
3レコード目 フィールド01、フィールド02、フィールド03、フィールド104、フィールド05・・・、フィールド21
4レコード目 フィールド01、フィールド02、フィールド03、フィールド104、フィールド05・・・、フィールド21  ←このレコードは1~3レコードの合計
5レコード目 フィールド01、フィールド02、フィールド03、フィールド104、フィールド05・・・、フィールド21
6レコード目 フィールド01、フィールド02、フィールド03、フィールド104、フィールド05・・・、フィールド21  ←このレコードは5レコードの合計
   :
15レコード目 フィールド01、フィールド02、フィールド03、フィールド104、フィールド05・・・、フィールド21  ←このレコード全合計

よろしくお願いします

#2 2021-02-25 10:48:26

himadanee
Guest

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

「インクリメントで代入」の意味が分かりません。配列(繰り返し)変数を使いたい?

GetField()とかEvaluate()で取得できますが...
FMに代入という用語はありません。とりあえず必要なステップは「フィールドを名前で設定」でしょうけど

15レコード目の数値を計算で出したいってことですか?
なんというか、構造がそもそもデータベースの体をなしてないので、FMでやるべき案件ではないような?

ちなみにExecuteSQL()を使うと縦合計はいっぺんに出せます。

#3 2021-02-25 11:11:45

トリトンりき
Guest

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

すいません
分かりにくくて

具体的には

変数を設定[$cnt;0]
変数を設定[$NUM;0]

レコード/検索条件/ページへ移動 [ 最初の]
Loop
   変数を設定$NUM;値:$cnt+1]
   変数を設定$NUM;値:$NUM+1]
   変数を設定[$GOUKEI ;フィールド & if(length($NUM)=1; "0"& $NUM ; $NUM)]

   ExitLoop If[$cnt>15]

  レコード/検索条件/ページへ移動[ 次の; 最後まできたら終了 ]
Exit Loop

上記のようにフィールド名の数字の部分を変数化してLOOで簡単に変数に代入できないかと
記述が正しいかどうかは別として、やりたいことが伝わればと思います
そして、この逆で変数をフィールドに代入したい

全データをLOOPさせて変数にフィールドの値を代入させたです

よろしくお願いします

#4 2021-02-25 11:36:05

Shin
Member

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

説明は面倒なので、元データからクロス集計を行い、集計表を変数に格納するサンプルで
https://www.dropbox.com/s/22s9prb86imcc … 2.zip?dl=0

Last edited by Shin (2021-02-26 08:38:49)

Offline

#5 2021-02-25 12:15:32

Shin
Member

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

んん、途中に集計行が混じっている?
産地ごとの集計行だけでなかったの。

面倒な表です。
集計しておいて、そのまま印刷でしたら簡単でしょうが。

Last edited by Shin (2021-02-25 14:42:51)

Offline

#6 2021-02-25 12:42:21

himadanee
Guest

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

$GOUKEI ってことは、代入というより加算したいんですか?

GetNthRecord()を使えば、レコードの移動しなくてもLoopで順番に取得できますよ。設定の方は現在のレコードしかできませんが

#7 2021-02-25 13:25:32

トリトンりき
Guest

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

みなさま、ご指導まことにありがとうごじます
なぜ、このようなことをしているのかと申しますと、集計をエクスポートしたいのですが、ファイルメーカー標準のエクスポートでは小計欄や合計欄はデータがないのでエクスポートできないと分かり、そしたら小計も合計もデータ化しないといけないと思いました

#8 2021-02-25 14:42:56

Shin
Member

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

上のサンプルを更新しています。産地、品名、数量のデータから、元データと小計、総計を、クロス集計表の形で変数に格納します。
https://www.dropbox.com/s/22s9prb86imcc … 2.zip?dl=0

産地  りんご みかん なし イチゴ バナナ 合計
長野   0    5   0   8   0   13
長野   6    0   2   0   9   17
長野計 6    5   2   8   9   30
高知   0   0   1   0   0   1
高知   9   0   0   0   0   9
高知   0   3   0   6   5   14
高知計 9   3   1   6   5   24
宮崎   1   0   0   2   0   3
宮崎   0   2   3   0   1   6
宮崎計 1   2   3   2   1   9
合計   15  8    6  16   15  63

のイメージでいいのですよね。繰り返し数を加減すれば、数十項目までは集計できます。

リンク修正しました

Last edited by Shin (2021-02-26 08:38:32)

Offline

#9 2021-02-25 17:59:16

トリトンりき
Guest

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

Shinさまありがとうございます
でもダウンロードできませんでした

#10 2021-02-26 10:44:22

トリトンりき
Guest

Re: 複数のフィールドの値をLOOで変数にインクリメントで代入させて、この変数の値を今度は逆にフィールドに代入させた

Shinさま、いろいろとありがとうございました
大変、参考になりました

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.015 seconds, 9 queries executed - Memory usage: 526.81 KiB (Peak: 547.72 KiB) ]