- 締切済み
ファイルメーカーの範囲集計
よろしくお願いします。 FMproVer5を使用しているFM初心者です。 質問内容ですが、例えば10明細のデータがあるとします。1明細毎に行番号をもっており、これをポータルで6明細ずつ表示したいと思っています。 この明細を範囲指定し、その範囲のみの集計は可能でしょうか?? 一応 if(1<=dno and dno=<6,sum(金額),"error")というふうにしてみました。このままですと、結局は10明細分の金額全て合計してしまいます。 うまく範囲だけ集計する方法はありますか? あとポータルには6明細毎に表示しているのですが、7明細目から表示できなくなっています。7明細以降をうまく表示して、7~10明細までの集計なんて、ことも出来るのでしょうか? また、プレビューの画面ですが、パートの小計、ソートを使っているところで例えばここで繰り返しで6行にして、この6行分の金額合計なんかは出来ますか? 色々試したのですが、やはりうまく出ず、会社にはマニュアルとかもなくて もうどーにもならなくて・・・FMで無理なら別でやろうと思ってます。 どうかよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- aqula
- ベストアンサー率60% (70/115)
念のため… フィールド「表示番号」「明細表示A」「明細表示B」のフィールドタイプはテキストです。
- aqula
- ベストアンサー率60% (70/115)
ファイルやフィールドの構成がわからないので、自分が作る場合の例を挙げておきます。 小計パートなどの集計は使いません。 ファイル「納品明細」 フィールド シリアル(数字)番号自動入力、開始0、増分1 納品番号(計算)Int(シリアル/10) + 1 表示番号(計算)納品番号 & "-" & Int(Mod(シリアル,10)/ 6) 金額(数字) スクリプト(新規レコードを10回繰り返す) ファイル「納品書」 フィールド 納品番号(数字)番号自動入力、開始1、増分1 明細表示A(計算)納品番号 & "-" & "0" 明細表示B(計算)納品番号 & "-" & "1" リレーション 納品明細A(明細表示A = 表示番号) 納品明細B(明細表示B = 表示番号) フィールド 小計A(計算)Sum(納品明細A::金額) 小計B(計算)Sum(納品明細B::金額) 合計(計算)小計A + 小計B レイアウトの1ページ目にリレーション「納品明細A」のポータルと「小計A」 2ページ目にリレーション「納品明細B」のポータル、「小計B」、「合計」 納品書の新規作成はスクリプトにしておき、 「納品書」の新規レコードと 外部スクリプトで「納品明細」の新規レコード10個
- aqula
- ベストアンサー率60% (70/115)
検証できないので、案だけですが… 6明細ごとに別のリレーション、ポータルを作成します。 明細側の計算フィールド(テキスト) (今使っているリレーションキー)& Int((行番号-1)/6) これで、6行目までは末尾に0、7~12行は末尾に1がつきます。 表示側で (今使っているリレーションキー)& 0 (今使っているリレーションキー)& 1 の値を持たせて明細側とリレーションさせ、別のポータルで表示。 それぞれの合計は、Sum(リレーション名::金額) > また、プレビューの画面ですが、パートの小計、ソートを使っているところで > 例えばここで繰り返しで6行にして、この6行分の金額合計なんかは出来ますか? 意味が分かりません。何がしたいんですか?具体的に
補足
aqula様、回答ありがとうございます。 プレビュー画面についてですが、納品書という形で 印刷物を一旦画面表示し、確認後印刷するようにしておりまして、 いままでは繰り返し行数などの設定をせず、表示させてました。 しかしながら、それを6行表示にし、チェックする作業が発生したため、 例えば、10明細あったら、6行、次ページで残り4行という形で 表示させます。そこでその表示された分だけの合計金額も表示させたいのです。 今まではパート設定の小計・ソート対象を利用し、小計を表示していました。しかしこの小計はあくまでも全明細分の合計ですので、最後の行に 表示になります。これをうまく6行ごとに表示できれば最高と思っております。 長くなってすみません 。FMは本当に初めてで全く馴れていないので 難しく、急に対応任されたので、パニック状態です(汗