過去の桐井戸端BBS (桐ver.7) |
2439 | 桐Ver7.1レポートで総頁数を出すには? | HLK | 1999/8/19-08:45 |
初めまして 業務で桐Ver7.1を使用しています。 Ver5の頃から常々不便に思っていたのですが、レポート出力時に各頁に 頁の総計を印刷させたいのですが、思うように出来ません。 要するに、こんな事をしたいのですが、 レポートの各頁 / 頁の最大値 今は、頁の最大値を変数に予め格納して(その前にいったんレポートを プレビュー表示して、レポートの枚数を目で見て確認しておきます) それから変数にレポート枚数をぶちこんで、レポートで変数を表示 させる・・・枚数が変わったらいちいちプレビューし直したり 印刷後、1枚ずつ確認したりで非合理的です。 何とかならないものでしょうか HLK | |||
2444 | Re: | 前田 | 1999/8/19-11:49 |
記事番号2439へのコメント V8ですがV7でも同じと思いますので、レポートの集計行に次のような計算 式を入力し集計種別「頁計」で設定したらどうでしょう。 #MAX([入金額]) | |||
2449 | Re: | 悲しげ | 1999/8/19-12:54 |
記事番号2444へのコメント どもっ、HLKさん、前田さん、 これはおそらく標題が正しくないような気がします。(^^;) 「頁総計」と云えば、一般的には、単純にその頁の計を指すと思います。 私の想像では、そうではなくて、例えば請求書を出す場合だと 得意先 得意先毎の総頁数 各頁に印字するのは あいう 3枚 1/3 2/3 3/3 かきく 2枚 1/2 2/2 のように出力したいと云うことなのではないでしょうか? とすれば私なら、標題は レポートで「1枚目/全3枚中」のように印刷したい のようにすると思います(外していたらごめんなさい)。 とすれば、V6以降で試してことはありませんが、少なくともV5の時は、 これはできなかったと思います。その理由は、帳票印刷の場合、 桐の挙動としては、その頁内だけで(左上から右下にかけて) 判断しているためであって、他頁まで含めて判断はしていないからです。 この仕様が、もしV6以降でも変わっていないとすれば、やり方 はV5と同様になると思います。 V5で私は次のように各グループ毎の頁枚数を予め算定しておき、 その値を別途増設した項目[枚数](仮称)に入れてから、印刷に かけていました(行集計で出した枚数を集計行のみ別表に書き 出して、次の別表から併合/置換で書き戻す)。 V8でこれが簡単に可能になっているのならいいですね、できる ようになったとの話も聞いたことは未だありませんが。 | |||
2450 | Re: | cheese | 1999/8/19-13:01 |
記事番号2439へのコメント レポートの枚数が10枚だったら 1/10、2/10.... のようにページを印刷するわけですよね、 あまり必要に迫られたことがないのでやったことはないですが、 一括処理かイベントで、 印刷対照表のレコード件数をレポートの明細の行数で割って 余りが出たら1プラス..というのを変数に入れてページの最大値に するというのはいかがでしょうか? スマートではないですが、少し進歩するかもしれません。 レポートの明細行数はレポートによって違いますので その都度設定します。 | |||
2465 | Re: | HLK | 1999/8/20-12:34 |
記事番号2439へのコメント HLKです。 前田さん、悲しげさん、cheeseさんからの早速のコメントを有難うございました。 意味不明な言葉を使い、前田さんには申し訳ないことをしてしまいました。 悲しげさんとcheeseさんの申されました通り、印刷時に頁の最大値を各頁に印刷し たいというのが目的です。 これは、一太郎などのワープロでは昔からある機能で、何枚あるうちの何ページな のかをすぐに判別できるので重宝しているのですが、残念ながら桐には備わってい ないので、何とかしたいと思ったのが発端です。 さて、長話はともかく、このような解決方法があると直接メールを下さった奇特な 方がいましたので紹介します。 >拝啓HLK殿 >こういうのではだめですか? #INT(#総件数/レポートの明細部の行数)+1 #総件数とは、編集対象表で、処理の対象になっているレコード件数を数値で返すも ので、ただし、 削除レコードが有効であれば削除レコードの件数も含まれる ことに注意して下さい。(一括処理リファレンスを参照して下さい) これは、要するに削除したレコードがあっても、復活できる状態にある場合にはそ のレコード数も加算されるものらしいということです。すなわち、レポートから表 を開いて印刷すると、削除レコードの件数が現れてしまって使い物になりません。 しかしご安心あれ、2つの解決策を見つけました。 1つは、表を開いて、絞り込みで必要な件数だけレコードを選択して、それをレポ ートに印刷する方法 2つめは、表に表整理をかけて削除レコードを全くなくしてしまう方法 です。 このようにすれば、削除レコードの数を全く気にしないで使えると思います。 まずはお試しあれ。 1つだけ気になる点は、明細部の行数を示す数値の変数が、フォームにはあるけれ どレポートにはないという事です。 ま、これは桐の愛嬌ということで、お許し下さい。 --------------- とのことでした。 で、ついさっき試してみたのですが、1つめの方法で見事にできました。 コメント下さいました皆様、ありがとうございました。 HLK | |||
2466 | Re: | 悲しげ | 1999/8/20-13:54 |
記事番号2465へのコメント どもっ、HLKさん、 あっそうか、それならそう難しくはないですね。(^^;) >#INT(#総件数/レポートの明細部の行数)+1 だったら、ここは次のようにも書けますね。 #ceil(#総件数/レポートの明細部の行数) #切り上げ(#総件数/レポートの明細部の行数,0) #総件数%レポートの明細部の行数+1 (%と云うのは整数除算です) 昨夜から、まるでここに常駐しているようだ。(^^;) | |||
2488 | おっとどっこい | HLK | 1999/8/23-11:53 |
記事番号2439へのコメント HLKです。 ページの最大値を表示する方法を何とか見つけたのですが、バグを見つけてしまい ました。 #INT(#総件数/レポートの明細部の行数)+1 では、#総件数がレポートの明細業でちょうど割り切れる数だと、1頁多くなってし まいます。 で、このように直しました。 #INT((#総件数-0.5)/レポートの明細部の行数)+1 0.5を引くのは、#総件数から1件を越えない値(例えば0.9)なら何でもいいで す。 これでなんとかなりましたが、まだ十分検証していないから何が起こるか怖いで す・・・ HLK | |||
2489 | Re: | tuji | 1999/8/23-13:23 |
記事番号2488へのコメント >ページの最大値を表示する方法を何とか見つけたのですが、バグを見つけてしまい >ました。 >#INT(#総件数/レポートの明細部の行数)+1 #INT(num)という関数はnumの整数部を取り出す関数なので バグではないと思います。 #切り上げのほうが記述が簡単かと思いますけど。 | |||
2492 | Re: | 宮城 | 1999/8/23-18:40 |
記事番号2489へのコメント >#INT(num)という関数はnumの整数部を取り出す関数なので >バグではないと思います。 numを越えない最大の整数だったはずですよ。 #INT(−0.5)→ −1 |
|||
2493 | Re: | 宮城 | 1999/8/23-18:47 |
記事番号2492へのコメント 失礼しました。BASICと勘違いしてますね。 tujiさんのおっしゃるとおりです。 |