アプリ版:「スタンプのみでお礼する」機能のリリースについて

--------------------------------------------
グループヘッダ
[取引先名]-[郵便番号]-[住所]-[電話]-[メール]
--------------------------------------------
詳細1
[入金伝票レポート(サブレポート、一覧表)]

詳細2
[納品伝票レポート(サブレポート、一覧表)]
---------------------------------------------


以上のようなスタイルで、取引先別の入金と納品の一覧を作成しようと思います。

困っているのは、詳細部分のレコード数が増えて、複数ページにわたる場合、詳細部分の入金伝票、納品伝票の見出しが、次ページ以降印刷されないということです。


このように、サブレポートが複数あり、複数ページにわたる印刷をする場合、現在、印刷されているサブレポート(一覧表)に対応した見出しを印刷するにはどうしたらいいのでしょうか?

Access2000/XP
Win2000/XPです。

A 回答 (3件)

 サブレポート側にページヘッダー、ページフッタがありますが、そこに指定しても無理だったと思います。

(ACCESS2000では)
 行の少ない(改ページする可能性が小さい方)をサブレポートとして最初に設定し、行の多い方をメインに取り込んで、改ページしてもいいように、メインのページヘッダーに見出しを設定してはどうでしょう。

--------------------------------------------
ページヘッダー
[取引先名]-[郵便番号]-[住所]-[電話]-[メール]
納品伝票の見出し(最初のページまで出ます)
--------------------------------------------
グループヘッダー
[入金伝票レポート(サブレポート、一覧表、ページヘッダに入金伝票の見出しを設定)]
納品伝票の見出し
--------------------------------------------
詳細
[納品伝票レポート(一覧表)]
---------------------------------------------

ただ、この方法だと、取引先ごとの最初の1ページ目にも納品伝票の見出しが出てしまいます。
VBAをうまく組めば、取引先ごとの最初の1ページ目だけページヘッダーの納品伝票の見出し部分の可視を「いいえ」にできると思います。
いかがでしょうか。

この回答への補足

ページヘッダというのはあくまでもメインレポートのページヘッダであり、サブの方は無効になってしまうんですね。

となると、VBAで可視/不可視を設定しないとダメですか。

今回、レポートが複数にまたがる可能性の少ないサブレポートを先にもってくるというアドバイスをいただいていますが、できれば、どちらも複数ページにまたがることを前提としてできると助かります。

となると、改ページ時に現在、どちらのサブレポートを印刷しているのかを取得しないといけなくなります。この場合、どのいタイミングでどの値が取得可能でしょうか?

よろしくお願いします。

補足日時:2004/01/05 18:00
    • good
    • 0

相当複雑な帳票のようですね。

。。(あとのメンテナンスがタイヘンそう)

グループを得意先CDだけでなく、
得意先CD、得意先名、得意先住所。。。(同じだけど)と出力順を指定して、それぞれグループヘッダーとフッターありにすれば、いくつでも、使えますけど。。。(理論上はね)(うまく動くかなー)

ただ、サブレポートをたくさん使うと、死にたくなるほど処理が遅いですよ。件数多いと累乗に遅くなります。得意先300件で半日かかりで印刷、なんてこともありました。(いいプリンタに買い換えると早くなりました)

ユニオンクエリーに(または、テーブルに出力)して、区分により印刷する項目を変えるほうが早い可能性もあります。(でも、ユニオンクエリーもこれまた遅い。。。)

プリンタオブジェクトで記述できるなら、複雑なことしないほうがいいかもしれませんよ。

この回答への補足

>相当複雑な帳票のようですね。。。

どうなんでしょうか。。


今のところレコードソースが取引先テーブル、入金テーブル、納品テーブルの3つで、それを1ヶ月ごとに、取引先ごとに印刷したいと思っているわけで、一般的な感じもするんですが。。。


実は、プリンタオブジェクトで作成したもの(入金テーブルはページをまたがないことを前提)が現在あるのですが、作り替えが憂鬱でACCESSに頼ろうと思いました。

OCXでCristal ReportやActive Reportsがありますが、そっちで簡単にできるなら、ちょっと、検討してもいいかと考えています。


>グループを得意先CDだけでなく、
>得意先CD、得意先名、得意先住所。。。(同じだけど)と出力順を指定して、

そうでしたね。
それも試してみたいと思います。

ただ、ACCESSのファイル(レポート)って壊れやすくないですかね?あれこれやっておかしいと思って、元に戻したつもりが、それでも元通り動かないってのを何度か経験しました。

補足日時:2004/01/06 21:41
    • good
    • 0

うーん。

どうでしょうか、うまくいくでしょうか。
私の案にプラスして、
1)グループヘッダー時に、入金伝票フラグを上げ、納品伝票フラグを下げる
詳細時(入金伝票は終わっているので)入金伝票フラグを下げ、納品伝票フラグを上げる。
改ページ印刷時に、フラグが上がっている伝票見出しを印刷する。
ということが、ACCESSがきっちりと判断できるなら可能かもしれません。(すみません、そこまでしたことありません)

さもなければ、
2)先に入金伝票の行数を数え、1定数以上ある得意先は取り分けておいて、別プログラムで出力する、方法もありますが、
出力順が変わってしまうので、おすすめできませんね。。。

あとは
3)先に入金伝票の行数を数え、一定数以上ある得意先は「詳細別紙」として入金伝票部分だけを印刷しない。(出力順は変わらない)
ただし、別プログラムで入金伝票の部分だけを印刷して、元の得意先の印刷物の中に手作業で差し込んでいく。(まあ、封筒に詰めるときに気をつければどうにかなるかもしれませんが、ミスの可能性がありますね。)

力不足でごめんなさい。なにかのヒントになればよいのですが。
    • good
    • 0
この回答へのお礼

グループヘッダとグループ詳細にサブレポートを配置し、それぞれのイベントでフラグ操作することによりページヘッダの切り替えは可能な感じです。ただ、最大、グループヘッダ、グループ詳細、グループフッタの3カ所しか利用できないので、サブレポートも最大3までの感じです。

それ以上の場合は、あきらめて、プリンターオブジェクトでシコシコ書こうと思います。

ありがとうございました。

お礼日時:2004/01/06 19:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す